这是上下文:我有一台带有一个硬盘的笔记本电脑,其中包含 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 时,这也很有帮助。