파일시스템을 안 알려주셨네요.
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.
예를 들면, /usr/bin/rm 을 /usr/bin/delete 등으로 이름을 바꾸고...
rm 이라고 치면 /home/yundorri/trash 라는 디렉토리로 강제로 옮겨서 (지우는것 처럼 보이는 거지요. MS Windos의 휴지통 처럼) 매월 1일에 trash 디렉토리에 있는 1달이 지난 파일들을 자동으로 삭제하는 cron을 등록해 놓고...
으~ 웬만 하면 제가 저런걸 생각해 보겠습니까.. :oops:
별루 안좋은 생각인가요? 고수님들의 생각은? (물론 조심하는게 젤 좋지요.)
예전에 저도 거의 개발이 마지막 단계에 있던 소스를 cvs 에
올리기 일보직전에 rm -rf 한 적이 있었습니다.
눈앞이 깜깜하고, 머리를 깔찌뜯고, 절망에 가까웠었는데..
일단 /home 이 속해있던 /dev/hda5 를 dd 로 와장창 뜯어낸후,
거의 반나절을 vi editor 를 갖고 놀았다는.... -_-;;
운이 좋아서, 빨리 패턴을 찾을수 있었고, 기억을 더듬어 가장 최근 비슷한
코드를 건질수 있었습니다. /home 이 약 4기가 짜리 파티션이었는데,
아마 한 1기가 정도만 덤프하고 시작했는데, 그 안에 있었습니다.
그 이후는 rm -rf 대신에 make clean 을 반드시 만듭니다.
rm -rf 조심합시다.
방법이 없는건가요?
방법이 없는건가요?
예전에 mc 로 파일 되살리기를 한적이 있습니다.대신에 ext2 파일
예전에 mc 로 파일 되살리기를 한적이 있습니다.
대신에 ext2 파일시스템이어야 합니다.
자세한 설명 부탁 드립니다. redhat9.0인데 ext3파일 시스템이
자세한 설명 부탁 드립니다. redhat9.0인데 ext3파일 시스템이 맞지요 ? 아닌가 ? 어떤 파일 시스템인지 확인은 어떻게 하나요?
$cat /etc/fstab
$cat /etc/fstab
남으로 창을 내겠소.
밭이 한참갈이 괭이로 파고 호미론 김을 메지요.
구름이 꼬인다 갈리있소. 새들의 노래는 공으로 들으랴오.
강냉이가 익거든 와자셔도 좋소.
왜 사냐건 웃지요.
감사합니다. mc를 강력한 편집기라고 표현해야하나..암튼 mc응용
감사합니다.
mc를 강력한 편집기라고 표현해야하나..
암튼 mc응용프로그램으로 복구를 어떻게 시키나요 그리고 ext2에서만 되는건가요?
파일시스템을 안 알려주셨네요.ext2/ext3 라면 복구가 가능합니
파일시스템을 안 알려주셨네요.
ext2/ext3 라면 복구가 가능합니다.
debugfs 명령으로 수작업으로 복구해야 됩니다.
전 /boot 파티션은 항상 ext2 를 사용하는 데 실수로 커널이미지를 삭제하였을 경우 복구하기가 편안하거든요.
아래는 kltp.kldp.org 에 있는 글인데 현재 접속이 되질 않으니 인용하여 올립니다. 참고해보세요
----------------------------------------
Nothing left after Nirvana.
kltp.kldp.org 들어가서 한번 찾아보았습니다.ext3파일 시
kltp.kldp.org 들어가서 한번 찾아보았습니다.
ext3파일 시스템에서는 안된다고 나오더군요....
새로 다시 만들어야 하나 쩝쩝^^
예전에 저도 그런적 있었습니다.근데 아무리 찾아봐도 ext3는 안된다
예전에 저도 그런적 있었습니다.
근데 아무리 찾아봐도 ext3는 안된다더군요. 그게 벌써 1년이 다 되어가네요.
아직도 없는것으로 알고 있습니다.
finaldata 가 linux용도 있다고 합니다. ext2,3 할거 없이 모두 복구가 가능하다네요.
근데 구하지를 못합니다.
가격도 왠만큼 하면 사 볼 텐데 몇 백만원 합니다 .
trial 이라도 올리면 좋으련만...
안됐지만 ext3라면 그냥 포기하심이... :?
[quote="yundorri"]finaldata 가 linux용도
제가 아는 finaldata는 다른 건가요? 개인용 9만9천원이고 다운로드 방식으로 판매하는 경우 더 할인해서 팔던데요. 저는 8만원선에서 구매했던 기억이... 기업용은 55만원이라고 홈페이지에 나와 있네요.
좋은 하루 되세요!
[quote="raymundo"]제가 아는 finaldata는 다른
MS Windows용은 싸던데요, linux용은 비쌌던 걸로 기억이 되네요.
지금은 어떨지... 그때 하도 기겁을 해서리 요즘은 백업을 열쒸미 한다는 ~ :lol:
finaldata.com에 가보니 linux용도 팔기는 하는데 가격은 얼마라고 나온것도 없고
쇼핑몰에도 없고 그냥 전화해 보라는 말만 있네요.
그리고 미리 설치해 놓지 않으면 ext3의 경우는 복구율이 낮은 편이라고 합니다.
언제쯤, ext3용 복구 프로그램이 나올까요... :?
finaldata... 4년 전에 rm -rf / 를 해서
finaldata... 4년 전에 rm -rf / 를 해서.. idc 센터에서 하드 서버를 다
때내어.. 가져가 복구 해 달라고 한 적이...
rm -rf.. 정말 무서운 명령어 입니다.
그래서 요즘은 꽁수를 부려볼려고 노력중입니다.예를 들면, /usr
그래서 요즘은 꽁수를 부려볼려고 노력중입니다.
예를 들면, /usr/bin/rm 을 /usr/bin/delete 등으로 이름을 바꾸고...
rm 이라고 치면 /home/yundorri/trash 라는 디렉토리로 강제로 옮겨서 (지우는것 처럼 보이는 거지요. MS Windos의 휴지통 처럼) 매월 1일에 trash 디렉토리에 있는 1달이 지난 파일들을 자동으로 삭제하는 cron을 등록해 놓고...
으~ 웬만 하면 제가 저런걸 생각해 보겠습니까.. :oops:
별루 안좋은 생각인가요? 고수님들의 생각은? (물론 조심하는게 젤 좋지요.)
얼마전에 들은건데.../.bin/ 이나 /.usr/ 등을 만들어 놓고
얼마전에 들은건데...
/.bin/ 이나 /.usr/ 등을 만들어 놓고
ln /.usr /usr 으로 하드링크를 걸어놓는 거에요 =3
rm -rf / 해도... 숨김 파일을 지우진 않으니... 날아가진 않겠죠? :)
----
블로그 / 위키 / 리눅스 스크린샷 갤러리
debugfs 로 복구하는방법이 일단 확률이 높지만..
초 대형 노가다가 될 확률이 높습니다.
yundorri 님 좋은 꽁수네요...... 히히..
예전에 저도 거의 개발이 마지막 단계에 있던 소스를 cvs 에올리기
예전에 저도 거의 개발이 마지막 단계에 있던 소스를 cvs 에
올리기 일보직전에 rm -rf 한 적이 있었습니다.
눈앞이 깜깜하고, 머리를 깔찌뜯고, 절망에 가까웠었는데..
일단 /home 이 속해있던 /dev/hda5 를 dd 로 와장창 뜯어낸후,
거의 반나절을 vi editor 를 갖고 놀았다는.... -_-;;
운이 좋아서, 빨리 패턴을 찾을수 있었고, 기억을 더듬어 가장 최근 비슷한
코드를 건질수 있었습니다. /home 이 약 4기가 짜리 파티션이었는데,
아마 한 1기가 정도만 덤프하고 시작했는데, 그 안에 있었습니다.
그 이후는 rm -rf 대신에 make clean 을 반드시 만듭니다.
rm -rf 조심합시다.
삽질의 대마왕...
tct 라는 툴도 있군요..
tct라는 툴도 있습니다.
여기를 가보세요
http://www.fish.com/tct
툴이라기 보다는 툴 셋이라고 보는편이 나을지도 모르겠네요.
이안의 unrm 은 dd 와 같은 기능을 하는거 같네요
파일 시스템 포멧 한 거 살리는 방법은 정녕 없는걸까요..
[quote="nayana"]kltp.kldp.org 들어가서 한번 찾아
ext3 는 ext2 에서 저널링 기능만 더해진 것 입니다.
거의 동일하다고 볼 수 있거든요.
파일시스템을 ext3 에서 ext2 로 변경하면 됩니다.
된다고는 하는데 제가 직접해본 적은 없습니다.
----------------------------------------
Nothing left after Nirvana.
댓글 달기