Messages in this thread | | | Date | Wed, 29 Dec 2004 23:56:51 +0100 (CET) | From | Jesper Juhl <> | Subject | Re: waiting 10s before mounting root filesystem? |
| |
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |