rm -rf 지운거 살릴수 있는 방법 없나요?

nayana의 이미지

제가 한번의 실수로 현재 개발하고 있는 프로그램을 rm -rf 지워버리고 말았습니다. 그만 저도 모르게 ^^;;
rm -rf 지운거 살릴수 있는 방법이 없나요?
백업을 생활화합시다.

nayana의 이미지

방법이 없는건가요?

atomaths의 이미지

예전에 mc 로 파일 되살리기를 한적이 있습니다.
대신에 ext2 파일시스템이어야 합니다.

nayana의 이미지

자세한 설명 부탁 드립니다. redhat9.0인데 ext3파일 시스템이 맞지요 ? 아닌가 ? 어떤 파일 시스템인지 확인은 어떻게 하나요?

feelpassion의 이미지

$cat /etc/fstab

남으로 창을 내겠소.
밭이 한참갈이 괭이로 파고 호미론 김을 메지요.
구름이 꼬인다 갈리있소. 새들의 노래는 공으로 들으랴오.
강냉이가 익거든 와자셔도 좋소.
왜 사냐건 웃지요.

nayana의 이미지

감사합니다.
mc를 강력한 편집기라고 표현해야하나..
암튼 mc응용프로그램으로 복구를 어떻게 시키나요 그리고 ext2에서만 되는건가요?

웃는 남자의 이미지

파일시스템을 안 알려주셨네요.
ext2/ext3 라면 복구가 가능합니다.
debugfs 명령으로 수작업으로 복구해야 됩니다.

전 /boot 파티션은 항상 ext2 를 사용하는 데 실수로 커널이미지를 삭제하였을 경우 복구하기가 편안하거든요.

아래는 kltp.kldp.org 에 있는 글인데 현재 접속이 되질 않으니 인용하여 올립니다. 참고해보세요

리눅스에서의 파일 삭제는 신중을 기해야 한다. 왜냐면 삭제된 파일은 복구 할 수 
없기 때문이다. 이것이 정석이였습니다.

물론 rm 의 소프트링크나 다른 삭제 프로그램으로 대체하는 프로그램들도 있습니다
만 rm 자체의 복구는 없다고 알고 있으신 분들이 대부분 일 겁니다.

해답은 

debugfs 라는 명령어 입니다. (man page 참조)

실제 사용예를 들어 설명하겠습니다.

가정1) /home/pds/portsentry.tar.gz 라는 파일이 있음.
가정2) /home 파티션은 hda8 입니다. (df -h 로 확인)
가정3) rm -f /home/pds/portsentry.tar.gz 명령으로 지웠음.
가정4) root 로 작업.

복구 절차.

1. #debugfs /dev/hda8

=> 설명 : hda8 파티션에 대해서 검사를 한다.

2. debugfs:

=> 대기상태를 뜻함. 이곳에서 lsdel 을 입력하고 엔터.
계속...

debugfs: lsdel
99 deleted inodes found.
 Inode  Owner  Mode    Size    Blocks    Time deleted
108123      0 100644    239    1/   1 Thu Jan  3 01:25:33 2002
 18417      0 100644 426625  420/ 420 Thu Jan  3 01:26:34 2002
 45007      0 100644    343    1/   1 Thu Jan  3 01:29:59 2002
 28691      0 100400    879    1/   1 Thu Jan  3 01:38:29 2002
 18394      0  40755      0    1/   1 Thu Jan  3 01:58:54 2002
  ..
  .
 14356      0 100644   2325    3/   3 Fri Jan 25 16:13:24 2002
 61239      0 100644  43034   44/  44 Fri Jan 25 16:13:31 2002
debugfs:  

위와 같은 상태로 나오고 다시 대기상태로 됩니다. 실제로는 너무 많이 나오더군
요.. (내가 그렇게 많이 지웠었나? '.'a)

이제 이 목록중에서 하나를 선택해서 살려야 합니다. 다행히도 살리고자 하는 파일
은 가장 최근에 지운 파일이므로 가장 아래쪽에 있는 것이겠죠.

debugfs: dump <61239> /home/debugfs/portsentry.tar.gz

=> Inode 값을 <> 안에 적어줍니다. 뒤에는 복구할 파일 이름을 적어주시면 됩니다.
=> 복구할 파일은 다른 디렉토리로 지정해 주시는게 좋습니다. 별 상관은 없지만...

