Nowe posty

Autor Wątek: Jak zawiesić Linuksa? - Pytam poważnie :)  (Przeczytany 8304 razy)

Hipek

  • Gość
Jak zawiesić Linuksa? - Pytam poważnie :)
« dnia: 2008-02-22, 20:11:56 »
Nie, oczywiście nie chcę tego robić. Z jednej strony słyszałem, że to niemożliwe, z drugiej, że bardzo trzeba się napracować, by go zawiesić.  W sumie, jak z tym jest?

Chodzi mi o coś innego. Wczoraj chciałem sobie zamontować dysk. Wskoczyłem na roota, wpisałem mount i... czekam. Mount sie zwiesiło, ctrl+c nie pomagało. Stwierdziłem, ze wyłączę konsolę, ale nic to nie dało, konsola nie odpowiadała. Uruchomiłem więc drugą konsolę, by znaleźć proces mount i zabić go ręcznie. Ale konsola druga zwiesiła się na ps x. Do tego w tym samym momencie skończyłem przeglądać stronę i wyłączyłem konquerora. Konqueror zwiesił jakiś błąd i wyłączył się, ale wpis na pasku na dole (belce) pozostał. Jednak wciskająć alt+tab nie mogłem wybrać konquerora. Spróbowałem z jeszcze jedną konsolą, ps x się wykonało, ale nie było tam ani obu poprzednich konsoli, ani mount, ani zwieszonego ps x. Stwierdziłem, że może z roota spróbuje, ale po podaniu hasła roota, konsola się zwiesiła... Do tego nie uruchomił się już konqueror, z ciekawości włączyłem grę, też się nie uruchomiła.

Postanowiłem rozwiązać sprawę bez restartu (wyzwanie!), przeszedłem na pierwsza konsolę (KDE stoi o ile pamiętam na siódmej) alt+ctrl+F1, chciałem zamordować KDE i uruchomić od nowa. W konsoli dostałem prośbę o logowanie. Zalogowałem się, ale po podaniu hasła konsola zaczęła długo myśleć... Zostawiłem komputer na 10min, żeby się zastanowił, ale gdy wróciłem, dalej siedział zwieszony na logowaniu do pierwszej konsoli. Przeskoczyłem więc do drugiej, próbowałem zalogować się na roota. Tak samo, po podaniu hasła czeka i czeka... Po kilku minutach jednak zrestartowałem system, straciłem cierpliwość.

I teraz, wreszcie, moje pytanie: jak sobie radzić w takich sytuacjach? Czy jest możliwe wyjście z takiego czegoś bez restartu?

arctgx

  • Gość
Jak zawiesić Linuksa? - Pytam poważnie :)
« Odpowiedź #1 dnia: 2008-02-22, 20:58:38 »
Poszukaj w sieci i dokumentacji jądra (sysrq.txt) o kombinacjach klawiszy Magic SysRq dobrych czasem na sytuacje wyglądające jak wiechy.

Można próbować logować się też z sieci przez ssh choćby, jeśli tylko klawiatura, mysz czy Power na obudowie nie działają.

ZipoKing

  • Gość
Jak zawiesić Linuksa? - Pytam poważnie :)
« Odpowiedź #2 dnia: 2008-02-22, 21:12:05 »
Po moich ostatnich przygodach z przegrzanym dyskiem mogę powiedzieć tyle: jeżeli ów dysk, który chciałeś zamontować to dysk SATA, to pewnikiem trafiłeś na jakiś błąd na dysku (badblock?), który zaowocował resetem całego kontrolera i stąd te problemy.
Ponieważ na dysku SATA siedzi u mnie tylko /home i /pub (/ jest na drugim dysku, już zwykłym IDE), to przy takich zwiechach mogłem się zalogować z konsoli jako root i obserwować komunikaty jądra.
Polecam zrobić coś takiego. W jakieś konsoli spod root-a wykonać polecenie:
dmesg | tail -f
a potem spróbować podmontować ów felerny dysk. Na bank otrzymasz wiele przydatnych informacji ;)

A co do zawieszenia całego systemu, ciekawe, czy napisanie prostego modułu jądra którego jedyną funkcją byłoby wywołanie kernel panic albo alokacja nieskończenie wiele razy jakiegoś obszaru pamięci (memory out w przestzrzeni jądra) dałaby porządane rezultaty ;). Można też wywołać spod root'a (którego nie obowiązują ograniczenia zasobów narzucane na zwykłych userów) znaną tu i ówdzie nieskończoną pętlę forkującą ;)

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
Jak zawiesić Linuksa? - Pytam poważnie :)
« Odpowiedź #3 dnia: 2008-02-22, 22:09:41 »
Co do pętli forkującej, która była nawet jakiś czas temu na tym forum: próbowałem na 3 kompach i żaden nie zwisł. Zapychało pamięć, przez chwilę nie dało się nic zrobić, a potem komputer wracał do normy.

chmooreck

  • Gość
Jak zawiesić Linuksa? - Pytam poważnie :)
« Odpowiedź #4 dnia: 2008-02-22, 22:19:45 »
:(){ :|:& };:

Hipek

  • Gość
Jak zawiesić Linuksa? - Pytam poważnie :)
« Odpowiedź #5 dnia: 2008-02-23, 00:53:55 »
ZipoKing: trafiłeś, dysk jest SATA. :-) Co prawda skonfigurowałem sobie teraz już fstab, ale odmontuję dysk i pokombinuję. ;-)

goscccccccccccc

  • Gość
Jak zawiesić Linuksa? - Pytam poważnie :)
« Odpowiedź #6 dnia: 2008-02-23, 04:59:55 »
Ja mam taki laptop, tak złożony, że zwis na linuxie to prościzna. Najwięcej zabawy jest dzięki karcie graficznej openchrome, ale to musi być coś jeszcze prócz tego.

norbert_ramzes

  • Gość
Jak zawiesić Linuksa? - Pytam poważnie :)
« Odpowiedź #7 dnia: 2008-02-24, 11:08:33 »
Panic'a jądra można wywołać np zabijając proces init'a (nigdy ręcznie nie próbowałem), ale odradzam bo można stracić dane.

Panika jądra polega na tym że wypluwa błąd (który wiele mówi co się stało) na konsolę i chyba też do logów a potem zostaje wykonana wieczna i pusta pętla tzn taka która nigdy się nie kończy i nic zupełnie nie robi czyli po naszemu zawiesza się. Więcej poczytasz w dokumentacji i źródłach kernela.

Sam daaawno temu miałem podobny problem jak miałem "zimne luty" na dysku. Lutownica (na chwilę) pomogła.

ZipoKing

  • Gość
Jak zawiesić Linuksa? - Pytam poważnie :)
« Odpowiedź #8 dnia: 2008-02-24, 15:33:01 »
@norbert_ramzes: init-a nie da się ubić - jest to jedyny proces, który nie boi się SIGKILL :)

norbert_ramzes

  • Gość
Jak zawiesić Linuksa? - Pytam poważnie :)
« Odpowiedź #9 dnia: 2008-02-24, 15:59:13 »
Noo do teraz nigdy nie sprawdzałem (poza tym jak libc miałem troszeczkę uszkodzone i init wysypywał się na samym starcie).

No to: rmmod -f modul_do_obslugi_np_dysku

albo:

modprobe nvidiafb
rmmod nvidiafb (czasami często zawiesza się)

albo bardziej hardcorowo:

mv /lib/libc.so.6 /lib/libc.so.6_