链加载多个 grub2 引导加载程序

链加载多个 grub2 引导加载程序

这是上下文:我有一台带有一个硬盘的笔记本电脑,其中包含 4 个分区:

  • 2 对于 Windows:(hd0,1)、(hd0,2) -> 对于 Windows 7
  • 2 对于 linux:(hd0,3)、(hd0,4) -> 对于 linux(逻辑分区)。

当前“真正的”引导加载程序(我指的是 MBR)是 Windows 引导加载程序。后面我用的是grub2win出于特定目的,我将使用它来链接加载 (hd0,3) 上的 grub2。

以下是我在 grub.cfg 中添加的条目:

menuentry 'Chainloader 3' {
   insmod chain
   set root=(hd0,3)
   chainloader +1
}

不幸的是,当我尝试使用它时,我只是“什么都没有”,黑屏,没有任何错误,我真的不知道还能做什么。

这是结果fdisk -l

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xa2c2c4f8

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   209717247   104857600    7  HPFS/NTFS/exFAT
/dev/sda2       209717248   420339711   105311232    7  HPFS/NTFS/exFAT
/dev/sda3       420341758   625141759   102400001    5  Extended
Partition 3 does not start on physical sector boundary.
/dev/sda5       420341760   615651327    97654784   83  Linux
/dev/sda6       615653376   625141759     4744192   82  Linux swap / Solaris

答案1

只是一个提示:

逻辑分区始终从第五个分区开始。检查您没有输错数字 3 和 4,也许它们必须是 5 和 6...或者您有四个主分区!

您真的确定 3 号分区上有其他 grub(这是扩展定义,而不是分区本身)吗?也许您指的是 5 号分区。

从 fdisk 我看到您有两个主分区(1 和 2)、一个扩展分区(3)和两个逻辑分区(5 和 6)。

我从未见过将 Grub 安装到扩展本身上,但我看到 grub 安装在分区引导扇区上(在您的情况下可能是 5 或 6,而不是 3)。

另一个提示:

在 Grub2 菜单上,您可以按“c”键进入命令行,然后键入命令ls,这将显示它可以看到的分区、磁盘等的名称;然后记下它们以查看模式 (hd0,5) 或 (hd0,msdos5) 或 (hd0,gpt5) 等。要返回菜单,只需按“Esc”键。

我很确定您输错了数字,因为您说“2 for linux: (hd0,3), (hd0,4) -> For linux (逻辑分区)”。但 fdisk 显示只有两个主分区(1 和 2);另外,您的分区号 3 是扩展定义,而不是可以放置文件系统的地方。

所以也许你会说(4 & 5 而不是 3 & 4):

对于 Linux 来说为 2: (hd0,4), (hd0,5) -> 对于 Linux (逻辑分区)。

是打字错误吗?或者您是否真的试图引用扩展分区的第一个扇区,其中包含逻辑分区定义,首先希望如此,否则如果您在那里写入,您将损坏逻辑分区定义,从而导致它们无法访问。幸运的是,Grub 安装程序不允许安装到该位置。

希望你能解决你的问题。

是的,Grub 可以驻留在跨多个磁盘的条带 LVM 内的 Ext4 中,并且您还可以在链的任何部分添加任意数量的 LUKS; Grub 非常适合做这些事情。

我的意思是:grub.cfg 文件和其余文件可以在这个复杂的示例方案中:

  • HDD0:根本没有主分区,只有一个扩展分区,其中一个逻辑分区具有 LUKS(键 A),其中包含 LVM2 定义
  • HDD1:根本没有主分区,只有一个扩展分区,其中一个逻辑分区具有 LUKS(密钥 B),其中包含 LVM2 定义
  • HDD2:根本没有主分区,只有一个扩展分区,其中一个逻辑分区具有 LUKS(键 C),其中包含 LVM2 定义
  • 这样的 LVM2 组合(条带化)成一个大虚拟磁盘,具有任意数量的逻辑卷(也可以在它们上使用 LUKS),其中一个用于 Grub 及其文件

ETC。

请记住:如果您不确定 Grub 使用的文字,请转到命令行(按“c”键)并使用ls不带参数的命令,然后记下语法及其所看到的内容,要返回菜单,只需使用“Esc” ' 钥匙。

当您使用加密设备 (LUKS) 和 LVM 时,这也很有帮助。

相关内容