700GB exFAT 파티션과 300GB LUKS 파티션이라는 두 개의 파티션으로 나누어진 외장 하드 드라이브가 있습니다. 내 컴퓨터에서 luks 파티션으로 복사하고 있었는데 속도가 느려지고 멈춰서 USB 연결을 제거하기로 결정했습니다. 이제 LUKS 파티션이 마운트되지 않았고 중요한 파일로 가득 차 있습니다. :( 이 문제를 어떻게 해결할 수 있습니까? 다음은 두 가지 출력입니다.
$ sudo parted -l
Model: ********** (scsi)
Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Sinalizador
1 1049kB 300GB 300GB primary
2 300GB 1000GB 700GB primary
$ sudo fsck /dev/sdb
fsck from util-linux 2.28.2
e2fsck 1.43.3 (04-Sep-2016)
ext2fs_open2: Bad magic number in super-block
fsck.ext2: Superblock invalid, trying backup blocks...
fsck.ext2: Bad magic number in super-block while trying to open /dev/sdb
The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem. If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
or
e2fsck -b 32768 <device>
Found a dos partition table in /dev/sdb
도와주세요!
편집하다
나는 팔로우한다이것튜토리얼을 보고 슈퍼블록 백업으로 복원해 보세요. 이것을 사용하여 모든 백업을 찾았습니다.
$ sudo mke2fs -n /dev/sdb
mke2fs 1.43.3 (04-Sep-2016)
Found a dos partition table in /dev/sdb
Proceed anyway? (y,n) y
Creating filesystem with 244189952 4k blocks and 61054976 inodes
Filesystem UUID: ***************************
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
나열된 모든 블록 번호를 복원하려고 시도했지만 항상 동일한 오류 메시지가 표시됩니다. 예:
$ sudo e2fsck -b 32768 /dev/sdb
e2fsck 1.43.3 (04-Sep-2016)
e2fsck: Bad magic number in super-block while trying to open /dev/sdb
The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem. If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
or
e2fsck -b 32768 <device>
Found a dos partition table in /dev/sdb
답변1
fsck
명령이 잘못된 장치 노드를 가리 켰습니다 .
디스크를 분할하는 중이므로 /dev/sdb
전체 디스크 장치에서 파일 시스템 복구 도구를 실행해서는 안 됩니다. /dev/sdb
실제 파티션에서만 실행해야 합니다.
그러나 /dev/sdb2
파티션이 LUKS 암호화 파티션이기 때문에 이를 실행하는 것은 fsck
전혀 sdb2
쓸모가 없습니다. 파티션이 암호화되어 있기 때문에 sdb2
해당 내용은 LUKS 헤더를 제외하고 기본적으로 무작위 노이즈와 구별할 수 없게 보입니다. 이것이 암호화가 하는 일입니다.
대신 먼저 다음을 사용하여 암호화를 잠금 해제해야 합니다.
cryptsetup luksOpen /dev/sdb2 sdb2_crypt
암호화된 비밀번호를 묻는 메시지가 표시됩니다. 명령이 성공하면 다른 장치 노드가 생성됩니다 /dev/mapper/sdb2_crypt
. 장치를 사용하고,오직이 장치에서는 LUKS 암호화/암호 해독 "필터"를 통해 암호화된 파티션의 콘텐츠에 액세스할 수 있어 암호화되지 않은 일반 장치처럼 보입니다. 시스템을 종료하거나 cryptsetup luksClose
잠긴 암호화를 사용하면 암호화가 다시 잠금 해제될 때까지 장치가 사라집니다.
여기에는 파일 시스템 검사 실행이 포함됩니다.
fsck /dev/mapper/sdb2_crypt
/dev/mapper/sdb2_crypt
마찬가지로 암호화된 파티션을 마운트할 때는 원래 암호화된 파티션이 아닌 해당 장치를 사용해야 합니다 /dev/sdb2
.
답변2
LUKS 헤더가 손상되지 않았는지 확인하세요.
cryptsetup luksDump /dev/sdb2
오류가 발생하면 죄송하지만 LUKS 헤더를 백업하지 않으면 중요한 파일을 복구할 수 없습니다.
LUKS 헤더의 백업이 있는 경우 복원할 수 있습니다.
cryptsetup luksHeaderRestore /dev/sdb2 --header-backup-file somefile
답변3
하드웨어 계층부터 시작하는 것이 좋습니다. /var/log/messages에 디스크 관련 오류가 표시됩니까? 예를 들어, 케이블이나 디스크 자체가 이러한 문제의 근본 원인일 수 있습니다. 문제는 하드웨어 문제라면 발생한 재해가 복구되더라도 다시 발생할 가능성이 높다는 점이다.