# [AJUDA] Bootando o Gentoo e refazendo o Grub

## Ninty_CEO

Fale pessoal. Preciso da ajuda dos mestres do Gentoo.  :Smile: 

Resolvi testar o Gentoo, empolgado com a excelente compatibilidade da distro e muito boa documentação. Tenho dois Hd's de 20Gb, um como master da IDE primária (hda) e outro como master da IDE secundária (hdb). Uso o hda para Windows XP e o hdb exclusivo para Linux. Baixei e imprimi o manual do Gentoo, direto do Gentoo.org. Todo meu hardware foi reconhecido e concluí todas as etapas da instalação e tweakagem numa boa, com zero erros. 

Meu particionamento ficou assim: 

hdb1 * /boot (bootável) 

hdb2 /swap 

hdb3 / 

Na etapa final da instalação, na hora de configurar o maldito Grub, cometi um erro. Agora, na inicialização do Grub, ele dá o seguinte erro: Geom Error. 

Vejam a minha configuração do Grub: 

default 0 

timeout 10 

splashimage=(hd1,0)/grub/splash.xpm.gz 

title=Gentoo Linux 

root (hd1,0) 

kernel /kernel-2.6.7-gentoo-r11 root=/dev/ram0 init=/linuxrc ramdisk=8192 

real_root=/dev/hdb3 vga=791 

initrd /initrd-2.6.7-gentoo-r11 

title=Windows XP 

root (hd0,0) //Lembrando que o Windows está no hda1 

makeactive 

chainloader +1 

Então instalei o Grub com: 

# grub-install --root-directory=/boot /dev/hdb //Acho que aqui é onde está o erro. 

1ª Pergunta: Qual o erro? Para instalar o Grub no MBR, repito a linha de cima colocando /dev/hda no lugar? 

2ª Pergunta: Como faço para reescrever o Grub? O sistema está todo lá, pronto, só preciso reescrever o maldito. Já tentei bootar pelo LiveCD e dar um chroot para passar para o sistema instalado no Hd, mas não funcionou. Tentei também montar o /mnt/gentoo, mas também não funcionou. Não consigo entrar na instalação do Hd. Como faço? 

Abraços a todos, 

Ninty_CEO.

----------

## Mythos

1º

```
emerge grub

grub

grub> root (hd0,0) #agora aqui nao sei se e root (hd1,0) ou (hd1,1) ou o que está.

grub> setup (hd0)

grub> quit
```

```
 nano -w /boot/grub/grub.conf

splashimage=(hd1,1)/grub/splash.xpm.gz

timeout 7

default 0

fallback 0

title  Gentoo

root (hb1,1)

kernel /gentoo-dev-sources-2.6.8-r3 root=/dev/hdb3 acpi=force video=vesafb:ywra$initrd=/boot/fbsplash-emergence-1280x1024

#initrd=/boot/initrd-1280x1024

title Windows XP SP2

rootnoverify (hd0,0)

makeactive

chainloader  +1
```

#NOTA: hd0 = hda hd1 = hd1 ...

2º Faz um boot loader do Grub

```
cd /boot/grub

dd if=stage1 of=/dev/fd0 bs=512 count=1
```

1+0 records in

1+0 records out

```

dd if=stage2 of=/dev/fd0 bs=512 seek=1
```

263+1 records in

263+1 records out

----------

## Ninty_CEO

Mythos, primeiramente obrigado por ter respondido a minha pergunta. Valeu. Mas ficaram algumas dúvidas:

Comentários: 

emerge grub 

grub 

grub> root (hd0,0) #agora aqui nao sei se e root (hd1,0) ou (hd1,1) ou o que está. 

grub> setup (hd0) 

grub> quit

Ok, dou boot pelo LiveCD e executo os comandos.

nano -w /boot/grub/grub.conf 

splashimage=(hd1,1)/grub/splash.xpm.gz 

timeout 7 

default 0 

fallback 0 

title  Gentoo 

root (hb1,1) 

kernel /gentoo-dev-sources-2.6.8-r3 root=/dev/hdb3 acpi=force video=vesafb:ywra$initrd=/boot/fbsplash-emergence-1280x1024 

