[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
UMCE linux bootcd scripts
It seemed at the umce.linux.makeworld meeting that it would
be useful to send out more detailed information on the make bootcd
scripts I wrote. I think this might possibly be of interest to
others as well, so I'm posting this to umce.linux instead.
contains a copy of the files and scripts that I used to make a bootcd.
is not really part of the rest, but is the result of doing
"fsdiff" on the contents of rd-base which is the filesystem
you see after the cd boots. That includes all 6210 files worth.
This may suffice if you only want a file manifest.
The overall strategy:
make an bootable iso image (bootcd.iso, size 51 M total.)
which contains a big ramdisk image (rd-base.bz2) of
a minimal single user system
(87 M -> 29 M compressed)
a small "initrd" image containing just enough intelligence to
temporarily mount the cdrom and copy the big ramdisk image
into ram. (34 M -> 14 M compressed)
and the kernel, syslinux, memtest86, and other small bits.
Adding an extra transcript (or software package) is not very scary:
(for now) to add transcript.
to remove any bits of package not needed.
Some of the below could be simplified: at least one step isn't
needed, and other bits should go into radmind transcripts.
Here's the files themselves (about 50):
mostly scripts that go into initrd.img
mostly scripts that go into rd-base
test: use chroot to emulate rd-base runtime environment
top level "make everything" script.
run radmind to populate rd-base with 400 M of stuff.
For various reasons uses locally provided command.K
instead of what the server gave.
list the transcripts ACTUALLY used to make the cd.
(must be subset of what's really in radmind.
With slight change can just use what's in radmind.)
run fixrd10 through fixrd90
make a few necessary files (could be in radmind)
copy a few bits from rd-base into c before they disappear.
run man pages through catman; make result work.
remove a *bunch* of stuff.
strip every executable and shared file left.
replace passwd, fstab, inittab
NOT NEEDED: analyze library dependencies (turns out
enough libraries are needed that this saves no space.)
copy stuff from rd-base.scripts
NOT DESIRABLE: do evil things with certs. Future
boot cds aren't supposed to have any certs in the
first place, so YOU don't want this.
edit discover's file list because kernel changed.
initialize initrd, copy files from rd-base
run fixinit10, fixinit20
copy subset of kernel modules into initrd, run depmod
copy discover into initrd
list of files copied from initrd to rd-base
make copy of all these scripts
make c/initrd.img using data from initrd.dir
make c/rd-base.bz2 using data from rd-base
make iso filesystem using contents of c
analyze kernel module dependencies, find
those that could identify networking.
because bash is a pig
memory test, probably requires vga
If you want a copy of the actual bootcd, send me mail and cc mjsager.
I have some small edits to the above, but I hope to entice mjsager
to use this for the next real distribution bootcd.