해결책: 리눅스에서 삭제 된 파일 복원
1. 배경
비상 사태, 실수로 삭제 된 중요한 데이터, 게다가 백업이 없습니다.
데이터 경로는 / data / webapps / xxxx / upload입니다.. 매우 긴급하고
리눅스 플랫폼에서 데이터 복구 경험. 하지만 내 자료를 검색 한 후
많은 시험을하다, 손실 된 파일의 대부분은 복구되었습니다.
2. yum으로 데이터 복구 도구 설치.
(1) epel 저장소 설치
yum 설치 epel -y
(2) extundelete -y 설치
extundelete -v
3. 소스 코드로 데이터 복구 도구 설치.
yum -y 설치 bzip2 e2fsprogs-devel e2fsprogs gcc-c ++ make
wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/server/extundelete-0.2.4.tar.bz2
tar jxvf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4
./구성
하다 && 설치하다
4. 실수로 삭제 된 데이터 확인
누락 된 데이터의 경로가 조금 깊기 때문에, 그래서 루트 사전에서 날짜를 찾아야합니다.
extundelete / dev / sda2 –아이 노드 2
나는 webapps의 inode를 볼 수 있습니다.,
extundelete / dev / sda2 –아이 노드 913921
이 프로젝트의 inode를 볼 수 있습니다.,
extundelete / dev / sda2 –아이 노드 913922
드디어, 누락 된 데이터 사전을 찾았습니다. “업로드”.
extundelete / dev / sda2 –아이 노드 913923
표시된 누락 된 데이터를 볼 수 있습니다. “삭제됨”,그래서 그 데이터는
회복되다.
5. 이 파티션을 사용하는 일부 프로세스 트리를 종료하고 마운트 해제
퓨저 -k /
언 마운트 /
6、자료 복구
지정된 사전을 복구 할 수 있습니다.. 현재 루트 파티션을 기반으로 경로 설정.
extundelete / dev / sda2 –복원 디렉토리 / webapps / xxxx / upload
항상 디스크에 읽기 및 쓰기가 있기 때문에, 그래서 누락에 속하는 일부 inode
데이터가 이미 할당되었습니다.,일부 데이터를 복구 할 수 없습니다.. 복구 도구
복구 할 수없는 파일을 알려주었습니다.. 하지만 대부분의 파일이 복구되었습니다.
그래서 복구 된 데이터를 확인했습니다. RECOVERED_FILES라는 폴더 하나가 생성되었습니다.
현재 사전. RECOVERED_FILES라는 이름의 복구 된 데이터.
누락 된 모든 데이터를 복구해야하는 경우 다음 명령을 실행할 수 있습니다..
extundelete / dev / sda5 –전부 복구
extundelete 옵션
옵션:
–버전, -[vV] 버전을 인쇄하고 성공적으로 종료.
–도움, 이 도움말을 인쇄하고 성공적으로 종료합니다..
–superblock 나머지에 추가하여 superblock의 내용을 인쇄합니다..
조치가 지정되지 않은 경우이 옵션이 내포됩니다..
–저널 저널 내용보기.
–dtime 이후 'dtime'이후에 삭제 된 항목 만 처리합니다..
–dtime 이전 'dtime'이전에 삭제 된 항목 만 처리합니다..
행위:
–inode ino inode‘ino’에 대한 정보 표시.
–block blk 블록 'blk'에 대한 정보 표시.
–이노 복원 이노[,이노,…]
파일 복원(에스) 알려진 inode 번호 'ino'.
복원 된 파일은 ./RECOVERED_FILES에 생성됩니다.
inode 번호를 확장으로 사용 (즉, file.12345).
–복원 파일‘경로’ 파일 '경로'를 복원합니다.. '통로’ 루트에 상대적 임
파티션의 '/'로 시작하지 않습니다.’
복원 된 파일은 현재
'RECOVERED_FILES / path'로 디렉토리.
–복원 파일‘경로’ 'path'파일에 나열된 파일을 복원합니다..
각 파일 이름은 옵션과 동일한 형식이어야합니다.
...에 –복원 파일, 한 줄에 하나씩 있어야합니다..
–복원 디렉토리‘경로’
디렉토리‘path’를 복원합니다.. '통로’ 에 상대적입니다
파일 시스템의 루트 디렉토리. 복원
디렉토리는 출력 디렉토리에 'path'로 생성됩니다..
–restore-all 모든 것을 복원하려는 시도.
-j journal 명명 된 파일에서 외부 저널을 읽습니다..
-b blocknumber 열 때 blocknumber의 백업 수퍼 블록을 사용합니다.
파일 시스템.
-B blocksize 파일을 열 때 blocksize를 블록 크기로 사용합니다.
체계. 숫자는 바이트 수 여야합니다..
–로그 0 프로그램을 무음으로 만들기.
–log filename 모든 메시지를 filename에 기록합니다..
–log D1 = 0, D2 = filename 쉼표로 구분 된 로그 메시지의 사용자 지정 제어
아래 예: 옵션 목록. Dn은 정보 중 하나 여야합니다., 경고, 또는
–로그 정보,오류 오류. ‘= 이름 생략’ 결과 메시지
–콘솔에 기록 할 지정된 수준으로 log warn = 0.
–log error = filename 매개 변수가‘= 0’인 경우, 지정된에 대한 로깅
레벨이 꺼집니다. 매개 변수가
‘= 파일 이름’, 해당 수준의 메시지는 파일 이름에 기록됩니다..
-o 디렉터리 복구 된 파일을 명명 된 디렉터리에 저장합니다..
복원 된 파일은 디렉토리에 생성됩니다.
이름이‘RECOVERED_FILES /’ 기본적으로.
첫 번째는 데이터가 삭제 된 후 삭제 된 데이터가있는 디스크 또는 파티션을 마운트 해제하는 것입니다..
이유: 루트 파티션이 삭제 된 경우, 단일 사용자 모드로 들어가야합니다, 그리고 이것을 마운트
읽기 전용 모드의 파티션. 시스템은 fle의 inode의 포인터를 삭제하기 때문에, 디스크에있는 실제 파일.
삭제 된 데이터 블록은 디스크가 읽기-쓰기 모드로 마운트 된 경우 파일 시스템에 의해 재 할당됩니다., 그리고
데이터 블록이 적용되면 데이터가 실제로 손실됩니다..