질문
갑자기 모든 파일이 다음에서 나옵니다.2015년 2월도착하다2016년 11월가지다사라졌다파일 시스템에서.
문맥
- 지난 2년 동안 정전이나 USB 하드웨어 연결 끊김으로 인해 시스템이 여러 차례 갑자기 종료되었습니다.
- 이 손실은 불량 블록이나 그와 유사한 것으로 인한 것이 아닌 것 같습니다. 소프트웨어 관련 내용이 더 많은 것 같습니다.
vmdk
이 디스크는 VirtualBox Ubuntu에 연결된 USB 하드웨어 기반 RAID-5의 플랫 전체 크기 파일입니다.- RAID 및 VirtualBox를 사용하는 호스트는 Windows입니다.
- Windows의 RAID는 NTFS이고 VirtualBox는 Ubuntu를 실행하고 ext4 형식 vmdk에 액세스합니다. Windows는 여러 개의 가상 머신을 포함하는 것 이외의 다른 기능을 수행하지 않으며 가상 머신을 시작하거나 중지하는 것 외에는 사용자가 해당 Windows에 들어가지 않습니다.
상태
나는 매일 이 디스크(Ubuntu의)를 많이 사용합니다. 그리고 전날, 지난주, 지난 달 등의 파일을 매일 성공적으로 사용하고 있습니다...재부팅 후에도...그래서 데이터가 거기에 있어야 합니다.
그런데 갑자기... 내 Dropbox가 파일을 삭제하기 시작했고 무슨 일이 일어나고 있는지 보러 갔는데 문제는... 이것이 "즉시" 발생했는지 아니면 재부팅 후에 발생한 것인지 알 수 없었습니다.
하지만 문제는... 제가 볼 수 있는 최신 파일은 2015년 1월의 파일이며 2016년 11월까지 매일 이 디스크를 성공적으로 사용했습니다. 파일이 블록에 있을 수 있으며 어떤 이유로 인해 모든 색인이 손실되었습니다.
ext4
어떤 이유에서든 i-node 테이블의 백업 복사본이 저장되거나 이와 유사한 것이 발생했으며 어떤 이유로 Linux가 매핑을 이전 매핑으로 "되돌리기"로 결정했다고 쉽게 상상할 수 있습니다 .
도구가 많이 있는 것 같아요. fsck 실행부터 extundelete까지.
내가 보는 것
행위:
find . -newermt 20150201
결과가 전혀 없습니다.
또한,
- 내가 알고 있는 파일의 경우
cd
해당 디렉터리로 이동했지만 거기에 있는 파일을 볼 수 없습니다. - 내가 알고 있는 디렉토리 구조가 삭제된 것을 볼 수 있습니다.
- 이는 가상 머신에 여러 디스크가 연결된 경우 발생했습니다.
ext4 또는 NTFS?
Windows에서 가상 디스크가 포함된 RAID를 제거 vmdk
하고 Linux에서 읽기 전용으로 마운트했습니다.
내가 볼 수 있는 파일을 나열하면 다음과 같습니다.
root@vagrant:/mnt/raid5/mnt# ls -la
total 1572864014
drwxrwxrwx 1 root root 4096 Jan 29 2015 .
drwxrwxrwx 1 root root 4096 Oct 31 21:14 ..
-rwxrwxrwx 2 root root 268435456000 Jan 26 2015 LinuxData250G_A-flat.vmdk
-rwxrwxrwx 2 root root 651 Jan 26 2015 LinuxData250G_A.vmdk
-rwxrwxrwx 2 root root 268435456000 Jan 26 2015 LinuxData250G_B-flat.vmdk
-rwxrwxrwx 2 root root 558 Jan 26 2015 LinuxData250G_B.vmdk
-rwxrwxrwx 2 root root 536870912000 Jan 26 2015 LinuxData500G_A-flat_3.vmdk
-rwxrwxrwx 2 root root 536870912000 Jan 26 2015 LinuxData500G_A-flat.vmdk
-rwxrwxrwx 2 root root 559 Jan 26 2015 LinuxData500G_A.vmdk
문제의 디스크는 LinuxDataXXXG_Y-Flat.vmdk입니다.
놀랍게도...이 모든 항목의 수정 날짜는 2015년 1월 26일입니다...디스크 내용이 손실되기 직전...2015년 2월부터 파일은 볼 수 없지만 2015년 1월을 봤습니다. 문서.
Linux 내부의 EXT4 문제가 아니라 NTFS 자체의 문제인지 궁금합니다. VirtualBox 하위 수준 드라이버가 호스트 파일의 시간 또는 "생성" 시간을 업데이트하는지 알 수 없습니다.
RAID에는 vmdk의 전체 복사본을 저장할 공간이 없으므로 손실된 데이터가 어떻게든 존재해야 합니다.
이미지 사본 처리
원본 버전의 "이미지"를 만들고 vmdk
전체 RAID를 제거했기 때문에 복사본이 약간 "파괴적"일 수 있습니다.
문제는 전체 백업 이미지를 복사하는 데 20시간이 걸리기 때문에 시행착오를 농담으로 삼고 싶지 않고 올바른 도구를 올바른 순서로 사용하고 싶다는 것이다.
진행 중 오류가 발생하면 1일이 지연됩니다.
질문
데이터가 거기에 있어야 한다고 가정하면... ext4로 시작한다고 가정하면 i-node 테이블을 사용할 수 있습니다...
- Q1) i-node 매핑을 복원하거나 처음부터 새 i-node 테이블을 다시 생성하려면 어떤 도구 세트가 필요합니까?
- Q2) 구체적으로 어떤 것이 있나요?주문하다이러한 도구를 실행해야 합니까? 내 말은, fsck를 실행하면 extundelete가 중단되거나 그 반대의 경우가 발생할 수 있다는 것입니다.
- Q3) i-node 테이블은 이를 위해 예약된 특수 파티션 영역에 수시로 백업됩니까? 어디? "마지막 날"이 아니라면 적어도 2016년 11월 중순쯤에 테이블의 백업을 찾을 수 있을 만큼 운이 좋을까요?
어쩌면 제가 질문을 잘못한 것일지도 모르겠습니다...
따라서 모든 문제를 해결하는 하나의 링크: Q) 손실된 파일을 복구하는 방법은 무엇입니까?
답변1
USB가 백업을 푸시할 수는 있지만(실제로 여전히 매우 느림) USB를 통한 RAID나 USB를 통한 TCP-NETWORK는 (아직) 안정적이고 빠르지 않다는 것이 합의된 의견입니다.
- 문제가 있는 파일 시스템을 망가뜨리기 전에 백업하십시오(리소스가 있는 경우(추가 외부 디스크 또는 충분한 크기의 NAS))
- 하나에 백업하면 사용자는 모든 도구를 안전하게 실행할 수 있습니다
- 예, fsck로 시작해 보세요.
fsck -y -v -f /dev/sdX
- 또한 부팅 시(운영 체제가 시작되기 전) 자동으로 검사되도록 파티션을 설정하는 것이 좋습니다
tune2fs -C 2 -c 1 /dev/sdX1
(ext3 및 ext4에만 해당). apt install testdisk
->photorec /dev/sdx
-> NTFS 및 ext4 파일 내용을 다시 가져오지만 /directory/struct/and/filename.jpg는 가져오지 않습니다. :(
행운을 빌어요:)