암호화된 ext3이 깨졌습니다. 어떻게 진행하나요?

암호화된 ext3이 깨졌습니다. 어떻게 진행하나요?

내 Debian wheezy 설치의 기본 파티션은 암호화된 LVM 볼륨입니다. ext3 입니다. 오늘 일찍 터미널 창에서 /home읽기 전용 파일 시스템으로 인해 트리의 파일 에 쓰려는 시도가 실패했다는 이상한 메시지를 받았습니다 . 재부팅한 후 /dev/sda1 is reported as clean. fsck.ext3자동으로 실행되어 해당 장치가 없음을 보고 /dev/mapper/sda1_crypt하고 종료 코드 8을 보고하는 오류 메시지가 표시되었습니다. 나는 유지보수 쉘로 이동했고 누군가가 로그에 기록을 시도하고 있다는 말을 들었습니다 /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개의 곱셈 선언 블록입니다: [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에 추가하는 것입니다. 적절한 옵션을 사용하면 읽을 수 없는 영역이 식별됩니다.

관련 정보