Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Aug 2003 07:26:10 +1000
From:      John Birrell <jb@cimlogic.com.au>
To:        Tyler Kellen <tyler@statuo.com>
Cc:        kientzle@acm.org
Subject:   Re: Minimalist FreeBSD 4.8
Message-ID:  <20030827072610.F249@freebsd1.cimlogic.com.au>
In-Reply-To: <001a01c36bff$cff9e840$a700000a@TYBOX>; from tyler@statuo.com on Tue, Aug 26, 2003 at 01:28:14PM -0500
References:  <3F4B9BE0.5010209@acm.org> <001a01c36bff$cff9e840$a700000a@TYBOX>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Aug 26, 2003 at 01:28:14PM -0500, Tyler Kellen wrote:
> What I'd really like to know is how to strip down a working system.  If
> This hasn't been done, I guess I'm looking for someone with the
> knowledge and the time/generosity to help me figure it out.  Once I get
> there, I intend to post it on my website for other converts who may feel
> the same way.

One way to do this initially is to install a full FreeBSD system on one
disk partition and use a second partition for a trial install. FreeBSD's
boot manager will let you boot into each. Start with just a root file
system in the second partition, add /boot and /kernel (we're talking 4.8
here, so the kernel is in the root directory). Try booting the kernel
and watching what errors you get. The first one will be a missing 'init'.

When you find something is missing, reboot from the full system and copy
the missing component to the minimal system. It's trial and error, but
you will soon discover what you need and learn why you need it.

To give you some idea of just how many files you need to start a basic
4.8 system using the standard /etc/rc* scripts, here is a list that I
built up the other day while working on testing a flash file system driver
on 4.8. My goal was just a basic system (without any development tools)
that I could rlogin/telnet/nfs (on a private network). It contains vi, but
not gcc. Adding that is an exercise for the reader. 8-)

/bin/cat
/bin/chio
/bin/chmod
/bin/cp
/bin/date
/bin/dd
/bin/df
/bin/domainname
/bin/echo
/bin/expr
/bin/hostname
/bin/kill
/bin/link
/bin/ln
/bin/ls
/bin/mkdir
/bin/mv
/bin/ps
/bin/pwd
/bin/realpath
/bin/rm
/bin/rmdir
/bin/sh
/bin/sleep
/bin/stty
/bin/sync
/bin/test
/bin/unlink
/boot/boot0
/boot/boot1
/boot/boot2
/boot/cdboot
/boot/defaults/loader.conf
/boot/loader
/boot/loader.4th
/boot/loader.conf
/boot/loader.help
/boot/loader.rc
/boot/mbr
/boot/pxeboot
/boot/support.4th
/dev/MAKEDEV
/dev/MAKEDEV.local
/etc/auth.conf
/etc/defaults/pccard.conf
/etc/defaults/rc.conf
/etc/disktab
/etc/exports
/etc/fstab
/etc/gettytab
/etc/group
/etc/hosts.equiv
/etc/inetd.conf
/etc/login.conf
/etc/master.passwd
/etc/mtree/BSD.var.dist
/etc/newsyslog.conf
/etc/pam.conf
/etc/passwd
/etc/pccard.conf
/etc/pccard_ether
/etc/profile
/etc/protocols
/etc/rc
/etc/rc.conf
/etc/rc.network
/etc/rc.pccard
/etc/rc.serial
/etc/resolv.conf
/etc/rpc
/etc/services
/etc/shells
/etc/spwd.db
/etc/syslog.conf
/etc/ttys
/kernel
/root/.profile
/sbin/adjkerntz
/sbin/disklabel
/sbin/dmesg
/sbin/fdisk
/sbin/fsck
/sbin/halt
/sbin/ifconfig
/sbin/init
/sbin/mknod
/sbin/mount
/sbin/mount_mfs
/sbin/mount_msdos
/sbin/mount_nfs
/sbin/mountd
/sbin/newfs
/sbin/nfsd
/sbin/nfsiod
/sbin/ping
/sbin/reboot
/sbin/route
/sbin/shutdown
/sbin/swapon
/sbin/sysctl
/sbin/umount
/usr/bin/awk
/usr/bin/chflags
/usr/bin/cmp
/usr/bin/cpio
/usr/bin/diff
/usr/bin/find
/usr/bin/grep
/usr/bin/gzip
/usr/bin/login
/usr/bin/mktemp
/usr/bin/more
/usr/bin/sed
/usr/bin/su
/usr/bin/touch
/usr/bin/uname
/usr/bin/vi
/usr/bin/view
/usr/lib/libc.so.4
/usr/lib/libcrypt.so.2
/usr/lib/libcrypto.so.3
/usr/lib/libgnuregex.so.2
/usr/lib/libipsec.so.1
/usr/lib/libmd.so.2
/usr/lib/libmp.so.3
/usr/lib/libncurses.so.5
/usr/lib/libopie.so.2
/usr/lib/libpam.so.1
/usr/lib/librpcsvc.so.2
/usr/lib/libskey.so.2
/usr/lib/libutil.so.3
/usr/lib/libwrap.so.3
/usr/lib/libz.so.2
/usr/lib/pam_cleartext_pass_ok.so
/usr/lib/pam_deny.so
/usr/lib/pam_opie.so
/usr/lib/pam_opieaccess.so
/usr/lib/pam_permit.so
/usr/lib/pam_radius.so
/usr/lib/pam_skey.so
/usr/lib/pam_ssh.so
/usr/lib/pam_tacplus.so
/usr/lib/pam_unix.so
/usr/libexec/getty
/usr/libexec/ld-elf.so.1
/usr/libexec/rlogind
/usr/libexec/telnetd
/usr/sbin/arp
/usr/sbin/chown
/usr/sbin/cron
/usr/sbin/dev_mkdb
/usr/sbin/inetd
/usr/sbin/mtree
/usr/sbin/pccardc
/usr/sbin/pccardd
/usr/sbin/portmap
/usr/sbin/rpc.statd
/usr/sbin/rpc.umntall
/usr/sbin/syslogd
/usr/share/misc/termcap
/usr/share/misc/termcap.db

-- 
John Birrell



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030827072610.F249>