실수로 삭제 한 파일 복구


79

실수로 랩톱에서 파일을 삭제했습니다. Fedora를 사용하고 있습니다. 파일을 복구 할 수 있습니까?


9
파일 시스템은 무엇입니까?
echox

답변:


94

유틸리티를 즉시 설치하지 않는 것이 좋습니다. 기본적으로 가장 큰 적은 디스크 쓰기입니다. 지금은 모든 비용을 피하려고합니다.

가장 좋은 방법은 편집기에서 만든 자동 백업입니다 (있는 경우). 그렇지 않은 경우 .tex 파일에 고유 한 문자열이 기억되면 grep을 사용하여 다음 트릭을 시도하십시오.

$sudo grep -i -a -B100 -A100 'string' /dev/sda1 > file.txt

교체 /dev/sda1파일이있었습니다 대체 장치로 'string'파일에 고유 문자열. 시간이 좀 걸릴 수 있습니다. 그러나 기본적으로 이것이하는 일은 장치에서 문자열을 검색 한 다음 그 줄 앞뒤에 100 줄을 반환하고 넣는 것입니다 file.txt. 더 많은 행을 반환해야하는 경우 -B-A옵션을 적절히 조정하십시오 . 여분의 가비지가 반환 될 수 있지만 텍스트를 다시 가져올 수 있어야합니다.

행운을 빕니다.


8
리눅스로 전환 한 지 몇 주 후에 누군가가 나에게 이것을 보여줬다. 내가 정말로 필요한 텍스트 문서를 죽였을 때-그것은 내 마음을 날려 버렸다
Michael Mrozek

18
그건 그렇고, -B100 -A100동등한 것으로 대체 될 수 있습니다 -C100( "문맥"의 경우 C). 그리고 -i가능하다면 사용하지 않을 것이지만 -F그 자리에 있습니다.
rozcietrzewiacz

아마 놀랍지 않게도-동일한 디스크 블록이 재사용되었다고 가정합니다. 실수로 덮어 쓰지 않고 실수로 삭제하지 않은 파일에는이 방법이 작동하지 않았습니다.
ntc2

예, 대부분의 파일 시스템에서 파일을 덮어 쓰면 동일한 블록이 재사용됩니다. 일부 응용 프로그램은 임시 파일을 먼저 작성한 다음 (별도의 쓰기 작업을 수행 한 후) 이전 파일 위에 해당 파일 이름을 바꾸어 (사용자 관점의 데이터를 대체 함) 의미에서 "이 문제를 해결"합니다. 이것은 여러 가지 이유로 수행됩니다. 이 작업을 항상 수행하는 스토리지 시스템 (파일 시스템 포함) 은 쓰기시 복사 라고 합니다.
CVn

/ dev / sda1이 필요하십니까? 파일이 있던 디렉터로 가서 / dev / sda1없이 실행할 수 있습니까?
coolcool1994

22

가능하면 번거로울 것입니다.

업데이트 : 이 방법을 시도하기 전에 Steven의 답변을 살펴보십시오 .

당신이 필요 해요 TestDisk는의 패키지, 많은 디스크 공간많은 시간을.

TestDisk의 일부인 PhotoRec는 거의 모든 디스크에서 파일을 복구 할 수 있습니다. PhotoRec은 파일 찾기를 지원.tex 합니다.


먼저 다음 을 실행 하여 testdisk 를 설치하십시오.

yum install testdisk

참고 : 복구 된 파일을 저장할 수있는 다른 드라이브에 많은 여유 공간이 필요합니다.

디스크 photorec의 여유 공간에서 실행하여 디스크에서 삭제 된 파일을 모두 복구하십시오 .

sudo photorec

그리고 지침을 따르십시오 ... (복구중인 동일한 디스크에 파일을 저장하지 마십시오)

프로세스가 완료된 후 복구 된 모든 파일은 하나의 디렉토리에 있어야하며 여기서 다음을 실행해야합니다.

find -name '*.tex' > filelist

이 출력됩니다 파일의 목록이 있습니다 당신이 잃은 하나. 파일 이름이 손실되므로 모두 확인해야합니다.


11
photorec는 좋은 유틸리티입니다. 설치 중에 발생할 디스크 쓰기에 대해 걱정할 것입니다. 외부 미디어에서 실행할 수있는 독립 실행 형 실행 파일로 사용할 수 있습니까?
Steven D

1
예, 당신은 매우 옳습니다. 독립 실행 형 실행 파일에 대해 잘 모르지만 live-cd를 사용해 볼 수 있습니까?
Stefan

2
Photorec으로 복구 된 파일을 줄이려면 세 번째 화면에 [파일 선택]이 표시됩니다. 목록에서 복구하거나 원하지 않는 파일 형식을 선택할 수 있습니다.
Steve Burdine

13

많은 텍스트 편집기가 백업 파일을 유지합니다. 운이 좋으면 이전 파일 버전을 포함하여 yourfile.tex ~와 같은 것이있을 수 있습니다.



4

어쨌든 디스크 쓰기를 피하고 Live-CD 인 SystemRescueCd 와 같은 전용 복구 OS로 부팅 하여 디스크를 읽기 전용으로 마운트 할 수 있도록 가능한 빨리 장치 사용을 중단 합니다. 추가 데이터 손실을 방지하기 위해.

이러한 배포판에는 다른 사람이 언급 한 많은 복구 도구가 포함되어 있으며 대부분의 누락 된 도구를 설치할 수 있습니다.

필자의 경우를 대비하여 항상 외부 USB 리더에 최신 버전의 SystemRescueCd가있는 CD를 사용하는 경향이 있습니다.


3

참고 : 삭제 되어이 데이터베이스 파일을 가리키는 삭제 된 데이터베이스 파일 (MySQL 서버)에 대한 다른 질문과 관련 하여이 답변을 추가했습니다. 나는 그것이 다른 유사한 상황에서도 유용 할 수 있다고 생각합니다 (일부 프로세스가 여전히 파일 설명자를 열어 놓는 한).

프로세스가 여전히 실행중인 경우 파일을 찾아 /proc/<pid>fd/복사하면됩니다. SIGSTOP먼저 프로세스 그룹으로 보냅니다 . 파일을 복사하십시오. 새 인스턴스를 작성하고이 인스턴스를 중지하거나 kill -9파일을 원래 위치에 다시 둡니다. InnoDB는 실행될 때 자체적으로 복구되지만 MyISAM이있는 경우 수동으로 수행해야합니다.


2

실수로 sqlite db 파일을 삭제했습니다.

내가 파일을 찾으려고 한 것은

/proc/파일 브라우저에서 위치 를 열고 삭제 된 sqlite db 파일을 검색했습니다.

검색 결과에서 해당 파일을 찾았습니다. 저 파일을 저의 오래된 장소로 복사했습니다.


0

나는 2 년 전에 같은 문제가 있었고 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’

비디오 는 당신을 도울 수있는 미니 튜토리얼입니다.


0

백업이없는 경우 타사 디스크 복구 도구가 일부 또는 모든 데이터를 복구 할 수 있지만 지금 컴퓨터 사용을 중지해야합니다. 휴지통 파일은 이제 시스템에서 덮어 쓸 수 있습니다. 덮어 쓰면 데이터를 복구하는 데 엄청나게 많은 비용이 듭니다. uflysoft 데이터 복구 (다른 Mac OS 데이터 복구 응용 프로그램이 있음)를 사용하여 성공했습니다. 복구 된 데이터를 저장할 "주 드라이브 또는 청소 드라이브가 아닌"복구 드라이브 "가 있어야합니다. 데이터 복구 디스크 (시스템)에서 부팅

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.