Grub loading grub probe error cannot find device for root

Grub loading grub probe error cannot find device for root

Stuck in GRUB rescue mode. error: disk ‘lvmid’ not found.

Lỗi này do grub bị lỗi, để khắc phục boot vào rescurecd sau đó thực hiện update grub

~ # mkdir /mnt/vm1
~ # mount /dev/vg0/vm1 /mnt/vm1
~ # mount -o bind /dev /mnt/vm1/dev
~ # mount -o bind /dev/pts /mnt/vm1/dev/pts
~ # mount -o bind /proc /mnt/vm1/proc
~ # mount -o bind /run /mnt/vm1/run
~ # mount -o bind /sys /mnt/vm1/sys
~ # chroot /mnt/vm1 /bin/bash

Trong trường hợp boot vào rescuecd không tìm thấy LVM cần active lv

lvscan
modprobe dm-mod
vgchange -ay

Update grub

/usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg

Trong Ubuntu Debian chạy lệnh sau

update-grub

VM Boots with Dracut Emergency Shell and warnings that specific locations do not exist on the file system after failover

Nguyên nhân:

the SCSI controller drivers, in this example the LSI Logic Parallel (MPTSPI) drivers, are missing from the recovery VM because the drivers are not available in the protected VM

In some cases, the latest PRM (Package Manager) and VMware tools on the Linux VM have not been installed

Khắc phục: build lại dracut

boot vào rescure như hướng dẫn trên sau đó gõ

source /etc/profile

dracut --regenerate-all --force

mdraid dracut Warning: /dev/disk/by-uuid/ does not exist

main menu

Kiểm tra uuid raid

[root@demo ~]# mdadm --detail --scan
ARRAY /dev/md/imsm0 metadata=imsm UUID=a2e1c059:16b73a15:9c9b215c:4c7ce0ef
ARRAY /dev/md/Volume0_0 container=/dev/md/imsm0 member=0 UUID=a5274762:1907f6ed:40e9d67a:fee42312

Update File theo config theo thông tin mới /etc/mdadm.conf

[root@demo ~]# mdadm --detail --scan > /etc/mdadm.conf

[root@demo ~]# cat /etc/mdadm.conf

# mdadm.conf written out by anaconda
MAILADDR root
AUTO +imsm +1.x -all
#ARRAY /dev/md/Volume0_0 UUID=aa42b39f:e412cc3c:e7573381:20231664
#ARRAY /dev/md/imsm0 UUID=a2e1c059:16b73a15:9c9b215c:4c7ce0ef
ARRAY /dev/md/imsm0 metadata=imsm UUID=a2e1c059:16b73a15:9c9b215c:4c7ce0ef
ARRAY /dev/md/Volume0_0 container=/dev/md/imsm0 member=0 UUID=a5274762:1907f6ed:40e9d67a:fee42312

Update UUID default  Grub /etc/default/grub

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.md.uuid=a5274762:1907f6ed:40e9d67a:fee42312 rd.md.uuid=a2e1c059:16b73a15:9c9b215c:4c7ce0ef rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

Update grub to new UUID

[root@demo ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

Trong trường hợp sử dụng UEFI bios update

[root@demo ~]# grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

Sau khi update xong kiểm tra lại file grub.cfg cần nhận đúng UUID mới

linux16 /boot/vmlinuz-3.10.0-1160.90.1.el7.x86_64 root=UUID=f15d519a-54a7-498b-9f43-b74358050bac ro crashkernel=auto rd.md.uuid=a5274762:1907f6ed:40e9d67a:fee42312 rd.md.uuid=a2e1c059:16b73a15:9c9b215c:4c7ce0ef rhgb quiet
initrd16 /boot/initramfs-3.10.0-1160.90.1.el7.x86_64.img

Build lại initramfs

để ý kernel hiện tại initrd16 ở file grub.cfg như trên, /boot/initramfs-3.10.0-1160.90.1.el7.x86_64.img

Xóa initramfs hiện tại

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak

Tạo lại initramfs

dracut -f

Có thể tạo lại cho toàn bộ các file initramfs để update toàn bộ file

ví dụ tạo lại cho /boot/initramfs-3.10.0-1160.90.1.el7.x86_64.img

mv /boot/initramfs-3.10.0-1160.90.1.el7.x86_64.img /boot/initramfs-3.10.0-1160.90.1.el7.x86_64.img.bak

dracut -f /boot/initramfs-3.10.0-1160.90.1.el7.x86_64.img 3.10.0-1160.90.1.el7.x86_64

sau đó kiểm tra lại các file img sẽ được tạo mới

Reboot và chọn đúng kernel vừa tạo để boot vào OS