2

Test 1:

dd if=/dev/sdb of=/dev/sdc

/dev/sdb is a bootable OS HDD, /dev/sdc is another HDD, after executed the above dd command, the /dev/sdc become bootable.

Test 2:

dd if=/dev/sdb of=/dev/sdc

/dev/sdb is a bootable OS HDD, /dev/sdc is a PCIe NVME SSD, after excuted the above command, the /dev/sdc can not boot.

Similar issue: dd copy a HDD to USB but fail to boot?

In the above case, the OS needs to install usb-storage driver to initramfs; is there any driver needed to install for a NVME SSD?

5
  • 1
    Can your system firmware (BIOS or UEFI) detect the SSD as a bootable device? If not, then you cannot load a bootloader from it. Adding a driver would be a Catch-22 problem: you cannot load the driver from the NVMe SSD, because you need the driver to access it!
    – telcoM
    Commented Aug 10, 2018 at 14:33
  • If I installed OS from CDROM ( not from dd copy ) to this PCIe NVME SSD, it can boot.
    – Mark
    Commented Aug 13, 2018 at 5:06
  • Is the copied HDD configured to be bootable with the classic BIOS style, or with UEFI style? The NVMe SSD might be bootable using UEFI style only. And if your next question is "how to change an OS boot style from BIOS to UEFI?", then it depends on the OS in question.
    – telcoM
    Commented Aug 13, 2018 at 7:29
  • I think you point out the problem, it is not related to dd, the root cause is the PCIe SSD can't boot in legacy mode.
    – Mark
    Commented Aug 14, 2018 at 1:59
  • Since these comments will eventually expire, I wrote an actual answer based on things I mentioned in the comments above. Please mark the answer as accepted if it helped you.
    – telcoM
    Commented Aug 14, 2018 at 14:55

1 Answer 1

2

The PCIe NVMe SSDs I've seen are either not bootable at all, or only bootable using UEFI.

If you're using legacy BIOS-style boot, and a PCIe SSD does not appear as a bootable device, it's a pretty good clue that the PCIe SSD does not support legacy-style booting.

If you can get to the bootloader, but fail to start the OS, then the problem is a missing driver; but if you cannot even get to the bootloader, the problem is that the system firmware (BIOS or UEFI) does not support that device as a bootable disk.

UEFI-style boot requires a GPT partition table and an EFI System Partition (ESP), so a straight clone of partitions from a MBR-partitioned disk to a GPT-partitioned one isn't enough. But if you can add the ESP and then replace the bootloader, e.g. from a traditional BIOS-based GRUB to an UEFI version of GRUB, that might be enough to get an existing Linux/Unix installation cloned & converted from legacy to UEFI boot.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .