O sistema não inicializa mais, desistiu de aguardar pelo dispositivo raiz (initramfs), / dev / mapper / gnome-root não existe

10

Depois de instalar uma atualização, meu sistema não é mais inicializado. Eu tenho a criptografia de disco completa (aquela que o instalador configura para você) ativada, de modo que geralmente solicita a chave apenas alguns segundos após a inicialização do GRUB. Agora, ele pula pedindo a chave, tenta carregar o Gnome e depois vai para a tela mostrada abaixo. O sistema é uma caixa System76 de 64 bits executando o Ubuntu Gnome 13.04. Isso aconteceu comigo uma vez no passado, em um Dell XPS 8300 de 64 bits executando o Ubuntu Gnome Remix 12.10. Nesse caso, eu reinstalei o sistema operacional. No entanto, eu quero realmente resolver o problema desta vez, para que eu saiba como lidar com isso no futuro. Além disso, é extremamente inconveniente reinstalar do zero.

Minha suspeita é que algo foi ferrado em um arquivo de configuração em / boot, de forma que ele não perceba que o disco está criptografado, mas eu não vi nada quando bisbilhotei por lá. Você tem alguma idéia de como corrigi-lo (além de reinstalar o sistema operacional)?

Gave up waiting for root device. Common problems:
  — Boot args (cat /proc/cmdline)
    — Check rootdelay= (did the system wait long enough?)
    — Check root= (did the system wait for the right device?)
  — Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/mapper/gnome-root does not exist.   
Dropping to a shell! 

BusyBox v.1.20.2 (Ubuntu 1:1.20.2-1ubuntu1) built-in shell (ash)   
Enter 'help' for list of built-in commands.  

(initramfs)
Freedom_Ben
fonte

Respostas:

9

Eu consertei !!! Para as gerações futuras, para que você não precise passar pelos dias agonizantes e infinitas horas que eu fiz:

Primeiro, consegui inicializar o sistema a partir do (initramfs)prompt digitando o seguinte (usei esta página do fórum como uma muleta):

cryptsetup luksOpen /dev/sda5 sda5_crypt
lvm vgchange -a y
exit

Isso fez meu sistema inicializar corretamente. Depois de inicializado, modifiquei /etc/crypttabpara apontar para um UUID diferente do que antes. Eu escolhi o UUID do meu /etc/fstab. Salve o valor UUID original. Você precisará dele em algumas etapas. Então eu corri (de um terminal):

update-initramfs -k all -c

Se você receber um aviso parecido com este ou algo semelhante:

WARNING: invalid line in /etc/crypttab

depois volte ao começo e, em vez de sda5_crypt, use o que está no seu crypttab.

Eu então reiniciei. Dessa vez, recebi a solicitação da senha! Mas não fique muito animado, porque não funcionou. Digitei a senha correta cerca de 7 vezes e ela rejeitou todas. Em seguida, ele voltou ao (initramfs)prompt após cerca de 90 segundos.

Repeti o primeiro passo e iniciei novamente. Em seguida, restaurei o valor UUID original para a crypttabetapa 2 e execute novamente. Eu então reiniciei, e SUCESSO!

Freedom_Ben
fonte
5

Com a criptografia de disco completo sendo uma opção no Ubuntu 14.04, eu só queria mostrar como resolvi esse problema, pois meu terminal initramfs não me permitia usar cryptsetup:

  1. Inicialize a partir de um Live DVD / USB (o USB será muito mais rápido).

  2. Abra um terminal e digite o seguinte:

    sudo -i
    cryptsetup luksOpen /dev/sda5 sda5_crypt
    # (do any lvm management you need here, I didn't need any.)
    mkdir /mnt/system
    mount /dev/mapper/ubuntu--vg-root /mnt/system
    mount /dev/sda2 /mnt/system/boot
    mount /dev/sda1 /mnt/system/boot/efi (May or may not be needed.)
    for i in /dev/pts /dev /proc /sys; do mount -B $i /mnt/system$i; done
    chroot /mnt/system
    update-initramfs -k all -c
    exit
    for i in /dev/pts /dev /proc /sys; do umount /mnt/system$i; done
    umount /mnt/system/boot/efi # (If you have UEFI.)
    umount /mnt/system/boot
    umount /mnt/system
  3. Reinicie e espero que funcione.

k0ryfi
fonte
Gostei mais desta solução, porque não precisava descobrir como obter um prompt do initramfs ou fazer mais de uma reinicialização. No meu caso, eu havia atualizado do Ubuntu 15.04 para 15.10 e não conseguia mais desbloquear minha unidade durante a inicialização. Uma adição é que descobri que o nome do mapeamento fornecido na linha 2 (por exemplo, sda5_crypt) precisa corresponder ao seu arquivo crypttab.
Der Wolf
1
O exemplo acima só funciona se você tiver uma entrada /etc/crypttab. Depois de inserir o chroot conforme as etapas acima, mas antes de executar update-initramfs, execute nano /etc/crypttabe verifique se há uma linha lá com o nome do mapeador e o UUID da unidade. Se o arquivo não existir ou estiver vazio, update-initramfso problema não será resolvido! Adicione a linha crypttab enquanto estiver no ambiente chroot. Esta resposta deve ser editada para refletir isso. Além disso, acho que cryptsetupsó existe no prompt initramfs se /etc/crypttabexiste e tem entradas quando o initramfs é atualizado.
Nick
0

Corrija seu grub através da inicialização através de um live-cd / live-usb. Consulte esta página para obter detalhes do processo. Consulte a seção "através do terminal LiveCD" na página.

A correção do grub deve corrigir qualquer arquivo malformado que você possa ter na configuração do grub.

Bhavin Doshi
fonte
Obrigado pela dica. Eu tentei tudo o que você sugeriu, mas sem sucesso. Eu acabei de descobrir isso. É muito louco ...
Freedom_Ben
0

Verifique se você cryptsetupinstalou no seu sistema, ele pode ter sido removido executando apt-get autoremove. Mais informações .

Arseny
fonte