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