![来自另一个驱动器的 slackware 的 grub 条目](https://linux22.com/image/1133064/%E6%9D%A5%E8%87%AA%E5%8F%A6%E4%B8%80%E4%B8%AA%E9%A9%B1%E5%8A%A8%E5%99%A8%E7%9A%84%20slackware%20%E7%9A%84%20grub%20%E6%9D%A1%E7%9B%AE.png)
我在我的机器上运行着 ubuntu 14.04,其分区结构如下:
/boot 512MB
/ 50G
swap 4G
/home 100G~
我有另一个驱动器,其中装有 slackware 14.1,其结构如下:
/boot 512M (with working initrd)
(encrypted lvm containing /, swap and home )
我想知道是否有办法将我的 slackware 系统添加到 ubuntu 的 grub 中,以便我能够启动两个操作系统(多启动方式)。
我尝试在 /boot/grub/grub.cfg 中添加如下内容:
menuentry "Slackware" {
linux /dev/sdb2/vmlinux
initrd /dev/sdb2/initrd.gz
}
以及 /etc/default/grub:
GRUB_DISALBE_OS_PROBE=true
但是当我运行它时grub-update
它就被清除了。
我对 LILO 有一些了解,但是 grub 对我来说还比较新,因此非常感谢任何形式的帮助。
谢谢。
-更新:感谢 oldfred,通过执行以下操作使其正常工作:
sudo apt-get update && sudo apt-get install lvm2 cryptsetup
sudo modprobe dm-crypt
sudo cryptsetup luksOpen /dev/sdb2 my-crypt
sudo os-prober
sudo update-grub
不过也要尝试一下菜单输入功能。
答案1
Lilo 是 Windows 类型的引导加载程序。因此可能更容易链接加载到其他驱动器的 MBR 或 PBR。
这是分区启动项。但请注意,在 grub 中,您启动的驱动器始终是 hd0,但驱动器顺序可能会有所不同。
如何添加 GRUB2 菜单项以启动 USB 驱动器上安装的 Ubuntu?
menuentry "Install on sda (When from sdc) Chainboot" {
set root=(hd1)
chainloader +1
}
menuentry "Install on sdb (from sdc) Chainboot" {
set root=(hd2)
chainloader +1
}
menuentry "Chainload Other Systems Grub Menu on sdc1" {
set root=(hd2,1)
chainloader +1
}
menuentry " " {
set root=
}
menuentry "System restart" {
echo "System rebooting..."
insmod reboot
reboot
}
menuentry "System shutdown" {
echo "System shutting down..."
insmod halt
halt
}
关闭 os-prober 的正确方法
关闭探测器
gksudo gedit /etc/default/grub
添加此行
GRUB_DISABLE_OS_PROBER=true
任何更改后更新 grub 菜单
sudo update-grub
如果使用 LVM,您可以在 Ubuntu 中添加 lvm 驱动程序并在 os-prober 运行时手动挂载加密分区(因此它是未加密的),从而使 os-prober 正常工作。
sudo apt-get update && sudo apt-get install lvm2 cryptsetup
如果需要其他挂载和解密步骤,可以在这里找到,只是您不需要所有的调整大小说明: https://help.ubuntu.com/community/ResizeEncryptedPartitions