Przygoda z lapkiem – naprawianie filesystemu ReiserFS.

Sytuacja z życia wzięta: jest sobie laptop, który nie bootuje się z USB, ma dysk IDE podzielony na partycje. Po brutalnym wyłączeniu prądu (edukacja techniczna współdomowników poszła w las, niestety – wykazali się nadgorliwością przy wyłączaniu) okazuje się, że / z ReiserFS montuje się w trybie read only. Druga partycja z ext4 jest zdrowa, ale jest czymś w stylu /opt. Skoro nie można uruchomić żadnego systemu live (tzn. z USB, płyty CD nie mam pod ręką), to pozostaje maintaince mode.

Niby żaden problem – istnieją narzędzia do naprawy filesystemów, ale fsck.reiserfs nie należy do najbezpieczniejszych narzędzi, o czym zresztą sam ostrzega (i nie jest to ostrzeżenie nieuzasadnione, kiedyś nadgodziny przez to zaliczałem…). Uruchomienie z opcją –fix-fixable (co za nazwa), pomogło, ale nie do końca – dalej jest read only, a program sugeruje uruchomienie z opcją przebudowania drzewa. Tym razem ostrzeżenie zajmuje cały ekran i wprost sugeruje zrobienie backupu, najlepiej przerzucenie obrazu w bezpieczne miejsce przy pomocy ddrescue. I podają nawet adres, gdzie można uzyskać support, za jedyne 25 dolarów. Cóż, skoro tak, to jednak postaram się uruchomić jakieś liveCD, żeby zrobić porządek (cóż, wypalona płyta może się przydać kiedyś, więc bez dramatu, bo chociaż do niedawna sądziłem, że wszystko już potrafi uruchomić się z USB, to nie do końca tak jest)…

Niestety, okazuje się, że CD-ROM nie jest w pełni sprawny. Albo, że liveCD Squeeze’ego nie działa (bo płytę widzi, początek bootowania zachodzi). Na dodatek na zdrowej partycji jest ok. 7 GB miejsca, a na zepsutej zajęte ponad 8 GB, a sama ma rozmiar kilkudziesięciu GB, więc skopiowanie tam obrazu średnio wchodzi w grę, nawet z kompresją. Na inny system obrazu nie przerzucę, bo jak / jest w read only, to wifi nie działa (kabla nie sprawdzałem, nie chciało mi się podłączać). Może by działało, jakby było wicd-curses zainstalowane, ale nie było, a Xy oczywiście nie wstawały.

Ostatecznie postanawiam podmontować zdrowy filesystem, skopiować na niego tylko najpotrzebniejsze dane (czytaj: katalog domowy) i w najgorszym wypadku, jeśli nie zdoła naprawić, skończy się przekładaniem dysku i reinstalacją systemu.

Pojawia się kolejny problem – skoro / jest w trybie read only, to nie można utworzyć katalogu, by podmontować gdzieś zdrowy filesystem. I to jest ten moment, który mnie na chwilę zawiesił. Rozwiązanie okazało się trywialne – / może być w read only, ale /dev/shm to nie dotyczy. Szybkie mkdir /dev/shm/backup, zamontowanie zdrowej partycji w tym miejscu i już można na spokojnie skopiować wybrane dane.

Kilka minut później uruchomiłem fsck.reiserfs z opcją przebudowania drzewa. Tym razem dał radę. Ale poważnie myślę nad zrobieniem dodatkowej partycji ratunkowej o rozmiarze 1GB, z minimalnym systemem (znaczy łączność, narzędzia do naprawy filesystemów, ddrescue itp.).

Geekowy grzejnik (powered by Debian).

Powoli robi się szaro i zimno i trzeba było pomyśleć o uruchomieniu ogrzewania w mieszkaniu. Grzeję prądem, niestety (drogo), ale nie zmienię tego, bo ani mieszkanie moje, ani pewnie warunków technicznych na co innego nie ma. A skoro już ogrzewanie elektryczne, to równie dobrze może być komputer zamiast grzejnika, tym bardziej, że mam jeden nieużywany. W sumie miałem go oddać, ale jakoś nie doszło do tego, bo i daleko był, i nie byłem pewien, czy całkiem sprawny jest. Okazuje się, że jest sprawny.

