grub2(实际上是 burg)看不到 GPT 外部硬盘上的分区

gen*_*ass 3 grub2

我发现了一个SATA驱动器、一个半坏的硬盘电源和一条esata电缆,所以我决定在上面安装Arch。

所以我有 sda,其中有 MBR 和 grub2 (burg),然后是另一个 HDD(如下)。Burg 安装在 Ubuntu 12.10 下。

该驱动器采用 GPT 格式。这是parted的输出:

(parted) print                                                            
Model: ATA MAXTOR STM316081 (scsi)
Disk /dev/sdd: 160GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  3146kB  2097kB                     bios_grub
 2      3146kB  21,5GB  21,5GB  ext4
 3      21,5GB  160GB   139GB   ext4
Run Code Online (Sandbox Code Playgroud)

grub Legacy 在 Arch 安装过程中告诉我,GPT 驱动器需要 2MB 分区(上面的分区 1)。它似乎没有文件系统,所以我无法安装它。

现在我正在尝试从 grub2 链接加载 Arch 的 grub,因为我永远无法真正让 os-prober 与任何东西正常工作。

这是 burg.cfg 中的 grub2 菜单项:

menuentry "Arch Linux (esata hdd, usually /dev/sdd)" --class arch --class os {
    insmod ext2
    set root='(hd3,2)'
    set OS_Boot_config='/boot/grub/grub.cfg'
    multiboot /boot/grub/i386-pc/core.img
}
Run Code Online (Sandbox Code Playgroud)

这里的第一个问题是,就 grub2 而言,(hd3,2) 不存在。ls在 grub2 控制台中给出(hd0,msdos1) (hd2) (hd3). 换句话说,grub2看不到sdd上的分区。对此我能做什么?

第二个问题是 grub 旧版声称已将 core.img 安装到分区 1(没有文件系统)。我不知道如何安装它,所以我使用根分区中的 core.img 。我不知道这是否正确,我应该改变它吗?

gen*_*ass 6

解决了,原因很愚蠢。您需要该线路insmod part_gpt才能识别 GPT。我从来没有在互联网上的任何地方看到过这个。