암호화된 ext3이 손상되었습니다. 어떻게 진행하나요?

암호화된 ext3이 손상되었습니다. 어떻게 진행하나요?

Debian wheezy 설치의 내 홈 파티션은 암호화된 LVM 볼륨입니다. ext3 입니다. 오늘 초, /home읽기 전용 파일 시스템으로 인해 트리 에 있는 파일에 쓰려는 시도가 실패했다는 이상한 메시지가 터미널 창에 표시되었습니다 . 재부팅했는데 /dev/sda1 is reported as clean. fsck.ext3자동으로 실행되고 종료 코드 8과 같은 장치가 없다고 보고하는 오류 메시지가 표시되었습니다 /dev/mapper/sda1_crypt. 유지 관리 셸로 이동하여 에 로그를 쓰려는 시도가 있었다고 말했습니다 /var/log/fsck/checkfs.

해당 로그는 다음과 같습니다.

[Timestamp]

fsck from util-linux 2.20.1
/dev/mapper/sda1_crypt: Super blocks need_recovery flag is clear, but journal has data.
/dev/mapper/sda1_crypt: Run journal anyway

/dev/mapper/sda1_crypt: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY
     (i.e., without -a or -p options)
fsck died with exit status 4

나는 달렸다

$ fsck -vnM /dev/mapper/sda1

수많은 illegal block #nnnn (mmmmmmmmm) in inode ppppppp IGNORED메시지가 지나갔다.

too many blocks in Inode somenumberhere

그런 다음 추가 패스를 실행하여 둘 이상의 inode가 요구하는 블록을 해결합니다.

그런 다음 출력됩니다.

Pass 1B: Rescanning for multiply claimed blocks

조금 지나니 벽이 생겼어요

Illegal block number passed to ext2fs_test_block_bitmap somenumberhere for multiply claimed block map

그 뒤에는 I 노드 anothernumber에서 2개의 Multiply 요청 블록이 이어졌습니다: [5 및 8 블록 번호 목록]

그런 다음 다음과 같은 여러 연을 얻었습니다.

[ 3828.181915] ata1.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
[ 3828.182462] ata1.01 BMDMA stat 0x64
[ 3828.183810] ata1.01 failed command: READ DMA EXT
[ 3828.185889] ata1.01 cmd 25/00:08:08:10:9c/00:00:29:00:00/f0 tag dma 4096 in
[ 3828.185891] res 51/40:00:09:10:9c/40:00:29:00:00/f0 Emask 0x9 (media error)
[ 3828.190071] ata1.01 status: { DRDY ERR }
[ 3828.192153] ata1.01 status: { UNC }

이것들이 뒤따랐다

[ 3830.509338] end_request: I/O error, deb SDA, sector 698093577
[ 3830.509841] Buffer I/O error on device dm-3, logical block 87261184
Error reading block 87261184 (Attempt to read block from filesystem resulted in short read) while reading I node and block bitmaps. Ignore error? no

fsck.ext3: Can't read an block bitmap while retrying to read bitmaps for /dev/mappersfa1_crypt

/dev/mapper/sda1_crypt: ******* WARNING: Filesystem still has errors *******

e2fsck: aborted

/dev/mapper/sda1_crypt: ******* WARNING: Filesystem still has errors *******

그리고 파일 시스템에 여전히 오류가 있다는 경고와 함께 중단되었습니다.

내 질문은 다음과 같습니다

  1. 내 데이터가 폐기되었나요? (나의 엄격한 백업 정책이 요즘 제대로 지켜지지 않고 있어 우주의 벌을 받고 있는 것이 틀림없다.)

  2. 나는 지금 무엇을 할 수/해야 하는가?

  3. 내가 이미 나쁜 짓을 한 걸까?

  4. 흔들림이 멈출 때까지 누군가 나를 붙잡아 줄 것인가?

편집하다

나는 또한 내 지역 LUG 메일링 리스트에 질문했습니다. 거기서 얻은 조언은 ddrescue로 드라이브 이미지를 찍고 해당 이미지의 복사본에 대해 fsck를 실행하라는 것이었습니다. 그것은 건전한 것 같고 상황을 악화시킬 것 같지 않습니다. 이것이 현재의 공격 계획이며, 더 나은 제안이 있을 때까지 기다리고 있습니다.

답변1

하드디스크 자체에 문제가 있는 것 같습니다. ("짧은 읽기" 등) 그렇다면 dmesg | tail아마도 일부 I/O 오류가 표시될 것입니다.

이를 확인하는 또 다른 방법은 badblocks -n문제가 있는 파티션에서 실행하는 것입니다. 아니면 전체 디스크에 있는 것이 더 좋습니다. 무엇을 테스트하든 마운트 해제해야 합니다. 대형 최신 디스크에서는 몇 시간이 걸립니다. 마운트해야 할 파티션에 없어서는 안 될 항목이 있는 경우 먼저 이동식 미디어나 네트워크 볼륨에 복사해 두세요.

디스크를 미러링하라는 제안도 좋습니다. badblocks -n디스크가 모든 섹터를 강제로 읽도록 하면 디스크가 문제 블록을 재배치할 수 있기 때문에 일종의 "라이트" 버전 검사입니다 badblocks -n. badblocks -n의심스러운 섹터는 읽기가 거의 불가능하고 디스크에 쓰기를 시도하면 이동할 수 있을 정도로만 불량한 섹터로 표시되기 때문에 더 효과적입니다. 하지만 디스크에 구조 작업을 견딜 수 있을 만큼 충분한 수명이 남아 있는 경우 추가 읽기 패스로는 디스크를 완료하는 데 충분하지 않습니다.

fsck디스크 이미지를 실행한다고 해서 모든 것이 복구될 것이라는 희망은 별로 없습니다 . 이 과정에서 섹터가 거의 손실될 것입니다. 즉, 일부 파일을 읽을 수 없거나 사용할 수 없을 정도로 손상될 수 있습니다. 예를 들어 JPEG는 손상된 데이터로 부분적으로 디코딩되지만 하단 ⅔이 잘린 JPEG는 유용하지 않을 수 있습니다.

내 데이터가 폐기되었나요?

아마도 그렇지 않을 수도 있습니다. 패스 badblocks -n로 문제가 해결되는 경우도 있습니다. 그렇다면 여전히 HDD를 교체해야 합니다. 왜냐하면 디스크는 거의 시작할 수 없을 만큼 나쁜 상태가 될 수 있기 때문입니다.

내가 이미 나쁜 짓을 한 걸까?

"엄격함"이라는 단어의 의미를 잊어버린 것 외에는 그렇지 않습니다. :)

답변2

복원할 현재 백업 이미지가 있기를 바랍니다.

지금 보존하고 싶은 항목을 제한적으로 백업한 다음 디스크를 계속 사용할 수 있는지 확인하겠습니다. 제가 사용했던 한 가지 비결은 RAW 파티션 장치를 사용하여 /dev/null에 추가하는 것이었습니다. 적절한 옵션을 사용하면 읽을 수 없는 영역을 식별할 수 있습니다.

관련 정보