That's not very easy, but I think it's a nice experiment. I wanted to do that for quite a while, but I didn't have the time yet. The most important thing is (of course) to maker the resulting system small enough to fit on one disk. I suppose it's a good idea to create a new partition of 650 MB to test. Than your resulting OS will be small enough and it will be very easy to experiment by mounting this partition read-only. You can use the disto you like, in fact, I know very little of distributions. There are some files the system tries to write to. Like /etc/mtab, by mount, but this problem can be solved with the -n option. The log and spool files, the bash-history files and other files I cannot remember (right now). All these problems will result in error messages, but wont stop the OS from operating. Just experiment a lot.
Don't forget to config the XWindow system for a standard SVGA card. Make enough directories in the /mnt dir for the hard disk(s) of your friends, and (auto) mount them in the boot-prcess. This will impress them a lot. Of course you can make soft-links for the files to be written to files on FAT systems on these hard-disks, and/or make a soft-link from the /home, the /tmp and the /var directories to (UMSDOS-) directories. Just experiment a lot, its fun to see your system getting better and more flexible.
Now comes the kernel part. It's a good idea to compile a new kernel on your new partition, and make (of course) as much modules as possible. Remember that this kernel needs build in support for CD-ROM's and CD-ROM-filesystems! So don't put them in modules. It's always nice to have a kernel in your root-dir (/vmlinuz or /boot/vmlinuz), but the kernel we're going to use will be on a floppy.
I only have experience in one way to make a bootable CD-ROM, so maybe someone else can help you better with this part.
I would do it with Nero, by burning a complete floppy at the beginning of the CD-ROM, before the "real" data-part. Because Nero is a Windows program, the source partition should be UMSDOS, if you want it to do this on my way. I'm open for any new ideas. A benefit of using this method it that you also have an ordinary floppy, to use on systems that cannot boot from CD-ROM (like mine).
I'll suggest, format a floppy with FAT, so you can put LoadLin on it, and when the floppy is still clean, put the kernel on it, in /mnt/floppy/vmlinuz.
Now create a file to instruct Lilo, containing:
boot=/dev/fd0
delay=100
compact
vga=normal
root=/dev/hdc
# On most of the computers, the CDrom is the second IDE master,
# but you can change this at boot-time.
read-only
image = /mnt/floppy/vmlinuz
label=linux
And give the command:
# lilo -C <filename>
Assuming that the floppy is mounted under /mnt/floppy, you will have your bootable disk. At boot time (with the floppy) you can change the root-filesystem by typing after the LILO prompt:
LILO: linux root=/dev/hdd
(or anything else)
Of course you can make this system more flexible by introducing ram-disks and whatever you like, but this is a start.
Please let me know any luck or failures.
gr
Matthieu
|