我读过很多关于 Grub 的文章,其中有很多配置示例。正好 0 包含 LVM 上单独的根分区和引导分区的配置。
\n\n这是我的配置:
\n\nmenuentry 'Kali' {\ninsmod lvm\ninsmod gzio\ninsmod part_msdos\ninsmod ext2\nset root=lvm/triagia-kaliboot\nsearch --no-floppy --fs-uuid --set=root f1eb6904-c17e-40b7-8740-60e67b8d04de\nlinux /vmlinuz-4.0.0-kali1-amd64 root=/dev/mapper/triagia-kaliboot setkmap=us\ninitrd /initrd.img-4.0.0-kali1-amd64\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n这是我的 LVM 设置:
\n\n sda3 8:3 0 396.9G 0 part \n \xe2\x94\x9c\xe2\x94\x80triagia-kaliboot 254:0 0 500M 0 lvm \n \xe2\x94\x9c\xe2\x94\x80triagia-kaliroot 254:1 0 50G 0 lvm \n \xe2\x94\x94\xe2\x94\x80triagia-kaliswap 254:2 0 4G 0 lvm \n
Run Code Online (Sandbox Code Playgroud)\n\n这会启动但不会启动,我认为我使用了关于 / 所在位置和 /boot 所在位置的错误配置。
\n您告诉内核在以下位置查找根目录:root=/dev/mapper/triagia-kaliboot
。我认为你需要改变这一点。
编辑 GRUB2 使用的内核参数,通过更改以下行来查找根目录/etc/default/grub
:
GRUB_CMDLINE_LINUX_DEFAULT="root=/dev/mapper/triagia-kaliroot"
。
由于您在 GRUB2 下为 /boot 分区使用 LVM,因此您还需要将此行添加到您的/etc/default/grub
:
GRUB_PRELOAD_MODULES="lvm"
。
完成后发出# update-grub
或# grub-mkconfig -o /boot/grub/grub.cfg
命令,然后重新启动。