삭제된 LUKS 파티션 복구

삭제된 LUKS 파티션 복구

LUKS를 사용한 전체 디스크 암호화와 별도로 암호화된 /home 파티션을 설정했습니다. 내 /root를 삭제하는 실수를 했지만 일찍 발견하여 파티션 테이블만 변경했습니다. 이제 다음이 남았습니다.

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.....|

이는 LUKS 헤더가 여전히 손상되지 않았음을 의미합니다(휴).

그런 다음 해당 오프셋에 루프 장치를 만듭니다.

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

그리고 설치해 보세요

 sudo cryptsetup luksOpen /dev/loop1 luksrecover

지금까지는 훌륭하게 작동하고 있으며 모든 것이 올바르게 설치되었으며 내 파일을 볼 수 있고 몇 가지 추가 명령을 사용하여 별도의 /home을 복원할 수 있습니다.

그러나 완전한 OS가 있기 때문에 다시 돌아오길 바랍니다. 유일한 문제는 원래 Xubuntu LUKS 암호 해독기를 호출할 수 있는 grub이 없다는 것입니다.

이제 내 파티션에 상당한 오프셋이 있는 것을 보니 이곳이 그럽이 살았던 곳인 것 같습니다.

그렇다면 운영 체제를 복원하려면 어떻게 해야 합니까? 내가 이해하는 바에 따르면 바이트 0 - $offset을 grub으로 표시하고 거기에 grub을 설치하고 나머지는 다른 것으로 설치해야 합니다. 그래서 grub-install /dev/nvme0n1을 시도했는데 aufs에 대해 불평했습니다.

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

그런 다음 설치된 LUKS 시스템의 chroot에서 동일한 작업을 시도했지만 파일 시스템은 읽기 전용이었고 물론 처음에는 grub이 없었습니다.

그렇다면 LUKS 앞의 빈 공간에 grub을 배치하고 부팅 시 LUKS의 암호를 해독하려면 어떻게 해야 할까요?

답변1

경고하다:

이 모든 작업을 수행하기 전에 드라이브의 이미지(백업)를 만드십시오.

모든 명령에 대한 문서(예: "man 페이지")를 읽고 해당 명령을 사용하기 전에 해당 명령이 수행하는 작업을 이해했는지 확인하십시오.

당신은 경고를 받았습니다

나중에 참고할 수 있도록 해결 방법은 다음과 같습니다.

  1. LUKS 파티션의 시작 위치를 찾으세요. 모든 LUKS 파티션에는 LUKS라는 단어가 포함된 일반 텍스트 헤더가 있습니다. 그래서

    sudo hexdump -C /dev/<the disk>  | grep LUKS
    
  2. LUKS가 어디에 있는지 확인하세요.  hexdump이 헤더의 시작 부분이 발견되는 오프셋이 나열되어야 합니다. LUKS 헤더를 찾은 오프셋에서 시작하여 파티션을 루프백 장치로 마운트합니다.

    sudo losetup -o <offset> -r -f /dev/nvme0n1
    

    참고로 Intel SSD 및 GRUB2를 사용하는 Xubuntu의 오프셋은 0x3e900000입니다.

  3. 어떤 장치가 누락되었는지 확인

    losetup -a
    
  4. 복호화 및 마운트

    sudo cryptsetup luksOpen /dev/loop1 luksrecover
    

    이 시점에서 디스크가 마운트되어야 합니다 /media/. 그러나 콘텐츠는 /home여전히 암호화되어야 합니다. 이제 해독할 시간이다

  5.  cd /home/<yourusername>
    
     sudo ecryptfs-recover-private .Private/
    

    그러면 다음과 같은 결과가 생성됩니다

    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].
    

    외부 저장 장치(예: HDD)를 연결하고 필요한 모든 것을 /home저장 하세요. /opt다시 설치하고 /home자신의 것으로 교체하십시오. 아니면 기존 파일 시스템을 적절한 파티션으로 이동하세요.

위기는 단 몇 시간 만에 해결됐다.

답변2

Linux Testdisk 유틸리티를 사용하여 파티션 테이블을 복원하겠습니다. 마지막으로 필요했을 때 소스에서 컴파일하면 복구 가능한 항목에 영향을 미쳤습니다.

관련 정보