Faz tempo que instalei o grub, boot loader muito flexível e fácil de configurar, no meu FreeBSD, aliás desde que era 6.1-RELEASE. Agora que estou totalmente atualizado como 6.2-STABLE, isso tornou-se ponto de honra. Infelizmente o erro abaixo insistia em ocorrer ao tentar instalar o mesmo na MBR:
musashi# grub-install hd0
GNU GRUB version 0.97 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions.
Anywhere else TAB lists the possible completions of a device/filename. ]
grub> root (hd0,0,a)
Filesystem type is ufs2, partition type 0xa5
grub> setup --stage2=/boot/grub/stage2 --prefix=/boot/grub (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/ufs2_stage1_5" exists... yes
Running "embed /boot/grub/ufs2_stage1_5 (hd0)"... failed (this is not fatal)
Running "embed /boot/grub/ufs2_stage1_5 (hd0,0,a)"... failed (this is not fatal)
Running "install --stage2=/boot/grub/stage2 /boot/grub/stage1 (hd0)
/boot/grub/stage2 p /boot/grub/menu.lst "... failed
Error 29: Disk write error
grub> quit
Eu já tinha tido o desprazer de ver esse erro anteriormente, mas achava que era relacionado com a versão do grub (como descrito em algumas listas). Dessa vez, sapeando no Google, que já começa a trazer muito mais ruído que informação, encontrei esse link:
Por um grande acaso vi a variável kern.geom.debugflags com um parâmetro configurado. Não tive dúvidas e segui o mesmo.
musashi# sysctl kern.geom.debugflags=16
kern.geom.debugflags: 0 -> 16
Resultado: sou um feliz usuário com um novo boot loader, o qual vou colocar uma bela tela gráfica :-) Só espero que meu sistema funcione amanhã, já que eu ainda não desliguei o mesmo...
musashi# grub-install /dev/ad0
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect, fix it and re-run the script `grub-install'.
(fd0) /dev/fd0