#cd /home/debugfs
#tar -zxvf portsentry.tar.gz  // 정상적으로 압축이 풀리더군요.

=> 아주 훌륭하게 복구가 되었더군요. ^^v

임의로 portsentry.tar.gz 를 지워서 테스트를 한 것입니다.

debugfs:  상태에서 사용할 수 있는 명령어는 help 를 쳐보면 알 수 있습니다.
끝내는 것은 q, quit 입니다.



아래는 debugfs: 에서 사용가능한 명령어들 입니다.
---------------------------------------------------------------------

Available debugfs requests:

show_debugfs_params, params
                         Show debugfs parameters
open_filesys, open       Open a filesystem
close_filesys, close     Close the filesystem
feature, features        Set/print superblock features
dirty_filesys, dirty     Mark the filesystem as dirty
init_filesys             Initalize a filesystem (DESTROYS DATA)
show_super_stats, stats  Show superblock statistics
ncheck                   Do inode->name translation
icheck                   Do block->inode translation
change_root_directory, chroot
                         Change root directory
change_working_directory, cd
                         Change working directory
list_directory, ls       List directory
show_inode_info, stat    Show inode information 
link, ln                 Create directory link
unlink                   Delete a directory link
mkdir                    Create a directory
rmdir                    Remove a directory
rm                       Remove a file (unlink and kill_file, if appropriate)
kill_file                Deallocate an inode and its blocks
clri                     Clear an inode's contents
freei                    Clear an inode's in-use flag
seti                     Set an inode's in-use flag
testi                    Test an inode's in-use flag
freeb                    Clear a block's in-use flag
setb                     Set a block's in-use flag
testb                    Test a block's in-use flag
modify_inode, mi         Modify an inode by structure
find_free_block, ffb     Find free block(s)
find_free_inode, ffi     Find free inode(s)
print_working_directory, pwd
                         Print current working directory
expand_dir, expand       Expand directory
mknod                    Create a special file
list_deleted_inodes, lsdel
                         List deleted inodes
write                    Copy a file from your native filesystem
dump_inode, dump         Dump an inode out to a file
cat                      Dump an inode out to stdout
lcd                      Change the current directory on your native 
filesystem
rdump                    Recursively dump a directory to the native filesystem
help                     Display info on command or topic.
list_requests, lr, ?     List available commands.
quit, q                  Leave the subsystem. 

----------------------------------------
Nothing left after Nirvana.

nayana의 이미지

kltp.kldp.org 들어가서 한번 찾아보았습니다.
ext3파일 시스템에서는 안된다고 나오더군요....
새로 다시 만들어야 하나 쩝쩝^^

yundorri의 이미지

예전에 저도 그런적 있었습니다.
근데 아무리 찾아봐도 ext3는 안된다더군요. 그게 벌써 1년이 다 되어가네요.
아직도 없는것으로 알고 있습니다.

finaldata 가 linux용도 있다고 합니다. ext2,3 할거 없이 모두 복구가 가능하다네요.
근데 구하지를 못합니다.
가격도 왠만큼 하면 사 볼 텐데 몇 백만원 합니다 .
trial 이라도 올리면 좋으련만...

안됐지만 ext3라면 그냥 포기하심이... :?

raymundo의 이미지

yundorri wrote:

finaldata 가 linux용도 있다고 합니다. ext2,3 할거 없이 모두 복구가 가능하다네요.
근데 구하지를 못합니다.
가격도 왠만큼 하면 사 볼 텐데 몇 백만원 합니다 .
trial 이라도 올리면 좋으련만...

제가 아는 finaldata는 다른 건가요? 개인용 9만9천원이고 다운로드 방식으로 판매하는 경우 더 할인해서 팔던데요. 저는 8만원선에서 구매했던 기억이... 기업용은 55만원이라고 홈페이지에 나와 있네요.

좋은 하루 되세요!

yundorri의 이미지

raymundo wrote:

제가 아는 finaldata는 다른 건가요? 개인용 9만9천원이고 다운로드 방식으로 판매하는 경우 더 할인해서 팔던데요. 저는 8만원선에서 구매했던 기억이... 기업용은 55만원이라고 홈페이지에 나와 있네요.

