rm -rf / 해 버렸습니다.. T.T

zieben의 이미지

제목과 같이 rm -rf / 해버렸습니다..
rm -rf * 한다는 것을 저렇게 오타로.. T.T
이를 어떻게 복구해야 할지 도무지 막막하기만 합니다.

일단 grub을 부트로더로 사용하는데 grub부터 안뜨네요.
부트로더는 전에도 한번 날려먹고 kldp를 통해서 배운대로 복구한 적이 있어서..
복구디스켓을 사용해서 복구하면 될줄 알았는데..
부트순서를 floppy를 1번으로 두고 해도 플로피를 읽지 않고 부트로더 에러가 뜨네요.
이건 floppy에 이상이 있는 거겠지요?

wow linux 7.3 R2 가 깔려있는데 인스톨 씨디를 가지고 grub부터 복구할수 있는 방법이 있을까요?

그 이외에 어느 부분을 복구해줘야 하는지 도움주시면 정말 감사하겠습니다.

progcom의 이미지

어디서 실수한걸 알아채서 중단했고, 어느 지점까지 삭제 되었느냐에 따라 복구할 양이 달라집니다만....
rm -rf / 를 했다면 아예 재설치 하는게 속 편할 경우가 많습니다....

익명 사용자의 이미지

knoppix 나 damn small linux 같이 CD로 부팅해서 바로 쓰는 넘들이 단순히 linux 깔기 싫어 들고 다니는 넘들이 아니란걸 저도 윗 분처럼 rm -rf / 를 하고 나서 알게 되었죠...
보통 언제 멈췄느냐가 중요한데....rm -rf / 를 치시고 2,3초 안에 멈추셨으면....scsi가 아닌 이상 폴더 한개 정도 날라간걸로 멈췄을껍니다.

아래와 같이 하십시요.

(1) knoppix 최신 iso를 받아서 CD로 만드십시요.
(2) knoppix로 부팅.......요세 knoppix 많이 좋아졌습니다....않 잡아주는게 없어요......와우파란 7.3 을 쓰셨다면...커널 2.4.18 대 일건데.....가능하면 버젼에 맞는 knoppix를 구하십시요....각 리눅스의 커널을 알고 싶으시면 http://distrowatch.com/ 를 방문해서 커널 버젼을 확인하세요...
(3) knoppix는 아마 왠만해선 X로 뜰겁니다....터미널 하나 뛰우시고....이제 부터 노가다 시작입니다......ㅋㅋㅋ.......노가다.......콜라캔을 45도로 세우는 심정으로다.......ㅋㅋㅋ......해커의 기본.....
(4) "mkdir target드라이버이름"을 하셔서 디렉토리를 만들고 "mount 날린 드라이브_phisical name target드라이버이름" 하심 마운트 될겁니다.
(5) 그다음에 du 명령으로 경로 size를 비교하셔도 되고, 아님 단순 copy도 되고 그냥 knoppix의 폴더들을 가져다 덮어쓰십시요.... 단 /boot , /etc, /dev 만 빼고.....
(6) 그다음 커널 2.4.18 이후 버전으로 소스를 가져다가 커널 컴파일, module 컴파일까지 한판 하면........거진 99퍼센트 올라 올겁니다...
(7) 아참 그리고 마지막으로 "/target드라이버이름/sbin/lilo -C /target드라이버이름/etc/lilo.conf " 한판 쌔려주는거 잊지 마시구요....

완전 허접 노가다 복구 solution이었지만....나름데로....유용하다는....쿨럭....알고 보면 삽질이지만......
암튼 knoppix forever.....

vacancy의 이미지

복구하신 후로는,

root로 접속하는 일은 최소화하시는 방향으로 쓰시는게 좋을것 같아요.

일반 유저였으면 피해가 적었겠죠 ?

세벌의 이미지

다시 설치 하는 방법 외에 다른 방법이 있을까요?

supersky의 이미지

일전에 제가 구한 자료입니다.
참고가 될려나 모르겠네요..

Quote:
며칠 전에 약 1주일이 넘도록 힘들게 만들어 놓은 작업 데이타를 어쩌다가(지운 과정도 상당히 복잡하지만 생략) 결국 "rm -rf"로 지워 버리고 말았습니다. 결국 이틀이 걸려 제가 찾으려던 텍스트 화일 두개(크기는 각각 약 8KB, 97KB)를 복구하였습니다. 제가 한 과정을 요약해서 올립니다. (제 피씨는 wow 7.1 파란입니다.)

