Jakikolwiek sposób na ponowne uruchomienie komputera z systemem Linux za pośrednictwem SSH, jeśli główny system plików nie działa?

15

Z ciekawości; coś poszło nie tak z maszyną z Linuksem, powodując, że główny system plików wyświetla się jako „64Z”. Kilka poleceń działa, jak top, dfi kill, ale inne, jak np. reboot„Nie znaleziono polecenia” (ponieważ nie można odczytać głównego systemu plików) i chmodpojawia się błąd segmentacji.

Czy istnieje sposób zrestartowania systemu, to znaczy bez rebootprogramu? Próbowałem kill -PWR 1(wysyłając SIGPWR do init), ale to nie wydawało się nic robić.

To głównie akademicka ciekawość. Kolega z pracy, który wykonywał jakąkolwiek pracę w dużej bazie danych, która spowodowała awarię, wkrótce fizycznie uruchomi ponownie komputer.

gatoatigrado
źródło
Mam nadzieję, że to uratuje mnie od problemu następnym razem ... [ cyberciti.biz/tips/reboot-linux-box-after-a-kernel-panic.html ]
gatoatigrado
Czy widzisz, że problem z rootem FS wywołał panikę jądra?
Hanan N.

Odpowiedzi:

25

Spróbuj zrestartować komputer za pomocą magicznego klucza sysrq:

echo b > /proc/sysrq-trigger

Aby uzyskać więcej informacji, przeczytaj dokumentację wiki lub jądra .

wysypka
źródło
1
Dzięki! To zrestartowało system. (Niestety, cokolwiek stało się z głównym systemem plików, wydaje się niemożliwe do odzyskania ... smutne).
gatoatigrado
5

RAC (karta dostępu zdalnego) lub iLO (zintegrowane wyłączanie oświetlenia) lub MP (procesor zarządzania) zapewni Ci środki do zresetowania serwera.

Na przykład, jeśli masz Dell PowerEdge z kartą RAC (zwaną DRAC), możesz włączyć i wyłączać serwer poprzez ssh:

ssh drac "racadm serveraction powercycle"

Inną opcją jest użycie Web-GUI dla RAC / iLO i zrobienie tego samego.

Istnieje również otwarty standard dla tych rzeczy: IPMI.

Nils
źródło
3

Jeszcze bardziej interesująca niż odpowiedź @Rush jest możliwość ponownego uruchomienia systemu (i wiele więcej), nawet jeśli system w ogóle nie reaguje na klawiaturę. Ale musi odpowiadać na pakiety ping (ICMP).

Zobacz tutaj pełną dokumentację i instrukcje, jak ją wdrożyć.

Hanan N.
źródło
4
Co powiesz na przekazanie krótkiego opisu instrukcji / streszczenia zasad zamiast samego linku?
kizzx2
musisz zrobić trochę konfiguracji dla tego podejścia, ale zdecydowanie fajny pomysł.
gatoatigrado
Brzmi interesująco - ale czy nie wiąże się to z poważnym zagrożeniem bezpieczeństwa? Zezwolenie na ponowne uruchomienie serwera za pomocą jednego pakietu ICMP wydaje się być atakiem typu „odmowa usługi”.
bgvaughan
@bgvaughan: masz rację, a pod linkiem, który podałem powyżej, są wady i zalety, a jednym z nich jest bezpieczeństwo, chociaż możesz ograniczyć, kto może to zrobić.
Hanan N.,
2

Najłatwiej jest zazwyczaj po prostu zmienić poziom działania.

W systemie Linux możesz:

Prompt# init 6

Więcej informacji tutaj: http://linux.about.com/od/itl_guide/a/gdeitl36t04.htm

Patrick
źródło
1
To nie zadziała w tej sytuacji. Komenda init znajduje się w / sbin (przynajmniej w Ubuntu), więc wymaga dostępu do systemu plików.
Sunny
1

Wymaga to wcześniejszej konfiguracji, ale jeśli jesteś przyzwyczajony do awarii komputera (np. Ponieważ pracujesz nad nim na niskim poziomie), możesz chcieć skonfigurować watchdoga , tj. Zadania jądra lub użytkownika, które uruchomią go ponownie automatycznie, gdy przestaje reagować. Linux może używać sprzętowego organu nadzorującego, jeśli ma go płyta główna, lub programowego systemu nadzorującego w przeciwnym razie.

Gilles „SO- przestań być zły”
źródło