어허

[linux] rm 으로 지운 파일 복구. (실패) 본문

개발/Linux

[linux] rm 으로 지운 파일 복구. (실패)

AKDK 2015. 10. 5. 19:38
728x90



중요한 파일 하나를 실수로 rm 으로 지워버렸다.

git에도 안올린 업체 특화된 코드였고, 서버에 백업본도 예전거라 복구를 꼭 해야했다.


구글링

재빠르게 구글링을 시도한 결과


debugfs


extundelete


라는 두가지 방법을 이용해서 복구가 가능하다는 것을 알았다.


extundelete

df -k

명령어를 이용해서 해당 하드디스크가 /dev/sda5 인것을 확인하고 ext4 파일시스템으로 마운트 된것을 확인


sudo extundelete --restore-file [파일의 절대경로] /dev/sda5

여기서 주의할 점은


[파일의 절대경로]를 작성할때 루트디렉토리 아래 home 디렉토리는 생략해야 한다는 것이다.


만약 /home/alaveiw/projects/pro_1/test.c 파일을 복구하고싶다면


sudo extundelete --restore-file alaveiw/projects/pro_1/test.c /dev/sda5

이와 같은 식으로 써야한다.


이것때문에 한참 고생했네..


아무튼 열심히 시도는 했으나 실패....


sudo extundelete --restore-all /dev/sda5

를 해서 전체 복구를 시도했으나

다른 계정의 삭제된 파일 몇개만 RESTORE_FILE 폴더에 생겼고 많은 파일들은 복구되지 않았다.


debugfs

debugfs 를 -w 옵션을 줘서 쓰기 가능 모드로 들어간다

그뒤 해당 폴더로 이동한다. (이때 절대경로는 위에서 설명한 것과 마찬가지로 /home/는 생략하고 입력

ls -d로 그동안 삭제된 파일목록을 보자

sudo debugfs -w /dev/sda5

debugfs 1.42 (29-Nov-2011)

debugfs:  cd alaveiw/projects/pro_v1/source/user/app

debugfs:  ls -d


아래와 같이 삭제된 파일들이 잔뜩 나온다.

하지만 내가 복구하고자 하는 파일은 나오지 않는다 .

망했다

<6812032> (1956) .purifier.c.back.swx   <6812021> (1908) humidifier.h

<6794320> (1884) purifier.c.back.swp

<6812000> (1852) .purifier.c.back.swx

(END)


일단 삭제리스트애 있는 파일 하나를 복구해보자


 debugfs:  undel 6812021 hns_humidifier.h

6812021: File not found by ext2_lookup

안된다.



결론


이런식으로 복구한 사람들도 상당수 있는것 같고

extundelete 명령어를 이용해서 다른사람 계정의 삭제된 파일 복구는 되었는데

정작 내가 필요한 파일은 복구가 되지 않았다.


여러사람이 쓰는 서버이다보니

삭제하고 복구를 시도하는 동안 파일시스템에 이미 다른 파일이 써져버렸을 수도 있지만


삭제된 리스트에도 안뜨는건 뭔가 잘못된것 같다




"백업은 메일 합시다."





728x90
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
공유하기 링크
Comments