---
name: "rescue"
section: "8"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/rescue"
---

# rescue(8)

rescue utilities in /rescue

## NAME

**rescue** – rescue utilities in */rescue*

## DESCRIPTION

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 FreeBSD 5.2, 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)](/pam/3.md), and nsswitch libraries.

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)](/mount/8.md) command:

```
/rescue/mount -uw /
```

The next step is to double-check the contents of */bin*, */sbin*, and */usr/lib*, possibly mounting a FreeBSD rescue or “live file system” 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)](/crunchgen/1.md), which makes them considerably more compact than the standard utilities. To build a FreeBSD system where space is critical, */rescue* can be used as a replacement for the standard */bin* and */sbin* directories; simply change */bin* and */sbin* to be symbolic links pointing to */rescue*. Since */rescue* is statically linked, it should also be possible to dispense with much of */usr/lib* in such an environment.

In contrast to its predecessor */stand*, */rescue* is updated during normal FreeBSD source and binary upgrades.

## FILES

- */rescue*

  Root of the **rescue** hierarchy.

## SEE ALSO

[crunchgen(1)](/crunchgen/1.md), [crash(8)](/crash/8.md)

## HISTORY

The **rescue** utilities first appeared in FreeBSD 5.2.

## AUTHORS

The **rescue** system was written by Tim Kientzle ⟨*kientzle@FreeBSD.org*⟩, based on ideas taken from NetBSD. This manual page was written by Simon L. Nielsen ⟨*simon@FreeBSD.org*⟩, based on text by Tim Kientzle ⟨*kientzle@FreeBSD.org*⟩.

## BUGS

Most of the **rescue** tools work even in a fairly crippled system. The most egregious exception is the **rescue** version of [vi(1)](/vi/1.md), which currently requires that */usr* be mounted so that it can access the [termcap(5)](/termcap/5.md) files. Hopefully, a failsafe [termcap(3)](/termcap/3.md) entry will eventually be added into the [ncurses(3)](/ncurses/3.md) library, so that */rescue/vi* can be used even in a system where */usr* cannot immediately be mounted. In the meantime, the **rescue** version of the [ed(1)](/ed/1.md) editor can be used from */rescue/ed* if you need to edit files, but cannot mount */usr*.
