Ponowne uruchomienie Magic Way

Jeśli kiedykolwiek miał twardy nie na zdalnym serwerze może pamiętacie uczucie miałeś po próbując wydać następujące polecenia:

    # reboot
    bash: /sbin/reboot: Input/output error
    # shutdown -r now
    bash: /sbin/shutdown: Input/output error

Oczywiście, istnieje problem z napędem. Polecenia te zawodzą, ponieważ jądro jest w stanie załadować /sbin/reboot i /sbin/shutdown binarne z dysku tak, że może je wykonywać.

Fsck przy następnym rozruchu może być w stanie poprawić to co jest nie tak z dyskiem, ale najpierw trzeba dostać się do systemu, aby ponownie. Jeśli urządzenie znajduje się w zarządzanym hosting provider następnie można przesłać zgłoszenie restart, ale będziesz musiał czekać na kogoś wziąć odpowiedzialność.

Czy nie byłoby miło, gdyby nie było sposobu, aby zwrócić się do jądra, aby ponownie uruchomić bez konieczności dostępu do dysku uszkodzonego? Dobrze, jest sposób, i jest niezwykle prosty.

TheMagic SysRq key” stanowi drogę do wysyłania poleceń bezpośrednio do jądra przy pomocy systemu plików / proc. Jest włączona za pomocą opcji w czasie kompilacji jądra, CONFIG_MAGIC_SYSRQ, który wydaje się być standardem w większości dystrybucji. Najpierw należy aktywować opcję magiczną sysrq:

Echo 1 > /proc/sys/kernel/sysrq

Gdy jesteś gotowy, aby ponownie uruchomić urządzenie wystarczy uruchomić następujące:

echo b > /proc/sysrq-trigger

To nie próbuje odmontować lub systemu synchronizacji, tak powinno być stosowane tylko wtedy, gdy jest to absolutnie konieczne, ale jeśli napęd jest już braku wówczas nie może być problemem.

Poza ponownym uruchomieniu systemu trick sysrq mogą być wykorzystywane do zrzutu informacje o pamięci do konsoli, synchronizację wszystkich systemów plików, zamontować wszystkie systemy plików w trybie tylko do odczytu, wysłać SIGTERM lub SIGKILL do wszystkich procesów z wyjątkiem startowych, lub wyłączanie urządzenia w całości, między innymi.

Również, zamiast nawiązując do /proc/sys/kernel/sysrq Za każdym razem można aktywować magiczne klawisz SysRq w czasie startu systemu przy użyciu sysctl, gdzie obsługiwane:

Echo "kernel.sysrq = 1" >> /etc/sysctl.conf

Jeśli chcesz dowiedzieć się więcej o magicznym sysrq można przeczytać sysrq.txt złożyć w dokumentacji jądra.