삭제 된 파일을 복구 / 삭제 취소하는 명령이 rm
있습니까?
$ rm -rf /path/to/myfile
어떻게 복구 할 수 myfile
있습니까? 그러한 도구가 있다면 어떻게 사용할 수 있습니까?
답변
댓글에 제공된 사람의 링크가 가장 가능성이 높습니다.
약간의 협박으로 보이지만 그 글은 실제로 매우 간단합니다. 일반적으로 단계는 다음과 같습니다.
-
파일 시스템 로그를 보려면 debugfs를 사용하십시오.
$ debugfs -w /dev/mapper/wks01-root
-
debugfs 프롬프트에서
debugfs: lsdel
-
샘플 출력
Inode Owner Mode Size Blocks Time deleted 23601299 0 120777 3 1/ 1 Tue Mar 13 16:17:30 2012 7536655 0 120777 3 1/ 1 Tue May 1 06:21:22 2012 2 deleted inodes found.
-
debugfs에서 명령을 실행하십시오.
debugfs: logdump -i <7536655>
-
파일 inode 결정
... ... .... output truncated Fast_link_dest: bin Blocks: (0+1): 7235938 FS block 7536642 logged at sequence 38402086, journal block 26711 (inode block for inode 7536655): Inode: 7536655 Type: symlink Mode: 0777 Flags: 0x0 Generation: 3532221116 User: 0 Group: 0 Size: 3 File ACL: 0 Directory ACL: 0 Links: 0 Blockcount: 0 Fragment: Address: 0 Number: 0 Size: 0 ctime: 0x4f9fc732 -- Tue May 1 06:21:22 2012 atime: 0x4f9fc730 -- Tue May 1 06:21:20 2012 mtime: 0x4f9fc72f -- Tue May 1 06:21:19 2012 dtime: 0x4f9fc732 -- Tue May 1 06:21:22 2012 Fast_link_dest: bin Blocks: (0+1): 7235938 No magic number at block 28053: end of journal.
-
위의 inode 정보로 다음 명령을 실행하십시오.
# dd if=/dev/mapper/wks01-root of=recovered.file.001 bs=4096 count=1 skip=7235938 # file recovered.file.001 file: ASCII text, with very long lines
파일이에 복구되었습니다 recovered.file.001
.
다른 옵션
위의 방법이 아닌 경우 photorec
과거에 파일을 복구 하는 등의 도구를 사용 했지만 이미지 파일에만 적합합니다. 나는이 기사에서 내 블로그 에이 방법에 대해 광범위하게 썼다 :
어떻게 페도라 / CentOS는 / RHEL에 디지털 카메라의 SDD 카드에서 손상된 JPEG 및 MOV 파일을 복구하는 방법 .
답변
약간의 기회로 때로는이 스크립트 또는 다음 솔루션으로 삭제 된 파일을 복구 할 수 있습니다.
#!/bin/bash
if [[ ! $1 ]]; then
echo -e "Usage:\n\n\t$0 'file name'"
exit 1
fi
f=$(ls 2>/dev/null -l /proc/*/fd/* | fgrep "$1 (deleted" | awk '{print $9}')
if [[ $f ]]; then
echo "fd $f found..."
cp -v "$f" "$1"
else
echo >&2 "No fd found..."
exit 2
fi
삭제 된 파일의 패턴을 알고있는 경우 alt+ sys+ resuo를 입력 하여 읽기 전용으로 재부팅하고 다시 마운트 한 다음 live-cd를 사용 grep
하여 하드 드라이브에서 검색 하는 또 다른 유용한 트릭 이 있습니다.
grep -a -C 500 'known pattern' /dev/sda | tee /tmp/recover
그런 다음 /tmp/recover
파일의 내용 만 유지하도록 편집 하십시오.
유닉스 철학으로 모든 것이 파일이라면, 이것을 활용할 시간이다.
답변
나를 위해 일한 것은 아치 로 제공되었습니다 (텍스트 파일에만 적용).
grep -a -C 200 -F 'Unique string in text file' /dev/sdXN
/dev/sdXN
손실 된 파일이 들어있는 파티션은 어디에 있습니까 ( mount
확실하지 않은지 확인하십시오 ).
시간이 조금 걸리지 만 실수로 아직 커밋하지 않은 소스 코드를 삭제했을 때 작동했습니다!
답변
이 질문이 해결되고 몇 년이되었지만 testdisk 유틸리티 에 대해 언급하고 싶습니다 .
testdisk로 파일을 복구하는 방법은 이 튜토리얼 에서 잘 설명되어 있습니다 . 파일을 복구하려면 testdisk /dev/sdX
파티션 테이블 유형을 실행 하고 선택하십시오. 이 후, 선택 [ Advanced ] Filesystem Utils
후 파티션을 선택하고 선택 [Undelete]
. 이제 삭제 된 파일을 찾아서 선택하여 파일 시스템의 다른 위치로 복사 할 수 있습니다.
답변
지난주에 같은 문제가 있었고 debugfs, photorec, ext3grep 및 extundelete와 같은 많은 프로그램을 시도했습니다. ext3grep는 파일을 복구하는 가장 좋은 프로그램이었습니다. 구문은 매우 쉽습니다.
ext3grep image.img --restore-all
또는:
ext3grep /dev/sda3 --restore-all --after date -d '2015-01-01 00:00:00' '+%s' --before `date -d ‘2015-01-02 00:00:00’ ‘+%s’
이 비디오 는 당신을 도울 수있는 미니 튜토리얼입니다.
답변
다른 방법 으로 삭제 하는 del
대신 사용할 수 있습니다 rm
.
http://fex.belwue.de/fstools/del.html
del
삭제 취소 기능이 있으며 모든 파일 시스템에서 작동합니다.
물론 “포로 수용하지 않음”rm :-}으로 파일을 이미 삭제 한 경우에는 해결책이 아닙니다.
답변
외부 인터페이스를 통해 드라이브 연결
- 산
umount /dev/{sd*}
extundelete --restore-all /dev/{sd*}
- 결과는 부팅 드라이브의 홈 폴더로 이동
- 보너스 포인트 : 이것에 대한 GUI 작성
자세한 내용은이 링크를 참조하십시오 : extundelete를 사용하여 ext4에서 방금 삭제 한 파일의 삭제를 취소하십시오 .