fsck 후에 손상된 ext4 파일 시스템을 어떻게 복구 할 수 있습니까?


11

소프트웨어 raid5 이상의 luks에 ext4 파일 시스템이 있습니다. 파일 시스템에 공간이 부족해지기 시작했을 때 몇 년 동안 "정상적으로"작동했습니다. 6x2T 드라이브에 9T 볼륨이 있습니다. 더 큰 어레이가 생길 때까지 mdadm fail, remove, add, rebuild, 반복 프로세스를 수행하여 3T 드라이브로 업그레이드하기 시작했습니다. 그런 다음 luks 컨테이너를 확장 한 다음 마운트를 해제하고 resize2fs를 시도 할 때 파일 시스템이 더럽고 e2fsck가 필요하다는 메시지가 표시되었습니다.

생각하지 않고 방금 e2fsck -y / dev / mapper / candybox를 수행했으며 모든 종류의 inode가 유형 메시지를 제거하기 시작했습니다 (정확히 기억할 수는 없습니다). 나는 e2fsck를 죽이고 내가 걱정했던 데이터를 백업하기 위해 파일 시스템을 다시 마운트하려고 시도했습니다. 이 시점에서 마운트하려고하면 다음과 같은 결과가 나타납니다.

# mount /dev/mapper/candybox /candybox
mount: wrong fs type, bad option, bad superblock on /dev/mapper/candybox,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

이전 로그를 다시 살펴보면 파일 시스템이 시스템을 부팅 할 때마다이 오류를 발생시키는 것으로 나타났습니다.

kernel: [79137.275531] EXT4-fs (dm-2): warning: mounting fs with errors, running e2fsck is recommended

