손상된 파일 시스템 구조 ext4

손상된 파일 시스템 구조 ext4

내 데비안 서버의 ext4 파티션이 손상되었습니다. 서버의 가동 시간은 약 1700일이었습니다. 안타깝게도 UPS에는 하루 종일 정전을 견딜 수 있는 배터리가 충분하지 않았습니다.

나는 거기에서 데비안 sid를 실행하고 있었고 (너무 멍청해서) systemd가 등장할 무렵 apt-get dist-upgrade를 중단했습니다. (더 바보같아)

정전 후 시스템 비상 모드로 부팅했는데 드라이브를 전혀 마운트할 수 없었습니다. (/dev/sdb1을 찾을 수 없습니다). 문제가 해결되는지 확인하기 위해 apt-get dist-upgrade를 시도했지만 잠시 후 실패하고 재부팅 후 systemd가 실패했기 때문에 더 이상 로그인할 수 없었습니다. 잠시 후 부팅 메뉴에서 sysvinit를 발견하고 Linux로 부팅할 수 있었습니다. (이걸 먼저 했어야 했는데! ㅋㅋㅋ)

손상된 파티션은 750GB 하드 드라이브에 있으며 /home에 사용됩니다. 사용된 공간은 약 100GB여야 하는데 968MB로 보고됩니다.

어떻게든 /(/dev/sda1)의 루트 디렉토리 구조가 /home(/dev/sdc1)으로 복사되었습니다. ???

root@server:/home# ls -lah
ls: cannot access 'run': Input/output error
ls: cannot access 'sys': Input/output error
ls: cannot access 'etc': Input/output error
total 92K
drwxr-xr-x 23 root    root    4.0K Jan 14  2013 .
drwxr-xr-x 23 root    root    4.0K Feb 11 14:23 ..
drwxr-xr-x  2 user2   user2   4.0K Nov  2  2010 bin
drwxr-xr-x  2 user1   user1   4.0K Feb  3  2013 boot
drwxrwxr-x  3 user2   user2   4.0K Aug 19  2005 dev
d?????????  ? ?       ?          ?            ? etc
drwxr-xr-x  2 user1   user1   4.0K Jan 15  2013 home
lrwxrwxrwx  1 root    root      30 Jan  3  2013 initrd.img -> /boot/initrd.img-3.2.0-4-amd64
drwxr-xr-x 14 root    root    4.0K Jan  9  2013 lib
drwxr-xr-x  2 root    root    4.0K Jan  3  2013 lib64
drwx------  2 root    root     16K Jan  3  2013 lost+found
drwxr-xr-x  2 user1   user1   4.0K May 31  2010 media
drwxr-xr-x  6 user1   user1   4.0K Jan 15  2013 mnt
drwxr-xr-x  2 user1   user1   4.0K Feb  5  2006 opt
drwxr-xr-x  2 user1   user1   4.0K Feb  3  2013 proc
drwxr-xr-x  2 user1   user1   4.0K Feb  3  2013 root
d?????????  ? ?       ?          ?            ? run
drwxr-xr-x  4 user3   user3   4.0K Mar 26  2013 sbin
drwxr-xr-x  2 user1   user1   4.0K Jan 15  2013 selinux
drwxr-xr-x  2 user1   user1   4.0K Feb  3  2013 srv
d?????????  ? ?       ?          ?            ? sys
drwxr-xr-x  3 user4   user4   4.0K Nov 27 23:05 tmp
drwx------  2 user5   user5   4.0K Aug 17  2009 usr
drwx--x--x 13 user2   user2   4.0K Jan 12  2012 var
lrwxrwxrwx  1 root    root      26 Jan  3  2013 vmlinuz -> boot/vmlinuz-3.2.0-4-amd64

(사용자 이름이 변경되었습니다)

이는 /(/dev/sda1)과 동일해 보입니다.

하지만 이러한 폴더의 파일은 원래 위치에 있어서는 안 되지만 읽을 수는 있습니다. 예를 들어, "opt" 안에는 내 사용자 디렉토리 어딘가에 있는 jpeg가 있습니다. "var" 안에는 한 사용자의 파일과 폴더가 거의 그대로 있고 올바른 디렉터리 구조와 파일 이름이 있지만 적어도 한 곳에서 파일이 누락되어 있습니다.

파티션의 dd 복사본을 다른 하드 드라이브에 만들고 fscking을 시도했는데, 이로 인해 많은 문제가 분명히 "수정"되었지만 더 이상 마운트할 수 없었습니다. "잘못된 파일 시스템 유형, 잘못된 옵션, /dev/sdc1의 슈퍼블록 오류, 코드 페이지 또는 도우미 누락 또는 기타 오류."

어떻게 이런 일이 일어났는지, 어떻게 해결해야 할지 전혀 모르겠고, 그럴 가능성에 대해서도 큰 기대를 하지 않습니다. 이것은 내가 리눅스에서 본 것 중 가장 이상한 일이며 어떻게 그런 일이 일어났는지 가장 알고 싶습니다. 내 모든 파일을 복구할 수 있다면 정말 행복할 것 같아요!

나는 PhotoRec에 대해 알고 있으며 원래 디렉터리 구조를 복구할 수 없는 경우 이를 사용할 계획입니다.

답변1

dd먼저, 백업으로 gddrescue이나 다른 이미징 유틸리티(작동할 수도 있음)를 사용하여 파티션의 복사본을 만듭니다 cp.

이것이v3.22013 커널인 경우 최신 배포/커널에서 재부팅한 다음 fsck영향을 받는 파티션에서 최신 버전을 실행해 보세요. 최신 배포판용 파일 유틸리티는 다음과 같습니다.5년간의 버그 수정 및 개선, 이것이 도움이 될 수 있습니다.

관련 정보