Zawsze to ciekawiej grzać komputerem, niż grzejnikiem, no i można różne ciekawe rzeczy sobie potestować, na które do tej pory, bez komputera nieprodukcyjnego, pod ręką, ale włączonego 24/7 nie było warunków (ot choćby dn24). Poza tym w końcu chyba pobawię się poważniej apt-p2p. No i żeby się nie nudziła maszynka, to jakieś dociążenie się przyda w stylu obliczenia rozproszone.

W środku nic specjalnego:

$ cat /proc/cpuinfoprocessor       : 0vendor_id       : AuthenticAMDcpu family      : 6model           : 8model name      : AMD Sempron(tm) 2300+stepping        : 1cpu MHz         : 1588.825cache size      : 256 KB

Do tego 512 MB RAM.

Jako system oczywiście GNU/Linux Debian, tym razem Squeeze (czyli jeszcze testing). I w miarę nowy soft, i stabilnie jest. Hostname? Oczywiście grzejnik. 😉

Po krótkim namyśle jako utylizator cykli procesora został wybrany GIMPS, którym – jeśli chodzi o obliczenia rozproszone – bawiłem się chyba najdłużej. Odpowiedni poziom nieużyteczności posiada, nie jest całkiem bezsensowny (w przeciwieństwie do szukania kosmitów), są statystyki i teamy, jeśli kogoś to bawi (mnie odpowiednio: tak, nie). Przy okazji zrobiłem mały research i wychodzi, że minimum 4 lata nie bawiłem się GIMPS. No i 2 lata minęły od znalezienia liczb pierwszych odpowiednich do przyznania nagrody. Tak w ogóle, to z obliczeń rozproszonych do tej pory kolejno bawiłem się SETI@Home, GIMPS, M4 project, no i teraz powraca GIMPS.

Programy, które są/będą uruchomione na grzejniku:

Myślę, co by tu jeszcze wrzucić…?

Naprawienie hibernacji w Squeeze.

W poprzednich narzekaniach na Debiana pisałem, jak to mi hibernacja szwankuje, mimo zgłoszonych bugów. Nie ma co ukrywać, powrót tematu hibernacji w tej dyskusji i chęć zepsucia czegoś doprowadziły do tego, że stwierdziłem, że trzeba poszukać problemu. Metodą najdoskonalszą, czyli izolacji problemu.

Podejrzanych było dwóch: hibernate i uswsusp. Na początek stwierdziłem, że wyrzucę oba pakiety wraz z konfiguracjami (wajig purge…) i zobaczę, jak LXDE reaguje. Ku memu zdziwieniu, opcje hibernacji i usypiania nadal były dostępne. Kliknąłem jedną z nich i… ku memu zdziwieniu zadziałała. Znaczy się, winnych może być więcej. Szybki reboot i dalsze działanie uśpienia upewniły mnie, że musi być inny winny.

Wizyta na kanale #debian (hibernacja to dla mnie nowość, przyznaję się od razu, że ten temat jest mi praktycznie obcy, jakoś nigdy nie widziałem sensu tego) przyniosła newsa: jest jeszcze pakiet pm-utils, który może zapewniać dostęp do usypiania i hibernacji. Został odinstalowany i zainstalowałem od nowa uswsusp. Tradycyjnie nie banglał. Wywaliłem go i stwierdziłem, że dam szansę narzędziom z pm-utils. Ku memu zdziwieniu opcje testowe pokazywały, że powinno działać z ich użyciem i uśpienie, i hibernacja. I faktycznie działają one pod Squeeze od kopa i elegancko.

Pomysłu co może być przyczyną niedziałania uswsusp na kanale nie ma, maintainer pakietu jakoś się nie odzywa w zgłoszeniu błędu. Szkoda, bo uswsusp miał trochę ciekawych opcji (kompresować czy nie, szyfrować czy nie)… Za to dostałem namiar na stronę dotyczącą MIA Team. 😉

Znowu wszystko działa i Debian robi się nudny