The
/rescue directory contains a collection of common utilities intended for use in recovering a badly damaged system. With the transition to a dynamically-linked root beginning with
NetBSD 2.0, there is a real possibility that the standard tools in
/bin and
/sbin may become non-functional due to a failed upgrade or a disk error. The tools in
/rescue are statically linked and should therefore be more resistant to damage. However, being statically linked, the tools in
/rescue are also less functional than the standard utilities. In particular, they do not have full use of the locale,
pam(3), and nsswitch libraries.
If your system fails to boot, and it shows an error message similar to:
init: not found
try booting the system with the boot flag “
-a” and supplying
/rescue/init, which is the
rescue init(8), as the init path.
If your system fails to boot, and it shows a prompt similar to:
Enter full pathname of shell or RETURN for /bin/sh:
the first thing to try running is the standard shell,
/bin/sh. If that fails, try running
/rescue/sh, which is the
rescue shell. To repair the system, the root partition must first be remounted read-write. This can be done with the following
mount(8) command:
/rescue/mount -uw /
The next step is to double-check the contents of
/bin,
/lib,
/libexec, and
/sbin, possibly mounting a
NetBSD installation CD-ROM and copying files from there. Once it is possible to successfully run
/bin/sh,
/bin/ls, and other standard utilities, try rebooting back into the standard system.
The
/rescue tools are compiled using
crunchgen(1), which makes them considerably more compact than the standard utilities.