Recuperar partição LUKS excluída

3

Eu tenho (tive) a seguinte configuração: Criptografia de disco completo com LUKS e uma partição / criptografada separadamente. Cometi o erro de deletar meu / root, mas peguei cedo o suficiente para que somente as alterações na tabela de partição fossem feitas. Agora estou com o seguinte:

sudo hexdump -C /dev/nvme0n1 |grep LUKS
3e900000  4c 55 4b 53 ba be 00 01  61 65 73 00 00 00 00 00  |LUKS....aes.....|

Isso significa que o cabeçalho LUKS ainda está intacto (ufa)

Em seguida, crio um dispositivo de loop nesse deslocamento

 sudo losetup -o 0x3e900000 -r -f /dev/nvme0n1 

e monte-o com

 sudo cryptsetup luksOpen /dev/loop1 luksrecover

até agora funciona muito bem, as coisas são montadas corretamente. Eu posso ver meus arquivos e, com mais alguns comandos, posso recuperar meu / home separado.

No entanto, desde que eu tenho um sistema operacional intacto eu gostaria de voltar. Único problema que parece, não há nenhum grub para chamar o decodificador inicial do LUub do Xubuntu.

Agora, como vejo que há um deslocamento significativo no meu particionamento, acho que é onde o grub costumava viver

Então, o que posso fazer para recuperar meu sistema operacional? Tanto quanto eu entendo, devo marcar de alguma forma os bytes 0 - $ offset como grub e instalar o grub lá e o restante como outra coisa. Então eu tentei o grub-install / dev / nvme0n1 e ele reclamou aufs

grub-install: error: failed to get canonical path of 'aufs'.

então tentou o mesmo em um chroot no sistema LUKS que foi montado mas que o sistema de arquivos é somente leitura e é claro que nunca teve grub para começar.

Então, o que posso fazer para colocar o grub no espaço vazio antes do LUKS e descriptografar o LUKS ao iniciar?

    
por ndp 10.05.2017 / 18:27

2 respostas

0

// obtenha uma imagem da unidade ANTES de fazer tudo isso // equipe todos os comandos primeiro e certifique-se de obter o que eles fazem de antemão

Para referência futura, aqui está a solução com os comandos copiar pastéis

1: Localiza onde a partição LUKS é iniciada, todas as partições LUKS possuem um cabeçalho de texto sem formatação contendo a palavra LUKS. Então

sudo hexdump -C /dev/<the disk>  |grep LUKS

2: Observe onde o LUKS estava, o hexdump deve listar um offset onde ele encontrou o início deste cabeçalho. Monte a partição como um dispositivo de loopback iniciando onde o deslocamento que você encontrou no cabeçalho LUKS é

 sudo losetup -o <offset, mine in xubuntu with an intel SSD and grub2 was 0x3e900000> -r -f /dev/nvme0n1 

3: descubra qual dispositivo foi perdido como

losetup -a

4: Descriptografar & montar

 sudo cryptsetup luksOpen /dev/loop1 luksrecover

Neste ponto, o disco deveria ter sido montado em / media / No entanto: seu / home ainda deve ser criptografado, hora de descriptografar

5: cd / home /

sudo ecryptfs-recover-private .Private/

Isso deve produzir o seguinte

INFO: Found [.Private/].
Try to recover this directory? [Y/n]: Y
INFO: Found your wrapped-passphrase
Do you know your LOGIN passphrase? [Y/n] Y
INFO: Enter your LOGIN passphrase...
Passphrase: 
Inserted auth tok with sig [8c5d84b9d7f0cc5b] into the user session keyring
INFO: Success!  Private data mounted at [/tmp/ecryptfs.mxsowbiD].

Conecte um hd externo, salve seu / home / opt / e o que mais você precisar. Reinstale e substitua o / home pelo seu. Ou apenas mova o sistema de arquivos existente para uma partição adequada.

Crise evitada, e levou apenas algumas horas

    
por 18.12.2017 / 14:48
1

Eu usaria o utilitário Linux Testdisk para recuperar a tabela de partições. A última vez que precisei, compilar a partir da fonte fez a diferença no que era recuperável.

    
por 15.12.2017 / 21:46