ext3는 파일 복구가 불가능하다!

opiokane의 이미지

오늘 웹서버중 하나의 하드 정리를 한답시고
이것저것 쓸데 없는 파일들을 지웠습니다.
rm 명령을 사용하다 귀찮아져서 mc를 썼습니다.
몇시간이 지난뒤에야 꼭 있어야할 파일들이
디렉터리 통째로 없어졌다는 것을 알았습니다.

여기저기 찾아보았더니
ext3는 파일 지울 때 블록 포인터에 모두 0을 쓰기
때문에 툴을 써서 복구가 불가능하다는군요.
grep 을 하는 수 밖에 없는데....OTL

파일을 보호하기 위해서 ext3를 썼는데
알고보니 굉장히 조심해서 써야하는 파일시스템이었지 뭡니까?
엉엉~

Forums: 
doly의 이미지

http://www.ohmi.co.kr/gnu4/bbs/tb.php/linux_study/7
위 글을 참고하세요..

두가지 복구 방법에 대한 설명이 있습니다.
성공할 확률은 그리 높지 않지만....

엉망인 영어 실력으로 번역했는데 도움 되시길 바랍니다.

꾸벅

lacovnk의 이미지

Quote:
파일을 보호하기 위해서 ext3를 썼는데

(파일을 보호하기 위해서 == 실수로 지웠을 경우를 위해서) 인가요? 그 기능은 음.. roll back이라고 할 수 있겠습니다.

ext3는 저널링 파일 시스템입니다. 저널링 파일 시스템의 목적은 일차적으로 일관성 유지입니다. 롤백은 부가 기능이지요. ext3의 저널링에 너무 많은 기대를 하지 마세요~ :)

롤백, 스냅샷의 기능들을 지원하는 파일 시스템은.. 잘 모르겠습니다 -_-; 시스템 복원을 제공하는 MS WinXP는 FS가 아니라 OS에서 해주는 것일 테고, Leopard는 어떤지 잘 모르겠습니다. Solaris의 ZFS도 획기적인 기능을 많이 제공한다는 데 자세히는 모르겠군요~~ (이런 무책임한 언급..)

bushi의 이미지

linux 메인트리에 들어갈락말락하는 파일시스템이 있습니다.
좋은 이름은 이미 다 써버려서 그랬는지 기억하기 힘든 이름을 붙여놔 얼른 생각이 안나네요..

http://lwn.net/Articles/238923/
에 소개되어 있고, 각각 프로젝트 홈페이지로의 링크가 있습니다.
둘 모두 journaling 은 기본이고, snapshot(writable, continous) 가능합니다.

OTL

Lein의 이미지

위에 FS 떼고 앞 세자를 뒤집으니 LIN이 되는군요..=ㅅ=a

왠지 리눅스 파일시스템이라고 부르고 싶어져요

bushi의 이미지

여기 소개된 것들중 btrfs 가 linux-2.6.29 merge window 에 포함되었습니다.
빠르면 올 봄, 늦어도 여름 전에는 나오겠죠.
주류에 포함되기까지 1년이 걸렸군요.

OTL

bushi의 이미지

linux-2.6.30 에 nilfs 가 포함되었습니다.

파일시스템의 snapshot 기능에 관심있는 분들은 모험 해보세요.
선택의 폭이 넓어졌습니다 :)

OTL

a287848의 이미지

ext3는 저널링 파일 시스템입니다. 저널링 파일 시스템의 목적은 일차적으로 일관성 유지입니다. 롤백은 부가 기능이지요

롤백은 부가 기능이 아니라 저널링을 이루는 필수요소입니다.

파일을 지웠을때 복구 하거나 하는 용도가 아니라. Write-ahead-logging된 데이터를 크래시후 다시 써주는 용도죠.

Dig it.

lacovnk의 이미지

좀 애매하게 썼었군요.

말씀하신대로 크래시 후 "마저 못쓴 부분"을 다시 써주거나, "쓰다 만 부분을 아예 지워서 되돌리는 것"으로 일관성을 유지하는 것이 저널링의 목적이죠.

"쓰다 만 부분을 아예 지워서 되돌리는 것"은 필수지만
"지웠을 때 이전 상황 복구하는 것" 처럼, 특정 시점으로 돌아가는 것은 필수가 아니죠.

