Linux Ext2fs Undeletion mini-HOWTO: Bezpośrednie modyfikacje iwêzłów
Następna strona
Poprzednia strona
Spis treści
11. Bezpośrednie modyfikacje iwêzłów
Metoda ta jest dużo prostsza. Jednak, tak jak wspomniałem wcześniej, nie
może byæ jeszcze stosowana do plików wiêkszych niż 12 bloków.
W każdym iwêźle, który chcesz odzyskaæ musisz ustawiæ licznik podłączeñ
(linkcount) na jeden i czas skasowania (deletion time) na zero. Robi siê to
za pomocą polecenia mi (modify inode) w debugfs. Przykładowe
wywołanie, modyfikacja iwêzła 148003 (tego co wcześniej):
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]
Ustawiłem czas skasowania na 0, licznik podłączeñ na 1 i nacisnąłem Enter
dla wszystkich innych pól. Jest to pewną niedogodnością, jeżeli masz wiele
plików do odzyskania. Myślê jednak, że można z tym żyæ. Jeśli
oczekujesz wygody, lepiej zacznij używaæ graficznego `systemu operacyjnego'
ze ślicznym `Koszem na śmieci'.
Przy okazji: polecenie mi pokazuje `Czas stworzenia' (Creation
time) w iwêźle. To kłamstwo ! (lub, jak kto woli, pomyłka.) Prawda jest taka,
że nie można w systemie plików UNIX-a stwierdziæ kiedy dany plik został
utworzony. Pole st_ctime w struct stat zawiera `czas zmiany
iwêzła', czyli czas ostaniej zmiany, któregoś z parametrów iwêzła. To tyle
z dzisiejszej lekcji.
Nowsze wersje debugfs niż moja, prawdopodobnie nie wyświetalają
niektórych pól w iwêźle (szczególnie, Reserved1 i Fragment).
Po zmianie w iwêzłach, możesz wyjśæ z debugfs i napisaæ:
# e2fsck -f /dev/hda5
Pomysł polega na tym, że każdy ze skasowanych plików został odkasowany, ale
nie pojawił siê w żadnym katalogu. Program e2fsck umie to wykryæ i
doda pozycjê dla każdego z nich w katalogu /lost+found systemu
plików. (Jeżeli partycja była zamontowana w /usr, pliki pojawią siê
w /usr/lost+found, gdy ją zamontujesz.) Pracą, którą musisz jeszcze
zrobiæ, to nadanie plikom nazw i umieszczenie ich we właściwym miejscu
drzewa plików.
Po uruchomieniu e2fsck, wyświetli Ci on trochê informacji, ale zada
również pytania, które zniszczenia naprawiaæ. Odpowiadaj `yes' (tak) na
wszystko co dotyczy `summary information' lub iwêzłów, które zmieniałeś.
Resztê pozostawiam do Twojej decyzji, pamiêtaj, że nie jest najlepszą
metodą odpowiadanie `tak' na wszystkie pytania. Po skoñczeniu pracy
przez e2fsck, możesz ponownie zamontowaæ system plików.
Istnieje alternatywne rozwiązanie do pozwolenia, aby e2fsck utworzył
pliki w /lost+found. Możesz użyæ debugfs i stworzyæ w systemie
plików dołączenie (link) do iwêzła. Służy do tego polecenie link w
debugfs, po zmianach w samym iwêźle:
debugfs: link <148003> foo.txt
W ten sposób powstanie w bieżącym katalogu plik o nazwie foo.txt;
foo.txt bêdzie Twoim odzyskanym plikiem. Nadal musisz jednak uruchomiæ
e2fsck, aby uaktualniæ informacje ogólne, liczniki bloków itp. itd.
Następna strona
Poprzednia strona
Spis treści
Wyszukiwarka
Podobne podstrony:
ext2fs undeletion pl 3ext2fs undeletion pl 8ext2fs undeletion pl 17ext2fs undeletion pl 4ext2fs undeletion pl 6ext2fs undeletion pl 10ext2fs undeletion pl 9ext2fs undeletion pl 13ext2fs undeletion pl 2ext2fs undeletion pl 15ext2fs undeletion pl 1Ext2fs Undeletion plext2fs undeletion pl 7ext2fs undeletion pl 14ext2fs undeletion pl 16ext2fs undeletion pl 5Ext2fs Undeletion pl (2)Ext2fs Undeletion pl (3)ext2fs undeletion pl 12więcej podobnych podstron