4,549,883 th visitor since 2017.2.1 ( Today : 6275 )
Computer ???
No. 69
Name. swindler
Subject. rm으로 지운 파일 복구
Main Cate. Linux
Sub Cate.
Date. 2005-07-07 15:52
Hit. 5093 (210.124.73.182)
File.
rm 으로 지운 파일이나 파일 시스템을 다시 살리기 위한 프로그램은 여러가지 있지만

그 중에서 개개의 파일들을 가장 간편하게 복구할 수 있는 프로그램으로 unrm이 있다.



다운로드

직접받기 http://freshmeat.net/redir/unrm/10963/url_tgz/unrm-0.92.tar.gz

와우에서 받기



설치

파일이 스크립트로 되어 있어서 파일을 풀고 바로 사용이 가능하다.

# tar xvzf unrm-0.92.tar.gz




설정

특별한 설정은 필요 없지만 시스템에 따라 mount 명령어의 위치가 다를 수 있으므로,
다음과 같이 압축이 풀린 디렉토리의 unrm 파일의 MOUNT 설정 부분을 고쳐 준다. (mount의 위치를 먼저 알아본 후에 설정해 주면 된다.)

변경 전 : MOUNT='/sbin/mount'

변경 후 : MOUNT='/bin/mount'





사용전 알아야 할 점

이 프로그램은 root 권한으로 작업하는 것이므로 상당한 주의를 요한다.
그러므로, 지적해 주는 주의사항들을 꼭 지켜야 한다. 그렇지 않다면 시스템을 다시 설치해야 할 지도 모른다.

1. 프로그램 사용 전에 하드디스크에 데이터를 쓰는 모든 프로세스를 종료한다.

- syslog, sendmail 등의 모든 프로세스를 죽인다.

2. / 파티션이 아니라면 복구 파티션을 읽기 전용으로 다시 마운트한 후에 프로그램을 작동한다.

3. 가능하다면 해당 프로그램은 복구 대비용 파티션을 만들어서 이곳에서 실행하도록 한다.

- 이에 대해서는 아래에 설명한다.

4. 복구 대비용 파티션에서의 작업이 아니라면 되도록이면 프로그램 사용을 자제한다.



사용

그냥 명령만 내리면 간략한 설명이 나온다. u 옵션은 특정 파일 소유권자의 파일만 복구하는 것이고, s 옵션은 파일 안에 특정한 문자열이 있는 것만 복구하도록 하는 것이다.

# ./unrm

unrm v0.92

Usage: unrm [partition] [-u file_owner] [-s string]

Options

-u <the owner of the erased file>

-s <a string that may have occured in your file>


더 자세한 사항은 FAQ 를 참고하면 된다.



복구를 시작하기 전에 우선 모든 불필요하고 위험한 프로세스를 없애기 위해서 다음과 같이 레벨 1 로 전환한다.

# init 1


이런 후에 불필요한 프로세스가 남아 있는지 다음 명령으로 확인하고, 시스템의 운영과 무관한(즉, 부팅한 후에 실행한 - 예, rp-pppoe) 프로세스를 죽인다.

# ps -aux


그리고, 복구할 파티션을 읽기 전용으로 다시 마운트 한다.

# mount -t ext2 -o ro,remount /dev/[복구 파티션] [복구 파티션의 마운트 포인트]


이제 프로그램 디렉토리로 이동하여 다음과 같이 명령을 내려서 복구하면 된다.

# ./unrm /dev/hdb4

unrm v0.92

Looking for debugfs...found!

Checking device /dev/hdb4...ok!

Searching for lost data...done!

Removing previous data...done!

Dumping data into files...done!

Recovery completed!


그러면 프로그램의 하부 디랙토리인 unrm.recovered/ 아래에 파일들이 복원된다.

90% 이상이 복원이 되며 주의할 것은 삭제 후 다른 작업을 하지 말고 아는 즉시 바로 복원 작업을 하라는 것이다. 이것은 inode를 찾아서 파일을 복원하는 것이기 때문에 inode의 정보가 변경되면 복구가 불가능하다.

[root@cyberlaw unrm-0.92]# cd unrm.recovered/

[root@cyberlaw unrm.recovered]# ls

unrm.105 unrm.111 unrm.161 unrm.168 unrm.174 unrm.179 unrm.77

unrm.106 unrm.115 unrm.162 unrm.169 unrm.175 unrm.181 unrm.99

unrm.107 unrm.116 unrm.164 unrm.170 unrm.176 unrm.182

unrm.109 unrm.117 unrm.166 unrm.171 unrm.177 unrm.183

unrm.110 unrm.123 unrm.167 unrm.173 unrm.178 unrm.44698


복원된 파일들은 각각의 확장자로 inode 번호가 붙는다.

그러므로, 추측에 의해 찾는 파일을 알아볼 수 밖에 없다.

필자가 복원한 파일들은 확인이 가능한 이름으로 바꾸고 확인해 보면 된다. 이것은 이미지

파일들이므로 이미지 파일 이름으로 확장자를 바꾸어 주면 이미지 뷰어로 볼 수 있다.

[root@cyberlaw unrm.recovered]# mv unrm.105 unrm.105.jpg

[root@cyberlaw unrm.recovered]# mv unrm.106 unrm.106.jpg

[root@cyberlaw unrm.recovered]# mv unrm.107 unrm.107.jpg

[root@cyberlaw unrm.recovered]# mv unrm.111 unrm.111.jpg

[root@cyberlaw unrm.recovered]# mv unrm.110 unrm.110.jpg

[root@cyberlaw unrm.recovered]# mv unrm.115 unrm.115.jpg

[root@cyberlaw unrm.recovered]# mv unrm.115 unrm.115.jpg








■ 복구용 파티션을 만들었을 때의 사용법

먼저 앞서와 같이 레벨 1으로 런레벨을 바꾼다.

# init 1




다음과 같이 각각의 파티션을 읽기 전용으로 바꾼다.

# mount -t ext2 -o ro,remount /dev/[/ 파티션] /

# mount -t ext2 -o ro,remount /dev/[복구 파티션] [복구 파티션의 마운트 포인트]

# cd [복구용 파티션 마운트 포인트]/unrm


그리고, 명령을 내린다.



마치며

지금까지 unrm에 대해서 알아 보았다.

이것과 관련하여 하나의 파티션을 모두 지웠을 때 해당 파티션을 복원할 수 있게 해주는 툴로 다음의 것들이 있다.

■ lde http://freshmeat.net/projects/lde/
■ recover http://recover.sourceforge.net/linux/recover/

참고로 이렇게 복원하는 것을 불가능 하도록 완전히 지워주는 툴로 wipe라는 것이 있다.
보안상 하드디스크 드라이브를 버리거나 타인에게 양도할 때는 이 툴을 쓰도록 한다.

■ wipe http://wipe.sourceforge.net/

[바로가기 링크] : http://coolx.net/cboard/computer/69



Name
Password
Comment
Copyright © 1999-2017, swindler. All rights reserved. 367,611 visitor ( 1999.1.8-2004.5.26 ), 2,405,771 ( -2017.01.31)

  2HLAB   2HLAB_Blog   RedToolBox   Omil   Omil_Blog