Problema de inicialização do LUKS initramfs: “/ dev / mapper / ubuntu-root não existe.” Como posso consertá-lo usando um backup?

3

Primeiro asker, relativamente novo no Ubuntu / Linux. Não tive muita sorte com a função de busca. Por favor, perdoem o ensaio abaixo - o problema é um pouco único, eu acho ...

Estou executando o 12.04 em um laptop (com UEFI BIOS), com criptografia completa de disco configurada usando o CD alternativo. Eu recentemente fiz uma imagem de backup de todo o disco rígido usando dd, para um HDD USB externo. Tendo feito recentemente algumas alterações no laptop, tentei conectar o clone USB externo para copiar os arquivos para ele. Apesar de obter o prompt de senha e fazer com que ele apareça no Disk Utility como um grupo de volume lógico, ele não montaria a unidade externa, dizendo que "não era um sistema de arquivos montável". Tentei na minha área de trabalho, e montou muito bem (uma vez eu instalei lvm2).

Usando o pvdisplay, notei que tanto a unidade externa quanto a interna do laptop tinham o mesmo UUID (duh, é um clone!). Então, na área de trabalho, usei pvchange -u para alterar o uuid da unidade externa. Conectado no laptop, infelizmente, ainda não há alegria. Desistiu, desligou o laptop (drive ainda ligado), foi e jantou. Voltei, unidade externa desconectada do laptop agora desligado, tentou inicializar. Problemas!

Ele inicializa na tela de solicitação de senha. Digite a senha e, após uma longa espera, ela será direcionada para um prompt initramfs, com o erro: "ALERT! / Dev / mapper / ubuntu-root não existe." Cocô.

Se eu reinicializar e reconectar a unidade externa, ele será inicializado, aparentemente executando a raiz da unidade USB. Eu tentei a solução aqui , digitando / dev / sda3 (e ainda mais variantes). Sem bingo, ainda receba exatamente as mesmas mensagens. O fato de eu estar usando o LUKS com um LVM parece complicar as coisas. Acho que confundi um arquivo de configuração em algum lugar, provavelmente conectando duas unidades com o mesmo UUID (estúpido!) E agora ele acha que o / root está na unidade externa. Estou perplexo quanto a como recuperá-lo.

    
por jdeks 28.12.2012 / 17:22

1 resposta

3

FIXO-O !! Para as referências das futuras gerações, veja como:

O problema foi que, ao conectar o clone do sistema que eu estava usando, eu "confundi" meu sistema com a unidade na qual gravar e, de alguma forma, os metadados do Grupo de Volume para a unidade interna original. Por sorte, eu ainda tinha os metadados do clone que fiz.

Isso significa que eu poderia conectar o backup de trabalho, desbloqueá-lo e usar o vgcfgbackup para fazer uma cópia de seus metadados.

~$ sudo vgcfgbackup -f /tmp/trousers
  Volume group "ubuntu" successfully backed up.

Isso cria um arquivo de texto com os metadados em / tmp chamados de calças (o que você gosta, não faz diferença)

Em seguida, desmontei e desconectei o clone de backup em funcionamento e liguei a unidade interna borked. Desbloqueou como eu fiz o backup, em seguida, execute:

 sudo vgcfgrestore -f /tmp/trousers ubuntu
  Restored volume group ubuntu

Ao fazer isso, o grupo de volumes de repente ganhou vida no utilitário de disco, e o borked internal foi descompactado, montável e legível novamente!

O bit crítico aqui é que 'ubuntu' era o nome do grupo de volume original. Você pode verificar isso abrindo o arquivo 'trousers' no gedit e olhando para a entrada na linha abaixo de "creation_time".

Também vale a pena notar que isso só funcionou porque o backup era um clone exato do original interno e, portanto, o arquivo metatdata VG tinha todos os UUIDs corretos no lugar. Na verdade, recebi uma mensagem de erro primeira vez porque alterei manualmente um dos UUIDs na unidade externa. Eu tive que usar o pvdisplay no original interno para encontrar o seu UUID e, em seguida, editar manualmente o arquivo 'calças' para fazê-lo funcionar.

De qualquer forma, espero que ajude alguém um dia.

    
por jdeks 01.01.2013 / 08:18