다음 이전 차례

11. inodes 를 직접 변경한다.

이 방법은 겉보기에 더 쉬워 보이지만 12 블럭 보다 길때와 맞먹을 수 없다. 복구를 원하는 각각의 inode 에 반드시 사용법을 하나로 해야하고 deletion 시간을 0으로 해야한다. 이 작업은 ' degugfs' 명령중 'mi' 에 의해 이루어진다. inode 14800 3으로부터 약간의 예를 출력해 보자.


    debugfs:  mi <148003>
                              Mode    [0100644] 
                           User ID    [503] 
                          Group ID    [100] 
                              Size    [6065] 
                     Creation time    [833201524] 
                 Modification time    [832708049] 
                       Access time    [826012887] 
                     Deletion time    [833201524] 0
                        Link count    [0] 1
                       Block count    [12] 
                        File flags    [0x0] 
                         Reserved1    [0] 
                          File acl    [0] 
                     Directory acl    [0] 
                  Fragment address    [0] 
                   Fragment number    [0] 
                     Fragment size    [0] 
                   Direct Block #0    [594810] 
                   Direct Block #1    [594811] 
                   Direct Block #2    [594814] 
                   Direct Block #3    [594815] 
                   Direct Block #4    [594816] 
                   Direct Block #5    [594817] 
                   Direct Block #6    [0] 
                   Direct Block #7    [0] 
                   Direct Block #8    [0] 
                   Direct Block #9    [0] 
                  Direct Block #10    [0] 
                  Direct Block #11    [0] 
                    Indirect Block    [0] 
             Double Indirect Block    [0] 
             Triple Indirect Block    [0]

위의것은 deletion 시간을 0으로 하고 링크를 1로 맞춰 각각 다른 곳에서 압축해 되돌린 것이다. 설령 이것이 어리석게 보일 지라도 많은 화일을 복구해야 한다면 이 방법으로 대처할 수 있다.

[ 그런데 : 'mi' 출력이 inode에 있는 'Creation time'에 관련되어 있다는 건 거짓말이다. 사실 화일이 만들어질 때는 유닉스 화일 시스템에 영향을 미칠 수 없다. 'st_ctime' 'struct stat'구성은 'inode change time'에 관련되어 있다. 이는 inode 세부사항이 바뀌는 마지막 시점에서이다. ] 변경된 inodes가 있다면 'debugfs' 에서 벗어나 명령할 수 있다.

# e2fsck -f /dev/hda5 여러분은 도움되는 출력과 약간의 질문을 받을 것이다. 'summary information' 과 변경한 inodes에 관한 모든 잘문에 'Yes'라고 해라. 모든 질문에 'Yes'라 답하는 것은 좋은 방법이다. 'e2fsck'가 끝나면 화일 시스템을 remount 할 수 있다.

삭제된 화일은 화일 시스템의 /lost+found 디렉토리에 자리하고 있다. (파티션이 /usr 에 mount 됐다면 /usr/lost+found 를 봐라) 그것들은 inode 번호에 따라 이름이 불려진다. 여러분이 계속 해야 할 것은 그 화일들의 내용에 알맞게 이름을 생각해 내는 것이며, 그것들을 화일 시스템 구조에 알맞는 곳으로 되돌리는 일이다.

사실 저것들은 'e2fsck'로 화일을 /lost+found 로 보내는 것중 하나이다. 여러분은 inode 에다 화일 시스템에서 링크를 만드는데 'debugfs'를 사용 할 수 있다. 'debugfs' 'link' 명령은 inode 를 변경한 후 사용해라.

debugfs: link <148003> foo.txt

위의 예는 'debugfs' 가 최근의 디렉토리라 생각하는 곳에다가 'foo.txt' 라는 화일을 만드는 것이며 'foo.txt' 는 당신의 화일이 될 것이다. 'e2fsck' 명령은 'summary information' 등등을 고칠때까지 계속 사용할 필요성이 있다.


다음 이전 차례