2

I have a CentOS 7.9 installation and I want to move all SSD contents including OS to a new/faster SSD (both are M.2 nvme).

The disk is setup using LVM. I tried cloning with Macrium Reflect and other disk cloning tools because I don't want to mess things up with commands like dd. But I always get same result: the system starts with underscore blinking and it doesn't boot. I don't get any errors during cloning.

I didn't change boot settings in BIOS, I assume if disk says is MBR and it cloned into a MBR too, then boot settings should be left untouched in BIOS.

The strange thing is that it seems to work if I clone two identical drives.

So could the problem be some boot settings that tells it where boot partition starts or something like this ? What functions should I try in order to make it bootable ? Things like align partition ? (on source before cloning, or on destination after cloning ?).

I don't think source has any errors eider, I am not good with that but I checked it.

I built the source partitions intentionally a bit smaller so it would fit in size variations of the ~500GB size. It never complains about partitions not fitting on new drive.

4
  • 1
    One possible problem could be sector size, newer NVMe drives usually have 4k sectors and not 512 (and on some drives this can be changed) which could cause this issue when cloning between two different sector size drives. You can check sector size of your drives with blockdev --getpbsz /dev/nvme0n1. Nov 2, 2021 at 6:20
  • 1
    A NVMe SSD is a PCIe device. When you replace a NVMe SSD with one that is not of identical type, then as far as the BIOS is concerned, it is about as big a change as replacing a hardware RAID card with another one from a different manufacturer. Depending on exactly how the selection of the boot device is stored in the BIOS settings NVRAM, it may include a reference to a particular type of PCIe device, which may not be applicable to a different NVMe drive model. If the BIOS "boot order" list identifies the NVMe by vendor name, you'll probably need to add the new one to the list yourself.
    – telcoM
    Nov 2, 2021 at 7:08
  • @VojtechTrefny @telcoM after reading more, I was thinking the UUID in grub and configs would be the problem, can you guys see my updated topic ? It contains the output of many commands like fdisk, blkid, grub.cfg, fstab, etc. Thank you. unix.stackexchange.com/questions/677548/…
    – adrianTNT
    Nov 15, 2021 at 2:42
  • I was able to fix this and added an answer to this topic, I am unsure if this command is OK since it contains i386, seems an uncommon environment ?! grub2-install --directory /usr/lib/grub/i386-pc/ /dev/nvme0n1
    – adrianTNT
    Nov 18, 2021 at 0:16

1 Answer 1

2

Turns out all it needed was a grub2-install in order to fix the boot. Full command was this:

grub2-install --directory /usr/lib/grub/i386-pc/ /dev/nvme0n1

I am writing this "for dummies" fix mostly for myself, I know I will run into this problem again :)

  • booted from a centos install stick
  • select troubleshooting > rescue a centos system
  • 1) continue
  • chroot /mnt/sysimage to act as root inside the mounted partition (this was recommended on screen)
  • tried grub2-install /dev/nvme0n1
  • complained about modinfo.sh not being found and I should specify --target or --directory
  • I did a find / -name modinfo.sh and found it in /usr/lib/grub/i386-pc/
  • finally installed grub with: grub2-install --directory /usr/lib/grub/i386-pc/ /dev/nvme0n1

At first I thought the device to install to would be /boot (/dev/nvme0n1p1), but it is main/parent: /dev/nvme0n !

If anyone can comment if the i386-pc part is OK ?! It seems like an uncommon environment. Not sure I picked that part right.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.