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
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