it-swarm-pt.com

Como instalar GRUB em um disco ext4 inteiro sem tabela de partição?

Atualmente tenho todo o disco /dev/sda formatado como ext4 e instalado o Gentoo.

(Não há MBR, nenhuma partição.)

Mas, finalmente, não consigo instalar o GRUB nele, porque parece que GRUB precisa gravar no MBR).

# grub-install /dev/sda
Unknown partition table signature
Unknown partition table signature
Unknown partition table signature
Unknown partition table signature
Unknown partition table signature
The file /boot/grub/stage1 not read correctly. 

nem grub funciona,

# grub
grub> root (hd0)
 Filesystem type unknown, using whole disk

grub> setup (hd0)
 Error 17: Cannot mount selected partition

Posso instalar GRUB de qualquer maneira em/dev/sda sem MBR?

P.S. O /boot diretório e grub.conf arquivos:

# tree /boot 
/boot
|-- boot -> .
|-- grub
|   |-- default
|   |-- device.map
|   |-- e2fs_stage1_5
|   |-- fat_stage1_5
|   |-- ffs_stage1_5
|   |-- grub.conf
|   |-- iso9660_stage1_5
|   |-- jfs_stage1_5
|   |-- menu.lst -> grub.conf
|   |-- minix_stage1_5
|   |-- reiserfs_stage1_5
|   |-- splash.xpm.gz
|   |-- stage1
|   |-- stage2
|   |-- stage2_eltorito
|   |-- ufs2_stage1_5
|   |-- vstafs_stage1_5
|   `-- xfs_stage1_5
`-- kernel-2.6.36-gentoo-r5

# cat /boot/grub/grub.conf
default 0
timeout 30
splashimage=(hd0)/boot/grub/splash.xpm.gz

title Gentoo Linux 2.6.36-r5
root (hd0)
kernel /boot/kernel-2.6.36-gentoo-r5 root=/dev/sda

title Gentoo Linux 2.6.36-r5 Rescue
kernel /boot/kernel-2.6.36-gentoo-r5 root=/dev/sda init=/bin/bb

# cat /boot/grub/devices
(fd0)   /dev/fd0
(hd0)   /dev/sda
15
Xiè Jìléi

O BIOS lê o primeiro setor (512 bytes) do disco e se ramifica para ele. Se o seu disco contém partições estilo PC, o primeiro setor também contém a tabela de partição. Se o seu disco contém um único sistema de arquivos, o primeiro setor contém tudo o que o sistema de arquivos decidir colocar lá. No caso de ext [234] (e muitos outros sistemas de arquivos), o primeiro setor¹ é reservado para o bootloader (e é inicialmente zerado). Você pode instalar o Grub em /dev/sda.

Dito isto, existem BIOS ocasionais que se recusam a inicializar a partir de um dispositivo que não contém uma tabela de partição. (Mas também há BIOS que se recusam a inicializar de alguns dispositivos externos se eles contiverem uma tabela de partição!) Se você tiver um desses BIOSes, terá que criar uma tabela de partição.

Mesmo que uma tabela de partição não seja necessária, ela é recomendada. Você desperdiça apenas alguns kilobytes e ganha legibilidade em muitos sistemas operacionais não Linux e menos surpresa para qualquer co-administrador de sistema. Se você acidentalmente conectar seu disco a uma máquina com Windows, ele pode sugerir que você reformate o disco se ele não vir uma tabela de partição, enquanto ele vai apenas reclamar que não pode ler os dados se vir uma tabela de partição com um tipo de partição que ele não reconhece.

¹ Na verdade, o primeiro bloco, eu acho, onde um bloco é 1kB, 2kB ou 4kB dependendo das opções passadas para mkfs.

5

Não é obrigatório que GRUB precise ser gravado no MBR. Você pode instalá-lo no setor de inicialização da partição e deixar o outro carregador de boot do MBR carregá-lo, como o carregador do Windows 7).

http://www.linuxselfhelp.com/gnu/grub/html_chapter/grub_3.html

2
Madhur Ahuja

Quase tudo espera uma tabela de partição. Acho que você terá que reinstalar e seguir as diretrizes sugeridas para ter pelo menos uma partição/boot, swap e/root. Onde está sua troca?

0
Keith