Obiecywałeś wariat, że będziesz robił backupy i co? I co @#$%^ się pytam?!
W zeszły czwartek zdarzyły się trzy rzeczy. Pozbyłem się iShit'a, zamówiłem sobie nowe szkło do aparatu: Canon EF 24-70mm f/2.8L USM i padł mi dysk w Coyote.
Zaczęło się nagle, komputer się zawiesił. Niektórzy powiedzą zdarza się
, ale ja nie jestem przekonany. Faktem jest, że wisiało. Nie działała nawet ikonka od killowania
. Wariat przypomniał sobie stare czasy, nacisnął i przytrzymał przycisk power
. Po chwili ekran zgasł, a po ponownym uruchomieniu i załadowaniu kernela ekran zaśmieciło coś co ewidentnie wskazywało na kłopot z dyskiem i wyglądało mniej więcej tak:
ide: failed opcode was: unknown
hda: task_out_intr: status=0x51 {DriveReady SeekComplete Error}
hda: task_out_intr: error=0x10 {SectorIdNotFound} LBAsect=28306658, high=1, low=11529442, sector=28306658
Pierwszą reakcją była oczywiście panika. AAAaaaa moje pliki. Zdjęcia młodego, Nelka mnie zabije! Najnowszy CartoonManager - o ja pierdzielę. Najgorsze było to, że zamknięty w pracy nie mogłem próbować niczego i jedyne co mogłem to właśnie zastanawiać się co straciłem. Pewne było to, że dysk jest dead, trzeba kupić nowy. Po powrocie do domu pobrałem Gentoo Minimal CD, odpaliłem Coyote'a i ... powiedziało, że chce montować /dev/hdaN i wisi. Fajne kurka liveCD :D.
Na drugi ogień poszło SystemRescueCd. Tu odpalanie nie nastręczyło problemów, jako bonus X'y z Window Makerem i desktopem przywołującym wspomnienia systemu ATARI i wczesnych lat dziewięćdziesiątych ubiegłego stulecia. No ale działa, więc nie marudzimy.
Próba zamontowania partycji:
root@sysresccd /root % mount /dev/sda4 /mnt/dysk
mount: wrong fs type, bad option, bad superblock on /dev/sda4,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
No to sprawdźmy:
root@sysresccd /root % reiserfsck /dev/sda4
(...)
Trans replayed: mountid 930, transid 2069652, desc 6111, len 1, commit 6113, next trans offset 6096
Reiserfs journal '/dev/sda4' in blocks [18..8211]: 471 transactions replayed
Checking internal tree..finished
Comparing bitmaps..finished
Checking Semantic tree:
finished
No corruptions found
There are on the filesystem:
Leaves 127300
Internal nodes 871
Directories 47170
Other files 479462
Data block pointers 11509351 (82 of them are zero)
Safe links 0
###########
reiserfsck finished at Sat Jan 26 15:16:35 2008
###########
Fajnie, wszystko ok, tylko nie działa. Znaczy co? Znaczy badsektory. Wsadziłem nowy dysk w pożyczoną od Nelki obudowę USB o zastraszającym nominalnym transferze danych 480kbps, odpaliłem kopiowanie i poszedłem w długą. Zakończyło się tak:
root@sysresccd /root % ddrescue -r 10 -v -d /dev/sda4 /dev/sdb4 root_backupLog
About to copy 65530 MBytes from /dev/sda4 to /dev/sdb4
Starting positions: infile = 0 B, outfile = 0 B
Copy block size: 128 hard blocks
Hard block size: 512 bytes
Max_retries: 10
Direct: yes Sparse: no Split: yes Truncate: no
Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued: 0 B, errsize: 0 B, errors: 0
Current status
rescued: 65530 MB, errsize: 512 B, current rate: 0 B/s
ipos: 3265 MB, errors: 1, average rate: 3108 kB/s
opos: 3265 MB
Finished
% cat root_backupLog
# Rescue Logfile. Created by GNU ddrescue version 1.6
# current_pos current_status
0xC2A97E00 +
# pos size status
0x00000000 0xC2A97E00 +
0xC2A97E00 0x00000200 -
0xC2A98000 0xE7F473E00 +
Jakie wnioski? Zdechł JEDEN sektor. A właściwie jeden znaczący sektor, trafiło tak, że unieruchomiło cały system plików. I tu pojawia się pytanie czy reiserFS aka killerFS ;-) się na prawdę nadaje do użytku skoro generalnie z badsektorami radzi sobie świetnie (ogółem na patycji badblocks wykrył 62 popsute sektory), ale jedno pechowe trafienie znika partycję
bez żadnego ostrzeżenia.
Ktoś może powiedzieć, że powinienem od razu odpalić reiserfsck --rebuild-tree, --rebuild-sb. Jasne ale ... jaką miałbym gwarancję, że po tej operacji nie znajdę wszystkiego w /lost+found
? No a tego chciałem uniknąć.
Skopiowana partycja montowała się poprawnie, zostało więc tylko podpięcie dysku do Mickeya, gdzie znalazłem 50GB miejsca, przekopiowanie plików do archiwów tar.bz2, i po założeniu docelowych partycji na nowym dysku operacja odwrotna. Napisać łatwo, ale razem z lagami pomiędzy pakowaniem jednego a drugiego katalogu (no przecież nie siedziałem tam 24/24 gapiąc się czy już) trwało to jakieś 2,5 dnia :D.
W tej chwili Coyote śmiga już z nowego hardziela, system działa jak działał (łącznie ze świrującym audio którym nie mam czasu się zająć), pliki (prywatne i systemowe) są tam gdzie je zostawiłem, ale co schudłem i posiwiałem to moje. Partycje nadal reiserFS, choć poważnie zastanawiam się nad przejściem na ext3. Pytanie tylko czy w podobnej sytuacji (ultra pechowe trafienie badblockiem) nie da identycznych efektów?
Ustala człowiek zasady np. "żadnych prezentów z dziedziny technika" i nic, no nie słuchają. I później kłopot tylko. W ten sposób wariat stał się posiadaczem odtwarzacza iPod touch 16gb w kolorze czarnym. Strasznie nie lubię Allegro, ale chyba nie będzie wyjścia. Kłopot polega na tym, że produkt firmy Apple nie wytrzymuje konkurencji z praktycznie dowolnym chińskim odtwarzaczem mp3 i spełnia w bólach może 20% wariackich wymagań stawianych odtwarzaczowi. No bo tak:
Acha ... iPoda jak widać nie polecam, no ale mam świadomość, że dla większości ludzi niedogodności które w moich oczach dyskwalifikują produkt Apple giną przy atucie w stylu "No ale iPod jest jazzy" czy jak to się teraz mówi. ;-)