MS Windows용은 싸던데요, linux용은 비쌌던 걸로 기억이 되네요.
지금은 어떨지... 그때 하도 기겁을 해서리 요즘은 백업을 열쒸미 한다는 ~ :lol:

finaldata.com에 가보니 linux용도 팔기는 하는데 가격은 얼마라고 나온것도 없고
쇼핑몰에도 없고 그냥 전화해 보라는 말만 있네요.
그리고 미리 설치해 놓지 않으면 ext3의 경우는 복구율이 낮은 편이라고 합니다.

언제쯤, ext3용 복구 프로그램이 나올까요... :?

staryoon의 이미지

finaldata... 4년 전에 rm -rf / 를 해서.. idc 센터에서 하드 서버를 다
때내어.. 가져가 복구 해 달라고 한 적이...

rm -rf.. 정말 무서운 명령어 입니다.

yundorri의 이미지

그래서 요즘은 꽁수를 부려볼려고 노력중입니다.

예를 들면, /usr/bin/rm 을 /usr/bin/delete 등으로 이름을 바꾸고...
rm 이라고 치면 /home/yundorri/trash 라는 디렉토리로 강제로 옮겨서 (지우는것 처럼 보이는 거지요. MS Windos의 휴지통 처럼) 매월 1일에 trash 디렉토리에 있는 1달이 지난 파일들을 자동으로 삭제하는 cron을 등록해 놓고...

으~ 웬만 하면 제가 저런걸 생각해 보겠습니까.. :oops:
별루 안좋은 생각인가요? 고수님들의 생각은? (물론 조심하는게 젤 좋지요.)

랜덤여신의 이미지

얼마전에 들은건데...
/.bin/ 이나 /.usr/ 등을 만들어 놓고
ln /.usr /usr 으로 하드링크를 걸어놓는 거에요 =3
rm -rf / 해도... 숨김 파일을 지우진 않으니... 날아가진 않겠죠? :)

mudori의 이미지

초 대형 노가다가 될 확률이 높습니다.

yundorri 님 좋은 꽁수네요...... 히히..

litdream의 이미지

예전에 저도 거의 개발이 마지막 단계에 있던 소스를 cvs 에
올리기 일보직전에 rm -rf 한 적이 있었습니다.
눈앞이 깜깜하고, 머리를 깔찌뜯고, 절망에 가까웠었는데..

일단 /home 이 속해있던 /dev/hda5 를 dd 로 와장창 뜯어낸후,
거의 반나절을 vi editor 를 갖고 놀았다는.... -_-;;
운이 좋아서, 빨리 패턴을 찾을수 있었고, 기억을 더듬어 가장 최근 비슷한
코드를 건질수 있었습니다. /home 이 약 4기가 짜리 파티션이었는데,
아마 한 1기가 정도만 덤프하고 시작했는데, 그 안에 있었습니다.

그 이후는 rm -rf 대신에 make clean 을 반드시 만듭니다.
rm -rf 조심합시다.

삽질의 대마왕...

익명 사용자의 이미지

tct라는 툴도 있습니다.
여기를 가보세요
http://www.fish.com/tct
툴이라기 보다는 툴 셋이라고 보는편이 나을지도 모르겠네요.
이안의 unrm 은 dd 와 같은 기능을 하는거 같네요
파일 시스템 포멧 한 거 살리는 방법은 정녕 없는걸까요..

웃는 남자의 이미지

nayana wrote:
kltp.kldp.org 들어가서 한번 찾아보았습니다.
ext3파일 시스템에서는 안된다고 나오더군요....
새로 다시 만들어야 하나 쩝쩝^^

ext3 는 ext2 에서 저널링 기능만 더해진 것 입니다.
거의 동일하다고 볼 수 있거든요.

파일시스템을 ext3 에서 ext2 로 변경하면 됩니다.

# umount /dev/hda10
# tune2fs -O ^has_journal /dev/hda10
# e2fsck /dev/hda10
# Edit /etc/fstab to change /dev/hda10 to mount type ext2

# reboot

# mount /dev/hda10

된다고는 하는데 제가 직접해본 적은 없습니다.

----------------------------------------
Nothing left after Nirvana.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.