그래서주의를 기울이지 않는 것에 대해 부끄러운 줄 아십시오 :(


그런 다음 모든 백업 수퍼 블록을 사용하여 마운트하려고 시도했으며 각 시도는 내 로그에 남았습니다.

EXT4-fs (dm-2): ext4_check_descriptors: Checksum for group 0 failed (26534!=65440)
EXT4-fs (dm-2): ext4_check_descriptors: Checksum for group 1 failed (38021!=36729)
EXT4-fs (dm-2): ext4_check_descriptors: Checksum for group 2 failed (18336!=39845)
...
EXT4-fs (dm-2): ext4_check_descriptors: Checksum for group 11911 failed (28743!=44098)
BUG: soft lockup - CPU#0 stuck for 23s! [mount:2939]


e2fsck를 다시 시작하면 다음이 발생합니다.

# e2fsck /dev/mapper/candybox 
e2fsck 1.41.14 (22-Dec-2010)
e2fsck: Group descriptors look bad... trying backup blocks...
candy: recovering journal
e2fsck: unable to set superblock flags on candy


이 시점에서 나는 더 많은 드라이브를 주문하고 ddrescue Now를 사용하여 이미지를 만드는 것이 가장 좋다고 결정했다 .

# ls -lh
total 14T
-rw-r--r-- 1 root root 14T Oct 25 01:57 candybox.img
-rw-r--r-- 1 root root 271 Oct 20 14:32 candybox.logfile

온라인에서 찾을 수있는 모든 것을 사용하여 수많은 시도를 한 후에 이미지에서 아무것도하지 않기 위해 e2fsck를 강요 할 수 없었으므로 mkfs.ext4 -L candy candybox.img -m 0 -S저널을 사용하지 않고 더러운 파일 시스템을 읽기 전용으로 마운트하고 960G의 데이터를 복구 할 수있었습니다. 그것은 존재하지 않는 다양한 디렉토리의 모든 종류의 오류를 낳았지만 어떤 것을 얻을 수있었습니다 . 나에게 희망을 주었다!

그런 다음 e2fsck를 다시 실행하고 루트 inode를 다시 작성하고 그룹 수를 수정하는 방대한 목록을 제공해야했으며 루트 inode 생성을 수락하고 다른 모든 것에 대해서는 아무 것도 말하지 않고 완전히 빈 파일 시스템을 남겼습니다. 다시 실행하고 동일한 결과를 가지지 만 이제는 "깨끗한"그러나 비어있는 파일 시스템 인 모든 질문에 예라고 대답했습니다.

extundelete는 나에게 준다 0 recoverable inodes found.

이제는 다시 붙어있어 photorec과 같은 다른 방법으로 파일 시스템의 크기를 절대적으로 엉망으로 만들 수 없습니다.

더 많은 파일을 다시 가져 오는 방법에 대한 제안이나 아이디어를 얻을 수 있다면 원래 배열에서 이미지를 다시 복사하고 다시 시작하겠습니다.

실행 된 명령에 대한 자세한 로그를 제공 할 수 있기를 원하지만 syslog에 기록되는 것을 제외하고 출력이 길게 스크롤되어 내 메모리가 시간이 지남에 따라 상세하지 않습니다.

어떤 도움이라도 대단히 감사합니다!

10 월 27 일 업데이트

다시 테스트를 시작하기 위해 이미지를 완전히 다시 복사했으며 여기까지의 출력이 있습니다. 복사 과정 :

[root@gamma rescue]# nbd-client 172.16.10.204 2000 /dev/nbd0
Negotiation: ..size = 14307292MB
bs=1024, sz=15002283540480 bytes
[root@gamma rescue]# cryptsetup luksOpen /dev/nbd0 candybox
Enter passphrase for /dev/nbd0: 
[root@gamma mnt]# pvcreate /dev/md5
  Physical volume "/dev/md5" successfully created
[root@gamma mnt]# pvscan
  PV /dev/md5                      lvm2 [18.19 TiB]
  Total: 1 [18.19 TiB] / in use: 0 [0   ] / in no VG: 1 [18.19 TiB]
[root@gamma mnt]# vgcreate vg-rescue /dev/md5
  Volume group "vg-rescue" successfully created
[root@gamma mnt]# lvcreate --size 15T --name lv-rescue vg-rescue
  Logical volume "lv-rescue" created
[root@gamma mnt]# mkfs.xfs /dev/vg-rescue/lv-rescue 
log stripe unit (524288 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
meta-data=/dev/vg-rescue/lv-rescue isize=256    agcount=33, agsize=125828992 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=4026531840, imaxpct=5
         =                       sunit=128    swidth=640 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=521728, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@gamma mnt]# mount /dev/vg-rescue/lv-rescue rescue/
[root@gamma rescue]# ddrescue /dev/mapper/candybox candybox.img candybox.ddlog


Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued:         0 B,  errsize:       0 B,  errors:       0
Current status
rescued:    13194 GB,  errsize:   1807 GB,  current rate:        0 B/s
   ipos:    13194 GB,   errors:       1,    average rate:   73528 kB/s
   opos:    13194 GB,     time from last successful read:      44 s
^Clitting failed blocks... 
Interrupted by user
## Network hung, had to try again here
[regan@gamma ~]$ sudo nbd-client -d /dev/nbd0
Disconnecting: que, disconnect, Error: Ioctl failed: Invalid argument

Exiting.
[regan@gamma ~]$ sudo nbd-client 172.16.10.204 2000 /dev/nbd0
Negotiation: ..size = 14307292MB
bs=1024, sz=15002283540480 bytes

[root@gamma rescue]# ddrescue -r 2 /dev/mapper/candybox candybox.img candybox.ddlog


Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued:    15002 GB,  errsize:   7426 kB,  errors:      60
Current status
rescued:    15002 GB,  errsize:       0 B,  current rate:    77529 kB/s
   ipos:    15002 GB,   errors:       0,    average rate:    69297 kB/s
   opos:    15002 GB,     time from last successful read:       0 s
Finished                       

[root@gamma rescue]# lvcreate -l 100%FREE -s -n rescue_snap /dev/vg-rescue/lv-rescue 
  Logical volume "rescue_snap" created
[root@gamma rescue]# cd ..
[root@gamma mnt]# mount -o remount,ro rescue/
[root@gamma mnt]# mkdir rescue_snap
[root@gamma mnt]# mount -o nouuid /dev/vg-rescue/rescue_snap rescue_snap
[root@gamma mnt]# cd rescue_snap/
[root@gamma rescue_snap]# ls
candybox.ddlog  candybox.img

지저분한 :

[root@gamma rescue_snap]# mkfs.ext4 -L candy candybox.img -m 0 -S
mke2fs 1.41.10 (10-Feb-2009)
candybox.img is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=candy
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
915668992 inodes, 3662666368 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
111776 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
    102400000, 214990848, 512000000, 550731776, 644972544, 1934917632, 
    2560000000

Skipping journal creation in super-only mode
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

[root@gamma rescue_snap]# mount -o loop candybox.img /mnt2
[root@gamma rescue_snap]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/md2              147G  138G  3.1G  98% /
tmpfs                  16G  5.7M   16G   1% /dev/shm
/dev/md0              494M  199M  276M  42% /boot
/dev/sdc1             1.8T  979G  763G  57% /mnt/macmirror
/dev/sdj1             1.8T  970G  771G  56% /mnt/usbrescue
/dev/mapper/vg--rescue-lv--rescue
                       15T   14T  1.4T  91% /mnt/rescue
/dev/mapper/vg--rescue-rescue_snap
                       15T   14T  1.4T  91% /mnt/rescue_snap
/mnt/rescue_snap/candybox.img
                       14T   15M   14T   1% /mnt2

## Even though it says only 15M is used, I was able to rsync 960G to /mnt/usbrescue

[root@gamma rescue_snap]# cd /mnt2/
[root@gamma mnt2]# ls -l
ls: cannot access Fedora-19-x86_64-DVD: Input/output error
ls: cannot access rsync_batch: Input/output error
ls: cannot access shell1: Input/output error
ls: cannot access New Folder (2): Input/output error
ls: cannot access shell2: Input/output error
ls: cannot access revolution: Input/output error
ls: cannot access mail: Input/output error
ls: cannot access testing: Input/output error
ls: cannot access export: Input/output error
ls: cannot access ben_backup_20130903: Input/output error
total 160488672
drwxr-xr-x     2 regan regan        4096 Sep  3 20:16 100MEDIA
drwxr-xr-x    19 regan regan        4096 Sep 26 05:18 android
d??????????    ? ?     ?               ?            ? ben_backup_20130903
-rw-rw-r--     1 regan regan       12126 Jan  4  2013 durations.txt
d??????????    ? ?     ?               ?            ? export
drwxrwxr-x    10 regan regan        4096 Dec 29  2012 family-pc_20121229
d??????????    ? ?     ?               ?            ? Fedora-19-x86_64-DVD
-rw-r--r--     1 regan regan 72116729363 Sep 30 04:39 gamma_backup_20130928.tgz
-rw-rw-r--     1 regan regan 55606528323 Jul 27  2011 gamma_tar_20110727.tbz2
-rw-rw-r--     1 regan regan        3839 Sep 27  2012 Good Quality2.plist
-rw-rw-r--     1 regan regan        4663 Oct  7  2012 Good Quality3.plist
-rw-rw-r--     1 regan regan        3852 Sep 26  2012 Good Quality.plist
drwxr-xr-x     7 regan regan        4096 Nov 13  2012 grok
d??????????    ? ?     ?               ?            ? HardDisks
-rwxr--r--     1 regan regan       54248 Mar 16  2013 IMAG0868.jpg
-rwxr--r--     1 regan regan       51156 Mar 16  2013 IMAG0869.jpg
-rwxr--r--     1 regan regan       85912 Mar 16  2013 IMAG0870.jpg
-rwxr--r--     1 regan regan       76875 Mar 16  2013 IMAG0872.jpg
-rwxr--r--     1 regan regan       68451 Mar 16  2013 IMAG0873.jpg
-rwxr--r--     1 regan regan       59587 Mar 16  2013 IMAG0874.jpg
-rwxr--r--     1 regan regan       81232 Mar 16  2013 IMAG0875.jpg
-rwxr--r--     1 regan regan       44211 Mar 16  2013 IMAG0876.jpg
-rwxr--r--     1 regan regan       41660 Mar 16  2013 IMAG0877.jpg
-rwxr--r--     1 regan regan       36778 Mar 16  2013 IMAG0878.jpg
-rwxr--r--     1 regan regan       76964 Mar 16  2013 IMAG0879.jpg
-rwxr--r--     1 regan regan       81876 Mar 16  2013 IMAG0880.jpg
-rwxr--r--     1 regan regan     1568002 Mar 16  2013 IMAG0953.jpg
-rwxr--r--     1 regan regan     1548566 Mar 16  2013 IMAG0954.jpg
-rwxr--r--     1 regan regan     1351743 Mar 16  2013 IMAG0955.jpg
-rwxr--r--     1 regan regan     1750128 Mar 16  2013 IMAG0956.jpg
-rwxr--r--     1 regan regan     1694378 Mar 16  2013 IMAG0957.jpg
-rwxr--r--     1 regan regan     1277128 Mar 16  2013 IMAG0958.jpg
-rwxr--r--     1 regan regan     1467452 Mar 16  2013 IMAG0965.jpg
-rwxr--r--     1 regan regan     1595903 Mar 16  2013 IMAG0966.jpg
-rwxr--r--     1 regan regan     1372444 Mar 16  2013 IMAG0967.jpg
-rwxr--r--     1 regan regan     1698010 Mar 16  2013 IMAG0968.jpg
-rwxr--r--     1 regan regan     1550641 Mar 16  2013 IMAG0969.jpg
-rwxr--r--     1 regan regan     1333768 Mar 16  2013 IMAG0970.jpg
-rwxr--r--     1 regan regan     1432347 Mar 16  2013 IMAG1010.jpg
-rwxr--r--     1 regan regan     1668159 Mar 16  2013 IMAG1013.jpg
-rwxr--r--     1 regan regan     1657058 Mar 16  2013 IMAG1014.jpg
-rwxr--r--     1 regan regan     1496547 Mar 16  2013 IMAG1016.jpg
-rwxr--r--     1 regan regan     1609156 Mar 16  2013 IMAG1017.jpg
-rwxr--r--     1 regan regan     1604832 Mar 16  2013 IMAG1019.jpg
-rwxr--r--     1 regan regan     2048916 Mar 16  2013 IMAG1073.jpg
-rwxr--r--     1 regan regan     2006024 Mar 16  2013 IMAG1074.jpg
-rwxr--r--     1 regan regan     1926686 Mar 16  2013 IMAG1075.jpg
-rw-r--r--     1 regan regan     1583090 Jul 14 21:15 IMAG1565.jpg
-rw-r--r--     1 regan regan     1435031 Sep 22 05:19 IMAG1762.jpg
-rw-r--r--     1 regan regan     1531602 Sep 22 05:19 IMAG1763.jpg
-rw-r--r--     1 regan regan     1450926 Sep 22 05:19 IMAG1764.jpg
-rw-r--r--     1 regan regan     1336103 Sep 23 21:31 IMAG1765.jpg
-rw-r--r--     1 regan regan     1235885 Sep 23 21:32 IMAG1766.jpg
-rw-r--r--     1 regan regan     1224376 Sep 23 21:32 IMAG1767.jpg
-rw-r--r--     1 regan regan     1235229 Sep 23 21:32 IMAG1768.jpg
drwxrwxr-x     2 regan regan        4096 Mar  9  2013 jakeanmal
-rw-rw-rw-     1 regan regan      115228 Oct 29  2009 jj_nas
drwx------.    2 root  root        16384 Nov  8  2012 lost+found
-rw-r--r--     1 regan regan  3123877728 Nov  6  2010 luridmirror_20090806.tar.xz
-rw-r--r--     1 regan regan  2877033943 Mar  1  2013 macabre_20130301.tgz
d??????????    ? ?     ?               ?            ? mail
-rw-r--r--     1 root  root         6771 Aug 10  2009 mail_mirror
-rw-------     1 regan regan 21913047552 Apr  4  2013 mallorys_hdd.vbox.img
d??????????    ? ?     ?               ?            ? MSDN
-rw-r--r--     1 regan regan        8572 May 10  2010 Music
d??????????    ? ?     ?               ?            ? New Folder (2)
drwxrwxrwx    24 regan regan        4096 Mar 22  2013 onyx
drwxr-xr-x   231 regan regan       24576 Sep 30 09:29 ptp
-rwxr--r--     1 regan regan      483328 Jan 26  2013 putty.exe
d??????????    ? ?     ?               ?            ? revolution
-rw-r--r--     1 root  root   6272757760 Oct 16  2012 root.tar
d??????????    ? ?     ?               ?            ? rsync_batch
drwxrwxr-x     2 regan regan       12288 Oct  6 04:09 saber
drwxrwxr-x     2 regan regan      188416 Sep 25 04:20 session_tmp
d??????????    ? ?     ?               ?            ? shell1
d??????????    ? ?     ?               ?            ? shell2
d??????????    ? ?     ?               ?            ? testing
drwxrwxr-x     3 regan regan        4096 Oct  7  2012 tofix
-rwxr--r--     1 regan regan    64991966 Jan  2  2013 VIDEO0041.mp4

[root@gamma mnt2]# cd ..
[root@gamma /]# umount /mnt2
[root@gamma /]# cd /mnt/rescue_snap/
[root@gamma rescue_snap]# e2fsck candybox.img 
e2fsck 1.41.10 (10-Feb-2009)
Backing up journal inode block information.

candy contains a file system with errors, check forced.
Resize inode not valid.  Recreate<y>? yes

Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Root inode not allocated.  Allocate<y>? yes

/lost+found not found.  Create<y>? yes

Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences:  -(9252--9255) <Snip a few dozen MB of text> -(3662666237--3662666238) -3662666240 -(3662666242--3662666244) -(3662666247--3662666249) -3662666253 -(3662666255--3662666256) -3662666259 -3662666262 -3662666264 -(3662666268--3662666271) -3662666276 -3662666281 -3662666285 -3662666294 -(3662666296--3662666297) -3662666301 -3662666307 -3662666309 -3662666311 -3662666313 -3662666316 -(3662666318--3662666319) -3662666324 -(3662666326--3662666328) -(3662666331--3662666332) -3662666334 -(3662666341--3662666342) -3662666344 -(3662666346--3662666347) -3662666349 -(3662666351--3662666352) -3662666354 -3662666357 -3662666362 -(3662666366--3662666367)
Fix<y>? yes

Free blocks count wrong for group #0 (23517, counted=23516).
Fix<y>? 

Free blocks count wrong (3605188902, counted=3605188901).
Fix<y>? yes

Free inodes count wrong for group #0 (8191, counted=8190).
Fix<y>? yes

Directories count wrong for group #0 (1, counted=2).
Fix<y>? yes

Free inodes count wrong (915668991, counted=915668990).
Fix<y>? yes


candy: ***** FILE SYSTEM WAS MODIFIED *****
candy: 2/915668992 files (0.0% non-contiguous), 57477467/3662666368 blocks
[root@gamma rescue_snap]# mount -o loop candybox.img /mnt2
[root@gamma rescue_snap]# ls -l /mnt2
total 4
drwx------ 2 root root 4096 Oct 27 19:33 lost+found
[root@gamma rescue_snap]# 

이제 스냅 샷에 백업 이미지가 있으므로 누군가 아이디어가 있다면 이론을 계속 시도해 볼 수 있습니다.


5
Regan, SF에 오신 것을 환영합니다! 잘 쓰여지고 적절하며 잘 연구 된 질문에 대해 축하를 드려도 될까요? 슬프게도, 나는 당신 ext에게 더 이상의 조언을 해줄 전문가가 아닙니다. 당신은 이미 시도했을 모든 것을 다했습니다. 나보다 더 많은 단서가있는 사람이 여기서 어디로 갈지에 대한 힌트를 줄 수 있기를 바랍니다.
MadHatter

어레이에서 가져온 원래 2T 드라이브는 어떻게 되었습니까? 당신은 이미 그들을 파괴 했습니까?
찰스 브리지

배열에서 제거 할 때 이미 다른 것들을 사용했습니다. 다시 성공적으로 재구성되면 2T 드라이브를 다른 것으로 사용했습니다. 현재 그들은 내 / mnt / rescue raid0의 일부로 사용되고 있습니다. 나는 그들이 그들을 복구하는 데 사용할 수 있었으므로 그들이 손대지 않았기를 바랍니다.
Regan

2
백업은 어디에 있습니까?
Michael Hampton

LUKS를 언급했습니다. 디스크에도 암호화되어 있습니까?
ewwhite

답변:


3

파일 시스템 데이터 복구를 위해 내가 선호하는 도구는 UFS Explorer 입니다.

LUKS 암호화가 어떻게 영향을 미치는지 모르겠지만 UFS 탐색기 평가를 다운로드하여 일반적인 모범 사례를 시도하십시오. 이미지에 대해 실행하고 복구 가능성이 높은 것으로 보이는지 확인하십시오. 이 도구를 사용하면 디렉토리 구조를 잘 볼 수 있고 데이터를 검색 할 수 있습니다.

참조 : "슈퍼 블록 읽기 실패"로 XFS 파일 시스템을 복구하는 방법


복구하려는 볼륨은 ext4입니다. 볼륨이 원래 18T 였고 32 비트 ext4가 실행되기를 원치 않았기 때문에 복구 볼륨에서 XFS를 사용했습니다 (표준 블록 크기의 경우 16T 제한). 나는 UFS 탐험가에게 시도를 해보고 어떤 일이 일어나는지 볼 것이다
Regan

1
UFS 탐색기는 ext2, ext3 및 ext4 시스템에서 잘 작동합니다.
ewwhite

UFS 탐색기는 볼륨을 스캔하기 위해 41 일의 에타를 원합니다. 내일 데비안 버전을 시도 할 것입니다. 어쩌면 winblows보다 더 빠를 수도 있습니다.
Regan

@Regan 당신을 위해 일했습니까?
ewwhite

리눅스 버전을 설치 한 후 ext4 파일 시스템을 전혀 볼 수 없었고 전체 볼륨을 심도있게 스캔 할 수 없었습니다. ext4 dev 메일 링리스트에 이메일을 보냈고, 원인을 좁히기위한 아이디어를 보내 왔습니다. 그들로부터 작동하는 답변을 얻으면 게시하겠습니다. -UFS가 내 친구가 가지고있는 다른 문제를 복구하는 데 도움이 될 수 있다고 생각합니다.
Regan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.