grub-mkconfig 生成错误的 grub.cfg,引导错误的分区(UUID)

grub-mkconfig 生成错误的 grub.cfg,引导错误的分区(UUID)

结果:Grub v2.06 生成的 grub.cfg 引导了错误的分区

原因:分配了不同的可启动分区相同的 root=“linux”启动规范中 grub.cfg 中的 UUID。实际上它们都有不同的 UUID。

更详细地说:我的机器上安装了 3 个版本的 Ubuntu(20、21、22),但是当我选择启动 20 或 21 时,它仍然会启动 22!原因是所有条目都grub.cfg指定了相同的 UUID:

linux .... root=UUID=....ddde

但该....ddde分区包含 Ubuntu 22.04。grub 菜单显示条目为 Ubuntu 21.04(或 20.04.3),但 grub 仍从该条目启动 Ubuntu 22.04,因为使用了错误的 UUID。

运行update-gruband/orgrub-mkconfig会产生错误grub.cfg文件。我不明白为什么会发生这种情况。

grub-mkconfig 报告了合理的发现,例如

Found Ubuntu 20.04.3 LTS (20.04) on /dev/sda3
Found Ubuntu 21.04 (21.04) on /dev/sda4

(这当然是 grub2,几年来它一直被称为 grub)

添加:的输出sudo blkid /dev/sda*。可以看出,3 个分区确实有不同的 UUID,但在这里,读者可以自己检查。

sudo blkid /dev/sda*
/dev/sda: PTUUID="5adeb302-3e17-421e-aabc-41bb2377a86f" PTTYPE="gpt"
/dev/sda1: LABEL_FATBOOT="EASY2BOOT" LABEL="EASY2BOOT" UUID="3C18-9DDC" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="Microsoft basic data" PARTUUID="2d2d85db-6382-43f5-9166-1d31da742e06"
/dev/sda2: LABEL="X.SSD./root-ub22" UUID="8d66f7b3-dc29-40b1-b0f0-06105da0ddde" BLOCK_SIZE="4096" TYPE="ext4" PTTYPE="dos" PARTLABEL="Linux filesystem" PARTUUID="c5a10849-2f94-4917-9e56-cc5e594da0ee"
/dev/sda3: LABEL="X.SSD./root-ub21" UUID="d92b1ba1-ede6-4ba4-8f43-cfd7b89d4157" BLOCK_SIZE="4096" TYPE="ext4" PTTYPE="dos" PARTLABEL="Linux filesystem" PARTUUID="27fdc527-1e9b-4b77-a49e-dd92299b2ec7"
/dev/sda4: LABEL="X.SSD./root-ub20" UUID="4cc88374-3255-475b-be75-59ab2c462934" BLOCK_SIZE="4096" TYPE="ext4" PTTYPE="dos" PARTUUID="a2aeaf9e-4ecc-473e-8c8e-e82e16dc7846"
/dev/sda5: UUID="1D3E-50B4" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="4cc2c6b3-9678-4819-a18a-139ceecebb94"

相关内容