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 페이지")를 읽고 해당 명령을 사용하기 전에 해당 명령이 수행하는 작업을 이해했는지 확인하십시오.
당신은 경고를 받았습니다
나중에 참고할 수 있도록 해결 방법은 다음과 같습니다.
LUKS 파티션의 시작 위치를 찾으세요. 모든 LUKS 파티션에는 LUKS라는 단어가 포함된 일반 텍스트 헤더가 있습니다. 그래서
sudo hexdump -C /dev/<the disk> | grep LUKS
LUKS가 어디에 있는지 확인하세요.
hexdump
이 헤더의 시작 부분이 발견되는 오프셋이 나열되어야 합니다. LUKS 헤더를 찾은 오프셋에서 시작하여 파티션을 루프백 장치로 마운트합니다.sudo losetup -o <offset> -r -f /dev/nvme0n1
참고로 Intel SSD 및 GRUB2를 사용하는 Xubuntu의 오프셋은 0x3e900000입니다.
어떤 장치가 누락되었는지 확인
losetup -a
복호화 및 마운트
sudo cryptsetup luksOpen /dev/loop1 luksrecover
이 시점에서 디스크가 마운트되어야 합니다
/media/
. 그러나 콘텐츠는/home
여전히 암호화되어야 합니다. 이제 해독할 시간이다-
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 유틸리티를 사용하여 파티션 테이블을 복원하겠습니다. 마지막으로 필요했을 때 소스에서 컴파일하면 복구 가능한 항목에 영향을 미쳤습니다.