测试1:
dd if=/dev/sdb of=/dev/sdc
/dev/sdb 是可启动的 OS 硬盘,/dev/sdc 是另一个硬盘,执行上述 dd 命令后,/dev/sdc 变为可启动。
测试 2:
dd if=/dev/sdb of=/dev/sdc
/dev/sdb 是可启动的 OS 硬盘,/dev/sdc 是 PCIe NVME SSD,执行上述命令后,/dev/sdc 无法启动。
类似问题: dd 将硬盘复制到 USB 但无法启动?
上述情况,操作系统需要在initramfs中安装usb-storage驱动;是否需要为 NVME SSD 安装任何驱动程序?
我见过的 PCIe NVMe SSD 要么根本无法启动,要么只能使用 UEFI 启动。
如果您使用的是传统 BIOS 样式引导,并且 PCIe SSD 没有显示为可引导设备,那么 PCIe SSD 不支持传统样式引导是一个很好的线索。
如果您可以进入引导加载程序,但无法启动操作系统,则问题是缺少驱动程序;但如果您甚至无法访问引导加载程序,则问题在于系统固件(BIOS 或 UEFI)不支持将该设备作为可引导磁盘。
UEFI 风格的引导需要 GPT 分区表和 EFI 系统分区 (ESP),因此将分区从 MBR 分区磁盘直接克隆到 GPT 分区磁盘是不够的。但是,如果您可以添加 ESP 然后替换引导加载程序,例如从传统的基于 BIOS 的 GRUB 到 GRUB 的 UEFI 版本,这可能足以克隆现有的 Linux/Unix 安装并将其从旧版引导转换为 UEFI 引导。