xref: /freebsd/rescue/README (revision 8aac90f18aef7c9eea906c3ff9a001ca7b94f375)
1The /rescue build system here has three goals:
2
31) Produce a reliable standalone set of /rescue tools.
4
5The contents of /rescue are all statically linked and do not depend on
6anything in /bin or /sbin.  In particular, they'll continue to
7function even if you've hosed your dynamic /bin and /sbin.  For
8example, note that /rescue/mount runs /rescue/mount_nfs and not
9/sbin/mount_nfs.  This is more subtle than it looks.
10
11As an added bonus, /rescue is fairly small (thanks to crunchgen) and
12includes a number of tools (such as gzip, bzip2, vi) that are not
13normally found in /bin and /sbin.
14
152) Demonstrate robust use of crunchgen.
16
17These Makefiles recompile each of the crunchgen components and include
18support for overriding specific library entries.  Such techniques
19should be useful elsewhere.
20
213) Produce a toolkit suitable for small distributions.
22
23Install /rescue on a CD or CompactFlash disk, and symlink /bin and
24/sbin to /rescue to produce a small and fairly complete FreeBSD
25system.
26
27These tools have one big disadvantage: being statically linked, they
28cannot use some advanced library functions that rely on dynamic
29linking.  In particular, nsswitch, locales, and pam all
30rely on dynamic linking.
31
32
33To compile:
34
35# cd /usr/src/rescue
36# make obj
37# make
38# make install
39
40Note that rebuilds don't always work correctly; if you run into
41trouble, try 'make clean' before recompiling.
42