instalando o grub e um kernel funcional sobre um sistema debian antigo e corrompido

0

Eu tenho um sistema debian antigo, que sempre consegui atualizar ao longo dos anos. Eu tinha instalado um kernel antigo, compilado por mim a partir de fontes.

Após meu último dist-upgrade (usando distribuição testing), tive um kernel panic na inicialização. Meu kernel antigo e minha nova libc não podem mais funcionar juntos (presumo).

Mesmo os nomes dos dispositivos são alterados: com o meu último kernel funcional, eu tinha /dev/hda e /dev/hdb , agora esses dispositivos são reconhecidos como /dev/sda e /dev/sdb .

Além disso, duas partições ( /dev/hda2 e /dev/hdb2 ) foram unidas em uma matriz de raid, cujo nome era /dev/md0 (montado como raiz) e agora é /dev/md127 . A partição /dev/hda1 foi montada como /boot e /dev/hdb1 foi a partição de troca.

Eu usei o lilo como gerenciador de inicialização.

Agora que tudo está quebrado, tentei usar o modo de recuperação do Debian, sem sucesso. Eu removi o lilo e instalei o grub2, ainda assim nada funciona.

Então eu decidi instalar um novo sistema debian mínimo na antiga partição swap ( /dev/hdb1 , agora /dev/sdb1 ) e, a partir daí, tentei salvar o sistema.

Ainda nada: não consigo instalar um kernel funcional (desta vez um pré-compilado) nas partições antigas. Eu tentei reconstruir meu antigo array de raid, montar minha partição de boot, chroot-ed e instalar um novo kernel: o grub não é capaz de ver nada.

Eu não sei mais o que eu poderia tentar ...

    
por zar 25.07.2014 / 17:47

2 respostas

0

Como derobert apontou, hda -> sda é uma mudança esperada desde há muito tempo.

A mudança do nome da matriz de ataque foi estranha, mas acabou se resolvendo no final.

Eu tentei inicializar a partir de uma distribuição de live-cd, montar o array de raid, montar a partição de boot e, em seguida, apt-get install do novo kernel. Esse procedimento gerou um erro porque eu não sabia que deveria ter montado /boot , /proc e /sys .

Então, o procedimento exato é:

  • inicializa a partir de uma distribuição ao vivo (o CD 1 do debian no modo de recuperação está ok)

  • monte a partição raiz (em / chroot, por exemplo) e, eventualmente, a partição de inicialização, se diferente do root)

  • bind mount os dispositivos especiais:

    • mount --bind /sys /chroot/sys
    • mount --bind /proc /chroot/proc
    • mount --bind /dev /chroot/dev
  • chroot para a partição raiz

  • instale o novo kernel

  • reboot

por 26.07.2014 / 18:30
1

o novo driver ATA no kernel usa / dev / sda, os drivers antigos ainda são suportados, mas você terá que editar o seu kernel fazendo um chrooting no seu sistema usando o comando livecd.

Device drivers --->
 <*> ATA/ATAPI/MFM/TLL support (deprecated)
 <*> Serial ATA and Parallel ATA drivers --->

Para o chrooting, uso sempre o CD de instalação mínima do gentoo e como fazer chroot em seu sistema, você pode ler em o manual do gentoo , também deve funcionar com o seu sistema. Provavelmente existe uma outra maneira para usuários debian, mas desta forma deve funcionar para vocês dois.

Espero que esta seja a solução para o seu problema.

    
por 25.07.2014 / 18:41