Linux Live scripts Requirements by Tomas M. http://www.linux-live.org To be able to create a Linux Live CD, your kernel must meet all the requirements noted below. Sample kernel config file can be found in ./DOC/config/.config.kernel If you don't wish to compile anything, go to www.linux-live.org and download precompiled Linux kernel with everything included. * Your distro must use kernel 2.6.9 or higher * udev must be installed and working in your distribution (because devices from /dev are not copied to LiveCD) * all the following things must be compiled directly into kernel: (these options are usually compiled so you shouldn't have problems) - ext2 (CONFIG_EXT2_FS=y) - tmpfs (CONFIG_TMPFS=y) - ramdisk (CONFIG_BLK_DEV_RAM=y) - initrd (CONFIG_BLK_DEV_INITRD=y) You can use untouched Vanila Linux kernel 2.6 from Slackware! but in that case you have to compile unionfs and squashfs modules yourself * all the following things must be compiled in the kernel or must be available as a kernel modules (.ko): - loop (else mount -o loop won't work) - zlib_inflate (used by squashfs module) - isofs (if you will boot your live distro from CDROM) - ehci-hcd, ohci-hcd, uhci-hcd, usb-storage (if you will boot your live distro from USB) * all these modules must be available: - unionfs.ko (http://www.filesystems.org/project-unionfs.html) - squashfs.ko (http://squashfs.sourceforge.net) If you compile them yourself, make sure unionfs.ko doesn't contain debug info so it can fit 4MB initrd image. Copy your .ko modules to linux live scripts to ./initrd/kernel-modules/2.6.* (create the dir!) In general, you don't need to compile anything unless you wish to use some own kernel configuration, or you wish to use newer version of squashfs or unionfs. * Your distro must have /usr/bin/chroot or /usr/sbin/chroot * You must modify your distro to NOT test the status of root directory (whether it is (is not) writable). For example, Slackware is testing the status of the root partition during boot and if it's read-write, it will display a message and will wait for user input. This is something we don't like, right? Unionfs can't be remounted ro, so I can't avoid this in linux live scripts. I have to patch Slackware rc scripts (rc.S) to skip the test. You will need to do something similar for your distro. * some distributions can't handle compressed kernel modules well, for example debian-based distros like debian itself or ubuntu In this case, modify 'config' file and disable gzipping (set COMPRESS=0) These requirements could change with new kernel or unionfs versions.