Re: waiting 10s before mounting root filesystem?

From: Jesper Juhl
Date: Wed Dec 29 2004 - 17:46:55 EST


On Wed, 29 Dec 2004, Paulo Marques wrote:

> William Park wrote:
> > [...]
> > I read Documentation/initrd.txt and I don't understand it. If I
> > understand it right, I have to build a complete root filesystem with all
> > the stuffs necessary for mounting the second (real) root filesystem. If
> > I'm loading the kernel from floppy, then I only have 200k to work with.
> > I'll try initrd.txt, step by step over the holidays.
>
> Yes, but if you use "nash" as a script parser and compile everything you need
> static with dietlibc or uClibc (or some other small libc replacement), 200k
> will be plenty to accomplish what you want. You'll probably be able to find
> pre-compiled binaries like these on the net, if you search for them.
>
ash is also a great little shell for stuff like that - it's very close to
bash syntax (which most people are familliar with) and it's resonably
small.

Also, busybox is something you want to take a look at, it's a single
binary that implements tiny versions of a lot of unix utilities - current
version implements these (note it includes a tiny ash shell as well):

addgroup, adduser, adjtimex, ar, arping, ash, awk, basename, bunzip2,
busybox, bzcat, cal, cat, chgrp, chmod, chown, chroot, chvt, clear, cmp,
cp, cpio, crond, crontab, cut, date, dc, dd, deallocvt, delgroup, deluser,
devfsd, df, dirname, dmesg, dos2unix, dpkg, dpkg-deb, du, dumpkmap,
dumpleases, echo, egrep, env, expr, false, fbset, fdflush, fdformat, fdisk,
fgrep, find, fold, free, freeramdisk, fsck.minix, ftpget, ftpput, getopt,
getty, grep, gunzip, gzip, halt, hdparm, head, hexdump, hostid, hostname,
httpd, hush, hwclock, id, ifconfig, ifdown, ifup, inetd, init, insmod,
install, ip, ipaddr, ipcalc, iplink, iproute, iptunnel, kill, killall,
klogd, lash, last, length, linuxrc, ln, loadfont, loadkmap, logger, login,
logname, logread, losetup, ls, lsmod, makedevs, md5sum, mesg, mkdir,
mkfifo, mkfs.minix, mknod, mkswap, mktemp, modprobe, more, mount, msh, mt,
mv, nameif, nc, netstat, nslookup, od, openvt, passwd, patch, pidof, ping,
ping6, pipe_progress, pivot_root, poweroff, printf, ps, pwd, rdate,
readlink, realpath, reboot, renice, reset, rm, rmdir, rmmod, route, rpm,
rpm2cpio, run-parts, rx, sed, seq, setkeycodes, sha1sum, sleep, sort,
start-stop-daemon, strings, stty, su, sulogin, swapoff, swapon, sync,
sysctl, syslogd, tail, tar, tee, telnet, telnetd, test, tftp, time, top,
touch, tr, traceroute, true, tty, udhcpc, udhcpd, umount, uname,
uncompress, uniq, unix2dos, unzip, uptime, usleep, uudecode, uuencode,
vconfig, vi, vlock, watch, watchdog, wc, wget, which, who, whoami, xargs,
yes, zcat

Most of these are ofcourse somewhat limited in functionality compared to
their full-blown cousins, but for use on a initrd busybox can be close to
the only app you need, and you can build it to include or exclude the
commands you need/don't need, so it can get quite tiny.
A static build of busybox with just the commands that you need enabled and
linked against uClibc or similar is what I would use.

Take a look : http://www.busybox.net/


--
Jesper Juhl


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/