#initrd=/boot/initrd-1280x1024 

title Windows XP SP2 

rootnoverify (hd0,0) 

makeactive 

chainloader  +1

Essas opções são personalizadas para sua placa, ou posso usá-las na minha GeForce MX440? Por exemplo, o parâmero acpi=force, para que serve?

#NOTA: hd0 = hda hd1 = hd1 ... 

Vamos colocar os pingos nos i's: - pelo que entendi, a sintaxe é: hd(A,B), onde A é ou hda ou hdb, e B é o número da partição, sendo 0 equivalente a 1. Assim, hd(0,0) significa partição 1 do hda ; hd(1,0) significa partição 1 do hdb; hd(1,2) significa partição 3 do hdb, é isso?

cd /boot/grub 

dd if=stage1 of=/dev/fd0 bs=512 count=1 

1+0 records in 

1+0 records out 

Code: 

dd if=stage2 of=/dev/fd0 bs=512 seek=1 

263+1 records in 

263+1 records out

O "1+0 records in ; 1+0 records out" e o "263+1 records in ; 263+1 records out" são retornos da instalação do Grub, linhas de texto a serem inseridas no Grub ou comandos de execução?

Abraços, aguardo resposta,

Ninty_CEO.

----------

## meetra

com a tua primeira configuração, fazes:

```
grub> root (hd0,0)

grub> setup (hd0)

grub> quit
```

hd0,0 = hda1

hd0,1 = hda2

hd1,0 = hdb1

hd1,1 = hdb2

and so on...

PS: utilizas este processo para escrever o grub na MBR sempre que quiseres.

se o linux não bootar, podes sempre usar o livecd, chroot, entras na consola do grub e mudas os valores que queres. (não esquecer de ter /boot mounted)

----------

## To

 *meetra wrote:*   

> com a tua primeira configuração, fazes:
> 
> hd0,0 = hda1
> 
> hd0,1 = hda2
> ...

 

É perciso ter atenção, quando as partições são extended que os numeros não são sequenciais, mas a lógica é a mesma.

Tó

----------

## malloc

se tens a partição de boot no hdb1...

```

grub > root (hd1,0)

grub > setup (hd0)

```

A opção root, indica onde e q ta a imagem do kernel q vai ser carregada, no teu caso na partição /boot q se encontra em hdb1.

A opção setup indidca onde e q o grub deve ser instalado, neste caso no mbr do primeiro disco a fazer boot (pela sequencia definida na bios) ou seja hda.

----------

## Ninty_CEO

OK, pessoal, funcionou. Valeu.

Agora acontece outro problema:

Quando inicializo, na hora em que a inicialização vai detectar o boot block device, aparece a seguinte mensagem de erro:

>>The root block device is unspecified or not detected.

     Please specify a device to boot, or "shell" for a shell...

Boot () :: 

Como vocês leram, ele pede para eu especificar onde está o root. Eu especifico /dev/hdb3, que é onde fica minha partição root, então ele inicia normalmente, sem problemas. Só que toda vez que inicio o Gentoo, tenho que especificar o danado. Como faço para que ele detecte automaticamente ou para que eu pré-especifique o root?

Abraços,

Ninty_CEO.

----------

## nafre

Suas particoes estao especificadas corretamente

/etc/fstab ??

----------

## Ninty_CEO

Fale nafre,

cara, as partições estão especificadas corretamente. Tenho a impressão que a coisa se dá no GRUB. No GRUB, a linha que deveria fazer esse reconhecimento é:

real_root=/dev/hdb3  

hdb3 é a terceira partição do hd slave da IDE01, onde está a partição root. É essa linha que a inicialização me pede para digitar. Então, quando digito /dev/hdb3, o Gentoo inicializa normalmente. Porque o GRUB não está lendo a linha real_root? Vale lembrar que usei o Genkernel para compilar o kernel, então essa linha é necessária. Os usuários de stage1 e 2, têm uma linha "root=", ao invés de "real_root=". Como resolvo?

Abraços,

Ninty_CEO.

----------

