Description of problem: 双系统 先安装 AnolisOS 7.9再安装AnolisOS 23.1,再在新系统创建一个lvm,AnolisOS生成的grub引导root=/dev/dm-1 按照dm设备数字编码生成的。 ### BEGIN /etc/grub.d/30_os-prober ### menuentry 'Anolis OS 7.9 (on /dev/mapper/ao-root)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/vmlinuz-4.19.91-25.2.an7.aarch64--df41d258-3db4-4465-bc62-a34f077ae3cf' { insmod part_gpt insmod ext2 set root='hd0,gpt2' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//sas/disk@20000,gpt2' --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 a5dfb72d-f639-4296-9e2c-ef3e155fdaab else search --no-floppy --fs-uuid --set=root a5dfb72d-f639-4296-9e2c-ef3e155fdaab fi linux /vmlinuz-4.19.91-25.2.an7.aarch64 root=/dev/dm-1 initrd /initramfs-4.19.91-25.2.an7.aarch64.img } menuentry 'Anolis OS 7.9 (on /dev/mapper/ao-root)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/vmlinuz-0-rescue-067d280a63154e8f8b78f3ffe436a526--df41d258-3db4-4465-bc62-a34f077ae3cf' { insmod part_gpt insmod ext2 set root='hd0,gpt2' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//sas/disk@20000,gpt2' --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 a5dfb72d-f639-4296-9e2c-ef3e155fdaab else search --no-floppy --fs-uuid --set=root a5dfb72d-f639-4296-9e2c-ef3e155fdaab fi linux /vmlinuz-0-rescue-067d280a63154e8f8b78f3ffe436a526 root=/dev/dm-1 initrd /initramfs-0-rescue-067d280a63154e8f8b78f3ffe436a526.img } 在新系统23.1下为: 253:1 0 100G 0 lvm /root/sda3 dm-1是没问题的。 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 1.1T 0 disk ├─sda1 8:1 0 512M 0 part /root/sda3/boot/efi ├─sda2 8:2 0 1G 0 part /root/sda3/boot ├─sda3 8:3 0 100G 0 part │ └─ao-root 253:1 0 100G 0 lvm /root/sda3 ├─sda4 8:4 0 512M 0 part /boot/efi ├─sda5 8:5 0 1G 0 part /boot └─sda6 8:6 0 100G 0 part / nvme1n1 259:0 0 7T 0 disk └─nvme1n1p1 259:2 0 7T 0 part └─lvmnvme-log 253:0 0 10T 0 lvm nvme0n1 259:1 0 7T 0 disk └─nvme0n1p1 259:3 0 7T 0 part └─lvmnvme-log 253:0 0 10T 0 lvm nvme3n1 259:4 0 7T 0 disk └─nvme3n1p1 259:5 0 7T 0 part └─lvmnvme-log 253:0 0 10T 0 lvm nvme2n1 259:6 0 7T 0 disk └─nvme2n1p1 259:7 0 7T 0 part └─lvmnvme-log 253:0 0 10T 0 lvm 当切换到 Anolis OS 7.9时候:内核对lvm设备命名的数字编号不一致。 253:0 0 100G 0 lvm / 现在是dm-0了 系统没法引导 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:0 0 7T 0 disk └─nvme0n1p1 259:1 0 7T 0 part └─lvmnvme-log 253:1 0 10T 0 lvm nvme3n1 259:3 0 7T 0 disk └─nvme3n1p1 259:5 0 7T 0 part └─lvmnvme-log 253:1 0 10T 0 lvm nvme2n1 259:4 0 7T 0 disk └─nvme2n1p1 259:7 0 7T 0 part └─lvmnvme-log 253:1 0 10T 0 lvm nvme1n1 259:2 0 7T 0 disk └─nvme1n1p1 259:6 0 7T 0 part └─lvmnvme-log 253:1 0 10T 0 lvm sda 8:0 0 1.1T 0 disk ├─sda4 8:4 0 512M 0 part ├─sda2 8:2 0 1G 0 part /boot ├─sda5 8:5 0 1G 0 part ├─sda3 8:3 0 100G 0 part │ └─ao-root 253:0 0 100G 0 lvm / ├─sda1 8:1 0 512M 0 part /boot/efi └─sda6 8:6 0 100G 0 part [root@localhost ~]# cat /etc/os-release NAME="Anolis OS" VERSION="7.9" ID="anolis" ID_LIKE="rhel fedora centos" VERSION_ID="7.9" PRETTY_NAME="Anolis OS 7.9" ANSI_COLOR="0;31" HOME_URL="https://openanolis.cn/" BUG_REPORT_URL="https://bugs.openanolis.cn/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7" Version-Release number of selected component (if applicable): How reproducible: 1,安装 Anolis OS 7.9 划分两个lvm vg组,分别创建lv。此时grub定义是安装名称路径的 menuentry 'Anolis OS (4.19.91-25.2.an7.aarch64) 7.9' --class anolis --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.19.91-25.2.an7.aarch64-advanced-df41d258-3db4-4465-bc62-a34f077ae3cf' { load_video set gfxpayload=keep insmod gzio insmod part_gpt insmod ext2 set root='hd0,gpt2' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//sas/disk@20000,gpt2' --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 a5dfb72d-f639-4296-9e2c-ef3e155fdaab else search --no-floppy --fs-uuid --set=root a5dfb72d-f639-4296-9e2c-ef3e155fdaab fi linux /vmlinuz-4.19.91-25.2.an7.aarch64 root=/dev/mapper/ao-root ro crashkernel=auto rd.lvm.lv=ao/root LANG=en_US.UTF-8 initrd /initramfs-4.19.91-25.2.an7.aarch64.img } 2, 再安装AnolisOS 23.1,AnolisOS 23.1的grub规则是 linux /vmlinuz-0-rescue-067d280a63154e8f8b78f3ffe436a526 root=/dev/dm-1 3,再从AnolisOS 23.1定义的grub进入系统,到达AnolisOS 7.9内核,这个规则下它的根是dm-0,不是dm-1 造成结果没法引导。 Steps to Reproduce: 1. 2. 3. Actual results: 从AnolisOS 23.1定义的grub进入系统,到达AnolisOS 7.9内核,这个规则下它的根是dm-0,不是dm-1 造成结果没法引导。 Expected results: 应该是 AnolisOS 23.1 grub2-efi bug, 建议生成grub.cfg的时候按照 root=/dev/mapper/ao-root而不是root=/dev/dm-1 Additional info: [root@anolis ~]# rpm -qf /boot/grub2/grub.cfg grub2-efi-aa64-2.12-8.an23.aarch64 [root@anolis ~]# cat /etc/os-release NAME="Anolis OS" VERSION="23" ID="anolis" VERSION_ID="23" PLATFORM_ID="platform:an23" PRETTY_NAME="Anolis OS 23" ANSI_COLOR="0;31" HOME_URL="https://openanolis.cn/" BUG_REPORT_URL="https://bugzilla.openanolis.cn/" [root@anolis ~]# uname -r 6.6.25-2.1.an23.aarch64