15

Just as a curiosity; something went wrong with a Linux machine, making the root file system show up as "64Z". A few commands work, like top, df, and kill, but others like reboot come up with "command not found" (since it can't read the root filesystem), and chmod comes up with a segmentation fault.

Is there any way to restart the system anyway, i.e. without the reboot program? I tried kill -PWR 1 (sending SIGPWR to init), but this didn't seem to do anything.

It's mostly an academic curiosity. The labmate who was doing whatever large-database work that caused the failure will be physically restarting the machine soon.

2
25

Try to reboot with magic sysrq key:

echo b > /proc/sysrq-trigger

For more information read wiki or kernel documentation.

1
  • 1
    Thanks! This did reboot the system. (Unfortunately, whatever happened to the root filesystem seems unrecoverable ... sad). – gatoatigrado Dec 28 '11 at 3:25
5

A RAC (remote access card) or iLO (integrated lights-out) or MP (management processor) will provide you with means to reset your server.

For example if you have a Dell PowerEdge with a RAC-card (called DRAC) you can power-cycle the server via ssh:

ssh drac "racadm serveraction powercycle"

The other option is to use the Web-GUI for RAC/iLO and do the same there.

There is an open standard for this stuff as well: IPMI.

3

Even more interesting than what @Rush answer, is the ability to restart (and much more) the system, even if the system isn't responding to keyboard at all. But it has to be respond to ping (ICMP) packets.

See here for the full documentation & instructions on how to implement that.

4
  • 4
    How about actually giving a brief of the instructions/summary of principles instead of just a link? – kizzx2 Dec 27 '11 at 16:52
  • you need to do a bit of setup for that approach, but definitely a neat idea. – gatoatigrado Dec 27 '11 at 17:36
  • That sounds interesting -- but isn't there a considerable security risk involved? Allowing a server to be rebooted via a single ICMP packet seems like a denial-of-service attack waiting to happen. – bgvaughan Dec 29 '11 at 18:20
  • @bgvaughan: you are right, and at the link i have provided above, there is the pros and cons about it, and one of them is security, although you can restrict who can do that. – Hanan N. Dec 29 '11 at 18:30
2

The easiest way is usually to just change the runlevel.

In Linux, you can do:

Prompt# init 6

More information here: http://linux.about.com/od/itl_guide/a/gdeitl36t04.htm

1
  • 1
    This will not work in this situation. init command is in /sbin (at least in ubuntu), so it requires file system access. – Sunny Jan 4 '12 at 17:40
1

This requires prior setup, but if you're used to crashing a machine (e.g. because you're doing low-level development on it), you may want to set up a watchdog, i.e. a kernel or user tasks that reboots it automatically when it becomes unresponsive. Linux can use a hardware watchdog if your motherboard has one, or a software watchdog otherwise.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.