[FUG-BR] 7.0 Não arranca depois de actualizacao
Patrick Tracanelli
eksffa em freebsdbrasil.com.br
Quinta Fevereiro 28 00:27:20 BRT 2008
>>> Can't work out which disk we are booting from.
>>> Guessed BIOS device 0xffffffff not found by probes, defaulting to disk0:
>>> panic: free: guard1 fail @ 0x6c23c
>>> from /usr/src/sys/boot/i386/loader/../../common/module.c:959
>>> press any key to reboot
O loader não consegue relacionar o ID de disco que a BIOS informa ao
disco de fato. Isso pode ser por corrupcao do proprio loader ou algum
estagio intermediario (boot1, 2, ..).
Entao voce tem algumas alternativas.
1) De o boot com um CD, va ate partition, marque a particao como ativa
com a tecla S (set active) e aperte W (write to disk), instale o boot
manager, e tente bootar. Se nao funcionar proxima alternativa:
2) Entre com o CD de em modo Fixit, escolha a midia Live como opcao,
monte o s1a do seu disco em algum lugar (/mnt por exemplo) e remova o
/boot/loader. Sim, nos nao precisamos do loader. Ele prove uma serie de
recursos mas nao eh imperativo. Entao remova, os boot stages vao tentar
carregar o kernel diretamente sem solicitar intervencao do loader
(afinal ele nao vai existir). Se nao funcionar:
3) Antes de identificar qual particao voce quer bootar via F1, F2, etc,
de uma barra de espaco. Voce caira numa prompt absurtamente precaria,
algo assim:
>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:
E ai digite por qual disco voce quer bootar. A sintaxe eh:
<BIOS_ID>:<device>(<device_unit>,<label>)/<arquivo>
<BIOS_ID> é o ID da controladora de disco na BIOS, onde 0 = controladora
1 (IDE 1 por exemplo, ou scsi ID), etc;
<device> é o nome do device driver (ad pra ata disk, da pra scsi, etc)
<device_unit> pro numero do disco, 0 = disco1, etc;
<label> = label ;)
<arquivo> é o nome do arquivo onde voce quer bootar; o padrão (por
omissão inclusive) é o /boot/loader do disco que voce escolher; mas como
eu disse antes o loader não é imperativo, você não precisa dele.
Por exemplo, supondo que voce queira o disco ad0s1a no ID 0
0:ad(0,a)
Se quer ad2s2a
2:ad(1,a)
Ou entao
1:ad(1,a)
ou
1:ad(0,a)
Nao importa, voce quem decide.
Como estamos contando com a hipotese do loader estar danificado, pule-o,
chamando direto o kernel, por exemplo:
1:ad(1,a)/boot/kernel/kernel
Pronto. Não tem como não funcionar. Pode até ser que você ainda não
consiga bootar, mas a causa (e consequentemente a mensagem de erro)
certamente será outra.
Assim que bootar a primeira coisa é reinstalar o loader, entre em
/usr/src/sys/boot/i386/loader e reinstale. Caso voce precise bootar
varias vezes escolhendo o disco manualmente, o padrão acima pode ser
tornado permanente em /boot.config, por exemplo com:
echo "1:ad(1,a)/boot/kernel/kernel" > /boot.config
Boa sorte. Espero que voce consiga com o procedimento 1 ou 2 pois o
ultimo eh chatissimo. BIOS ID se o disco for ATA ou SATA não é nada linear.
--
Patrick Tracanelli
Mais detalhes sobre a lista de discussão freebsd