path: root/rescue/README
diff options
authorGordon Tetlow <gordon@FreeBSD.org>2003-06-29 18:35:37 +0000
committerGordon Tetlow <gordon@FreeBSD.org>2003-06-29 18:35:37 +0000
commit884c25d15a315711e0a9dc1efbbf42829746cf09 (patch)
tree0754f4a5c813bf14e8452456b036099cbbec48c5 /rescue/README
parent3c9b8563579fd04ca520af3f84316761e528a65e (diff)
Add /rescue bits. This basically encompasses all of bin and sbin along
with a couple of bits from usr.bin in a crunchgen'd binary. Submitted by: Tim Kientzle <kientzle@acm.org>
Notes: svn path=/head/; revision=117035
Diffstat (limited to 'rescue/README')
1 files changed, 44 insertions, 0 deletions
diff --git a/rescue/README b/rescue/README
new file mode 100644
index 000000000000..3a8cb463fe5e
--- /dev/null
+++ b/rescue/README
@@ -0,0 +1,44 @@
+The /rescue build system here has three goals:
+1) Produce a reliable standalone set of /rescue tools.
+The contents of /rescue are all statically linked and do not depend on
+anything in /bin or /sbin. In particular, they'll continue to
+function even if you've hosed your dynamic /bin and /sbin. For
+example, note that /rescue/mount runs /rescue/mount_nfs and not
+/sbin/mount_nfs. This is more subtle than it looks.
+As an added bonus, /rescue is fairly small (thanks to crunchgen) and
+includes a number of tools (such as gzip, bzip2, vi) that are not
+normally found in /bin and /sbin.
+2) Demonstrate robust use of crunchgen.
+These Makefiles recompile each of the crunchgen components and include
+support for overriding specific library entries. Such techniques
+should be useful elsewhere. For example, boot floppies could use this
+to conditionally compile out features to reduce executable size.
+3) Produce a toolkit suitable for small distributions.
+Install /rescue on a CD or CompactFlash disk, and symlink /bin and
+/sbin to /rescue to produce a small and fairly complete FreeBSD
+These tools have one big disadvantage: being statically linked, they
+cannot use some advanced library functions that rely on dynamic
+linking. In particular, nsswitch, locales, and pam are likely to all
+rely on dynamic linking in the near future.
+To compile:
+# cd /usr/src/rescue
+# make obj
+# make
+# make install
+Note that rebuilds don't always work correctly; if you run into
+trouble, try 'make clean' before recompiling.