"적수네 동네"와 kldp.org에서 "rm -rf"로 지운 화일을 복구하는 데에 대해서 검색을 해 봤는데 우선 적수네 동네 질답게시판에서 tct라는 프로그램으로 복구할 수 있다는 말이 있었습니다. 그리고 kldp.org에서는 화일복구에 대한 mini-howto가 있었는데 저는 mini-howto를 쫓아 하다가 거기에 나오는 툴들이 시스템에 안 깔려 있길래 그냥 tct를 사용해서 복구를 했습니다.

tct는 http://www.fish.com/tct 에서 다운받을 수 있습니다. 프로그램의 설명서는 http://www.fish.com/tct/help-recovering-file 이 화일입니다.

제 경우는 홈디렉토리를 지웠습니다. 설명서에 보면 지운 화일이 속한 파티션에 더이상의 쓰기는 하지 말고 umount를 하라고 되어 있습니다. 저의 경우는 홈디렉토리가 루트디렉토리(/)에 있어서 umount를 하지는 못했고, 마침 안 쓰고 있던 파티션이 있었는데 거기에서 지금부터 하는 작업 모두를 해서 화일이 삭제된 파티션을 더이상 쓰지 않았습니다.

tct를 사용하려면 화일이 지워진 파티션의 빈 공간(저의 경우 2.5GB)보다 2.2배 정도의 빈 공간이 다른 파티션에 필요합니다. 저는 마침 6.7GB의 빈 공간이 되는 파티션이 있었는데, 정말 tct로 작업을 다 하니 6.7GB가 정말 다 차 버렸습니다.

이제 복구를 하는데 물론 root로 합니다. tct를 받아서 빈 파티션에 풀고 컴파일했습니다. (./configure를 하고 make all 만 하고 make install은 안 했습니다.) 복구는 두 단계로 나뉩니다. 작업은 tct를 압축풀은 바로 그 디렉토리에서 합니다.

1. 먼저 unrm으로 해당 파티션의 빈 공간을 하나의 커다란 화일로 덤프합니다.
$ bin/unrm /dev/hda7 > dump

2. 그 다음 lazarus로 덤프된 큰 화일을 지워지기 전엔 하나의 화일이었다 생각되는데로 화일단위로 쪼갭니다. (설명서에 보면 시간이 많이 걸린다고 되어 있는데 이 작업이 저의 경우 약 24시간은 걸린 것 같습니다.)
$ bin/lazarus -h dump

lazarus를 백그라운드로 돌려 놓고 보면 blocks라는 디렉토리와 www라는 디렉토리가 생기고 html 화일들이 세 개 생깁니다. 실제 blocks라는 화일에 덤프화일이 조각조각 쪼개져 저장이 됩니다. 운이 좋으면 초기에 쪼개져 나온 화일들 중에서 grep으로 잃어 버린 화일을 찾을 수도 있습니다.

예를 들어 지운 화일에 아주 특이한 단어가 들어 있다면(예를 들어 자기 이름) 그것으로 grep 하면 금방 찾을 수가 있습니다. 저의 경우는 운이 없었는지 해당 화일이 하드디스크 뒷부분에 있었는지 24시간이 다 지난 다음에야 찾을 수 있었습니다.

참고로 dump화일이 2GB가 넘으면 리눅스 커널과 펄(lazarus가 사용함)이 모두 2GB를 지원해야 lazarus가 실행이 됩니다. 제 덤프화일은 3.5GB여서 역시 처리를 못했는데 펄을 다시 최신 소스를 받아다 설치를 하니(물론 지워진 파티션에 설치하면 안 됨) lazarus가 그제서야 실행이 되었습니다(lazarus화일을 열어 첫 줄의 perl 위치를 바꿔줘야 함).

그리고 blocks안의 화일이 너무 많으면 grep도 화일이 너무 많다고 해서 동작을 못하는데(저의 경우도 역시 이랬습니다.) 이럴 때는
$ grep 문자열 1????.txt
$ grep 문자열 2????.txt
$ grep 문자열 3????.txt
...

이런 식으로 나누어서 grep 해주면 됩니다.

사실 시간이 총 이틀 정도 걸렸는데(백그라운드로 돌려 놓고 대부분 다른 일을 하긴 했지만) 이 방법이 아니라, inode 관련한 mini-howto 방법은 더 빠를지 저도 잘 모르겠구요. 시간이 좀 걸리더라도 중요한 화일을 꼭 복구해야 하는 분은 한번 시도해 보세요. 물론 덤프된 화일 사이즈가 작다면 시간은 그렇게까지 많이 걸리지는 않을 것입니다.

--

어느분이 작성한지는 모르겠으나, 동의 받지 않고 올리게 됨을 죄송하게 생각합니다.

void main()
{
printf("Hello World\n");
exit(0);
}
/* 초심으로 돌아가자~~~~~ */

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.