Como fazer o grub funcionar novamente após a redesignação do drive?

7

Minha configuração: opensuse 11.4, partição de boot no pendrive e discos rígidos com partições sda1, sda2, sdb1.

Hoje mudei o chassi para o meu computador e, por engano, conectei o segundo disco ao SATA 3 em vez do SATA 2. O segundo disco não estava montado corretamente. Eu desliguei o computador, conectei-o corretamente e meu problema começou.

Agora, não consigo inicializar o sistema. Anteriormente eu definir a inicialização de unidade removível na BIOS (pendrive), mas agora parece computador (BIOS) não reconhece pendrive como unidade removível, mas regular HDD. Portanto, ele não inicializa para "unidade removível". Quando eu mudo a ordem de inicialização, e escolho inicializar a partir do disco rígido (e eu configuro o primeiro disco rígido como pendrive) ou se eu definir diretamente do menu de inicialização para inicializar do pendrive, recebo um erro no GRUB que entra no modo de recuperação.

Meu palpite é que, por causa de alguma razão, pendrive não é mais reconhecido como mídia removível, mas disco rígido, discos rígidos são mapeados de forma diferente e eu deveria corrigir os mapeamentos.

Eu posso inicializar o instalador do CD e montar o pendrive para ver o conteúdo da configuração do grub, mas quando estou no modo de recuperação do grub e executo "ls" eu recebo

(hd0) (hd0,msddos1) (hd1) (hd1,msddos2) (hd1,msdos1) (hd2) (hd2,msddos1)

Mas eu não vejo o mapeamento, então não sei o que o hd0 realmente significa. Eu só posso suspeitar hd1 aqui é sda, porque tem 2 partições (se sufixo msdsos é indicação de partições).

Como posso fazer o grub funcionar novamente?

    
por greenoldman 06.08.2011 / 18:33

3 respostas

7

O problema é provavelmente com o grub vendo discos usb no tempo de inicialização de forma diferente de uma vez executado a partir de um sistema em execução. Veja como você pode resolvê-lo:

Quando você inicializa (normalmente, a partir do hd) e o grub aparece, abra o console do GRUB (geralmente você faz isso pressionando c ). No prompt do grub, comece a digitar root (hd :

grub> root (hd

pressione Tab e você verá os discos como possíveis conclusões. Escolha o disco e a partição em que seu /boot é. Se você não tem certeza, então com cada um que você suspeitar, faça o seguinte:

  • (termine o comando root para escolher a partição e pressione Enter )
  • digite cat / e pressione Tab . Você verá a lista de arquivos encontrados na partição.
  • Vendo a lista de arquivos, decida se é a sua partição que contém o kernel (em /boot/ ).
  • Se não, pressione Esc e comece de novo.

Depois de descobrir como a partição é conhecida no grub, você pode reinstalar o carregador de boot (usando o comando setup ) e apontar para a partição / arquivos corretos em /boot/grub/menu.lst ou /boot/grub/grub.conf (você deve determinar quais desses usa sua versão ou apenas fazer com que eles contenham o mesmo).

[Editar]: Por pedido especial Macias, aqui estão mais detalhes sobre como consertar o MBR usando o grub:

Uma forma de reinstalar o MBR em uma unidade usando grub é o comando setup mencionado acima. Este é um comando conhecido para fazer o grub das versões 0.9X ( veja a Documentação ). Mas você parece estar usando a nova ramificação do grub (1.9X) e os comandos para ela são diferentes. Dê uma olhada na documentação correspondente - nesta versão, você pode instalar o grub no MBR < um href="http://www.gnu.org/software/grub/manual/grub.html#Installing-GRUB-using-grub_002dinstall"> usando o utilitário grub-install e não tenho certeza se existe é de qualquer outra forma - a partir do prompt "rescue" do grub, como no grub-0.97. Talvez não e talvez essa seja uma das razões pelas quais muitas distros preferem a versão "legada".

    
por 07.08.2011 / 05:34
2

O arquivo menu.lst é usado apenas pelo grub-legacy. Você parece estar usando o grub2, que usa grub.cfg . O Grub2 também prefere trabalhar sem um device.map , então você pode deletá-lo também e reinstalar o grub.

    
por 07.08.2011 / 00:36
1

A solução para este problema é dupla. A única coisa é consertar o grub e o outro é consertar o MBR.

O primeiro é bem simples (?). Execute seu computador com o CD de instalação (openSUSE!), Escolha "modo de recuperação", uma vez que você tenha o modo de recuperação executando o login como root (não é necessária senha), conecte o pendrive, monte-o (como por exemplo ~ / pendrive), vá para ~ / pendrive / grub e edite dois arquivos: device.map e menu.lst. Em ambos os arquivos você tem que procurar por entradas (hdX) onde X é (normalmente) 0 e 1. No meu caso eu simplesmente tive que trocar todos os 0 para 1, e todos os 1 para 0.

Eu não sei como consertar o MBR de maneira fácil, mas espero que o Rozcietrzewiacz venha com a solução :-), apenas no caso, o jeito difícil é pegar outro pendrive, e outro disco rígido, desconectar todo o disco rígido drives e executar a instalação "falsa" que imita o original. Se tudo funcionou bem, e seu novo sistema "falso" foi inicializado, é hora de copiar setores MBR do trabalho pendrive para o não-trabalho (veja: Como reconstruir completamente a partição de boot com o grub também? ). Você faz isso conforme explicado abaixo:

"Aqui, eu suponho que / dev / sdb é seu pendrive antigo e / dev / sdc é o NOVO - certifique-se de substituir aqueles com nomes de dispositivos apropriados, caso contrário você pode até atrapalhar todo o seu sistema!

dd if=/dev/sdc bs=512 count=1 of=/dev/sdb

"( solução da Rozcietrzewiacz )

Essas duas etapas são tudo o que você precisa para ter seu grub funcionando novamente após a redesignação do disco.

    
por 07.08.2011 / 15:20