我最近自动生成的 grub 文件的一部分是
menuentry 'Fedora (4.15.0-rc3+) 27 (Workstation Edition)' --class fedora --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.15.0-rc3+-advanced-d5882dba-97be-48b3-a49e-745751c0c28e' {
load_video
insmod gzio
insmod part_gpt
insmod lvm
insmod ext2
set root='lvmid/2Wagdx-NqX3-0XjZ-E0KB-kFjL-681l-r2Jrr9/xh2Nk7-zisd-PwAb-qEp6-2nrV-kolN-e93RHx'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='lvmid/2Wagdx-NqX3-0XjZ-E0KB-kFjL-681l-r2Jrr9/xh2Nk7-zisd-PwAb-qEp6-2nrV-kolN-e93RHx' d5882dba-97be-48b3-a49e-745751c0c28e
else
search --no-floppy --fs-uuid --set=root d5882dba-97be-48b3-a49e-745751c0c28e
fi
linuxefi /boot/vmlinuz-4.15.0-rc3+ root=/dev/mapper/linux-fedora ro rd.lvm.lv=fedora/root rd.lvm.lv=fedora/swap rhgb quiet rd.driver.blacklist=nouveau iommu=1 amd_iommu=on rd.driver.pre=vfio-pci
initrdefi /boot/initramfs-4.15.0-rc3+.img
}
注意第 13 行的一部分:
linuxefi ... root=/dev/mapper/linux-fedora ro rd.lvm.lv=fedora/root rd.lvm.lv=fedora/swap blah blah blah
现在,我机器上的 Linux 内容位于一个 LVM 组中,该组以前称为 fedora,分为两个卷:root 和 swap。这就是为什么你看到
rd.lvm.lv=fedora/root
和
rd.lvm.lv=fedora/swap
但是当我添加一个 Ubuntu 安装时,我将组名更改为 root,它现在有 3 个卷:fedora、ubuntu 和 swap。但是每当我生成一个新的 grub 文件时,它似乎都不记得这些新名称。修复很简单:只需在引导期间将行更改为正确的挂载点,然后在 Fedora 引导时手动修复它。但是我很恼火的是,当我编译一个新内核并且必须更新 grub 时,我必须每隔几周继续这样做。
这让我进入了一个快速的侧边栏:(如何删除不再使用的内核?我的 grub 菜单现在很混乱)
长话短说:我的 LVM 组的旧命名约定在哪里引用?
对于那些在谷歌上发现这个问题的人:
您可以编辑文件“/etc/default/grub”。查找以“GRUB_CMDLINE_LINUX”开头的行