来自另一个驱动器的 slackware 的 grub 条目

来自另一个驱动器的 slackware 的 grub 条目

我在我的机器上运行着 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

相关内容