O Intel SSD permanece não inicializável apesar de reinstalar o grub

0

Tenho um laptop HP 4530s e troquei o disco rígido original por um SSD Intel 335 de 180GB. O problema é que não consigo arrancar a partir dele.

Transferi meu openSUSE 12.3 x86_64 do disco rígido via cpio, como mencionado aqui: link

Eu também reinstalei o GRUB com algo como:

    mount /dev/sda1 /mnt/
    mount --bind /dev/ /mnt/dev
    mount --bind /proc/ /mnt/proc
    mount --bind /sys/ /mnt/sys
    chroot /mnt/
    grub2-mkconfig
    grub2-install /dev/sda

Parte disso deve ter sido bom, porque agora posso inicializar a partir do CD do openSUSE Rescue, "boot from HDD" e ele funciona. Mas se eu tentar inicializar diretamente do SSD, o BIOS da HP gentilmente me informa que eu devo instalar um sistema operacional primeiro.

Eu tentei variações do mesmo método, como ativar o UEFI do BIOS e instalar o grub2-efi, mas estou com o mesmo problema.

Eu tenho aquela estranha sensação de que estou sentindo falta de algo básico. Alguma idéia para uma abordagem mais "sistemática"?

Obrigado antecipadamente!

    
por Radu Gheorghe 24.05.2013 / 07:51

1 resposta

1

O artigo do Linux Journal que você referenciou perde um passo que pode ser importante para alguns computadores - quando você particiona a nova unidade usando o formato de tabela de partição do MS-DOS, você deve marcar exatamente uma partição primária na unidade como ativa. Este passo é muitas vezes esquecido sem problemas visíveis; no entanto, em alguns computadores, o BIOS executa verificações mais rigorosas e se recusa a inicializar a partir de um disco sem uma partição ativa.

A maneira de marcar uma partição como ativa no Linux fdisk é usar o comando a ; ele pede o número da partição e alterna o sinalizador ativo para essa partição. Se você imprimir a tabela de partições usando o comando p , as partições ativas serão marcadas pelo caractere * na coluna Boot .

Se você tiver apenas o Linux instalado no disco e o gerenciador de inicialização estiver instalado no MBR, não importa qual partição primária esteja marcada como ativa, desde que haja exatamente uma partição desse tipo.

Mais detalhes abaixo, se você estiver interessado:

(Tudo isso se aplica somente quando o formato de tabela de partição do MS-DOS é usado; a situação é significativamente diferente com a tabela de partição do GPT, especialmente quando usada junto com o UEFI.)

Quando a tabela de partições do MS-DOS foi introduzida, o MBR foi projetado para conter um pequeno código que procura através de partições primárias (pode haver até 4 delas), e se exatamente uma partição tiver o sinalizador ativo definido , carrega o primeiro setor dessa partição (o setor de inicialização) e transfere o controle para o código a partir dele, que deve inicializar o sistema operacional a partir dessa partição. Se não houver partições ativas ou mais de uma partição com o sinalizador ativo definido, o código MBR imprime uma mensagem e chama int $0x18 para relatar falha de inicialização no BIOS.

No entanto, muitos gerenciadores de inicialização usados para inicializar o Linux geralmente são instalados no MBR e substituem o código MBR padrão pelo código que carrega o restante do carregador de inicialização e, por exemplo, oferece o menu de inicialização. Este código não usa o sinalizador ativo na tabela de partição, portanto, por exemplo, o GRUB instalado no MBR pode iniciar e carregar o kernel do Linux mesmo se não houver uma partição ativa no disco; O Linux também não usa o sinalizador de partição ativa de nenhuma maneira.

Muitas versões do BIOS verificam apenas o número mágico 0xaa55 no final do MBR e o código de comando jmp inicial para determinar se o MBR é válido e terão todo o prazer em transferir o controle para o código no MBR, independentemente do MS. Conteúdos da tabela de partição DOS. No entanto, em alguns casos, os desenvolvedores da BIOS decidem ser “mais úteis” e adicionar mais verificações ao código de inicialização - por exemplo, o BIOS pode examinar a tabela de partição do MS-DOS no MBR e considerar o disco como não inicializável. nenhuma partição ativa lá. Essa verificação fornece resultados incorretos se o MBR não contiver o código usual que carrega o setor de inicialização da partição ativa, mas os desenvolvedores de BIOS provavelmente não consideram isso como um problema. Se o seu computador possui esse BIOS, você deve ter uma partição ativa no seu disco de inicialização, mesmo se o sinalizador ativo não for realmente usado pelo código no MBR e no restante do gerenciador de inicialização.

    
por 25.05.2013 / 16:22