롤백이라고 하면, 전자를 말하기도 하지만, snapshot으로 롤백하니 후자도 말하기도 합니다.

a287848의 이미지

Dig it.

논리적으로 혹은 서술적인 표현으로 특정시점으로 돌아가는것은 맞는말입니다만..

사실상 파일시스템에서의 저널링은 구현적으로

쓰다만 부분을 되돌린다던가하는 일은 없습니다.

오직 제대로 WAL(write-ahead-logging) 된 부분만 다시 써줄뿐입니다.

snapshot이라는 용어는 트랜잭션 포인트를 말씀하시는거겠죠?

Dig it.

doly의 이미지

ext3에서는 어떻게 파일을 기록하며, 어떻게 삭제가 되는지..
왜 복구가 어려운지 .. 그리고 복구 방법을 아셔야지 가능하겠죠?

다음링크를 확인 해 주세요!!

http://www.superuser.co.kr/blog/doly/index.php/4

영문으로 되어있는 것을, 한글로 번역했습니다.

그리고, 지워진 파일의 영역을 찾아서, 내용을 저장하고, 그 내용 덩어리에서,
파일의 헤더와 테일을 찾아서 복구 하는 방법을 설명하고 있습니다.

희망을 잃지말고 해 보시기 바랍니다.!!!

DebPolaris의 이미지

좋은글 감사합니다.

--------------------------------------------------------
남이 가르쳐주는 것만 받아들이는 것이 아니라, 스스로 만들고, 고쳐가는 사람을 '해커'라고 부른다.
그리고 자신이 쌓아온 노하우를 거리낌없이 나눌 줄 아는 사람을 '진정한' 해커라고 한다.
-Rob Flickenger 'Linux server hacks'
http://heu

-----------------------------------------------------
남이 가르쳐주는 것만 받아들이는 것이 아니라, 스스로 만들고, 고쳐가는 사람을 '해커'라고 부른다.
그리고 자신이 쌓아온 노하우를 거리낌없이 나눌 줄 아는 사람을 '진정한' 해커라고 한다.
-Rob Flickenger 'Linux server hacks'

DEBIAN TESTING, KDE...
debpolaris.blogspot.kr

오리주둥이의 이미지

ext3에서만 적용이 되는것인지 어떠한 파일시스템이든 상관이 없는지는 모르겠습니다만
일단 휴지통 기능을 하는 삭제 방법이 있습니다.
파일은 삭제가 되었지만 실제로는 파일이 남아 언제든지 복구시킬 수 있는 기능이 있습니다.
safedelete 라는 툴이 있는데 검색하셔서 설치하시면 될 듯 합니다.

dl3zp3의 이미지

rm을 안쓰는 것도 하나의 방법....

.bashrc에 다음과 같은 코드를 추가합니다.

# goodbye to the scary rm.
alias trash='mv -t /home/kekeke/.trash-files'

터미널에서 파일을 지우고싶을 때에는 다음처럼:
trash file1 file2 dir1 dir2...

burnssun의 이미지

괜히 미드나잇 커맨더란 말이 나온게 아님니다....

reduck96의 이미지

더이상 생각해 볼것도 없을 것 같기는 한데... 빨리 다음 과정으로 넘어가세요~
------------------------------------------------
불확실성속에서 내가 할 수 있는 일은 선택이다.
선택의 연속성속에 또다른 사건이 만들어 진다.
그 사건에서 또 선택한다. 선택...선택...선택...

서버실 청소부

mothorchid의 이미지

특정회사명을 거론해도 되는지 몰라서 좀 그런데 R - S...뭐시기 하는 프로그램이 ext3까지 복구되도록
업데이트 되었더군요.. 79달러 유료프로그램입니다. 홈페이지부터 한글을 지원하더군요.
저도 안써봐서 되는지 안되는지는 몰라서 좀 무책임한 댓글이 되겠습니다만,
혹시라도 다급하신분께 도움이 될까 하고 적어봅니다.
체험판은 64KB 이하 파일들만 복구된다고 하니 한번 시도해보시고 구입하시는게 어떨까요.
얼른 ext4 에서 복구 기능과 defrag 기능이 개발완료 되어서 옮겨 타면 좋으련만요..

다콘의 이미지

ext3 복구를 도와주는 ext3grep 링크입니다.
http://kldp.org/node/103288

댓글 달기

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