Corrigido, o motivo é bastante bobo. Você precisa da linha insmod part_gpt
para que ela reconheça o GPT. Eu nunca vi isso em nenhum lugar nas interwebs.
Eu encontrei uma unidade sata, uma fonte de alimentação hdd semi-quebrada e um cabo esata por aí, então decidi instalar o Arch nela.
Então eu tenho sda que tem o MBR e grub2 (burg) e depois outro disco rígido (abaixo). O Burg está instalado no Ubuntu 12.10.
A unidade está formatada com uma GPT. Aqui está a saída do 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
O legado do grub me disse durante a instalação do Arch que uma partição de 2MB (partição 1 acima) é necessária para as unidades GPT. Não parece ter um sistema de arquivos, então não consigo montá-lo.
Agora estou tentando fazer um encadeamento do grub do Arch a partir do grub2 porque nunca consegui fazer com que o os-prober funcionasse corretamente com qualquer coisa.
Esta é a entrada do menu grub2 em burg.cfg:
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
}
O primeiro problema aqui é que, no que diz respeito ao grub2, (hd3,2) não existe. ls
no console do grub2 dá (hd0,msdos1) (hd2) (hd3)
. Em outras palavras, o grub2 não pode ver as partições no sdd. O que posso fazer sobre isso?
O segundo problema é que o legado do grub afirma ter instalado o core.img na partição 1 (sem um sistema de arquivos). Eu não sei como montar isso, então estou usando core.img da partição raiz. Eu não tenho idéia se isso está correto, devo mudar isso?
Corrigido, o motivo é bastante bobo. Você precisa da linha insmod part_gpt
para que ela reconheça o GPT. Eu nunca vi isso em nenhum lugar nas interwebs.