Microdrive is basically a set of scripts which you can use to make your own live linux cd.
It depends on busybox, isolinux and linux of course.
I am planning to build a small bunch of diskless, monitorless, keyboardless nodes to do my rendering work [3D]. For them to run, I have various options but live cd seem to be most trouble free.
But then I couldn't find a live cd, that more or less faithfully follows a ordinary installed linux system. They seem to use squashfs or unionfs or some other form of pseudo writable file systems. I couldn't even get the slax to show me a screen. I am sure it is to do with my laptop graphics card.
But it sort of inspired me to make my own live cd, so I can match the components to the same library versions of my installed systems.
To this end instead of making a single cd, I broke the work needed in to a set of scripts so that the whole thing is manageable and reusable.
Hopefully it will be useful to someone else out there.
To make a live cd :
1. Get the Microdrive Linux Live script set from above.
2. Untar the files to a directory.
3. Make a kernel appropriate for live cd.
needs initrd, ramdisk and ext2
preferably also support basic devices as below. [ cd, devfs, framebuffer, vesa etc ]
No hard and fast rules. Afterall it's your damn cd!
4. Copy the kernel to ./src/bzImage .
5. Download busybox source tarball and put it in ./src .
6. Download syslinux source tarball and put it in ./src .
7. Run the scripts listed in ./scripts directory. [ Please note. Don't cd in to scripts directory. Rather run them as ./scripts/SCRIPT_NAME . All the scripts assume that they are working from directory where ./src and ./scripts ./doc etc are the sub directories.]
8. The purpose of scripts [ At first run them in this order as well ] :
./scripts/make-prelim-dirs : This will make all the necessary directories such as itree - where the initrd image will be made. cdtree - whatever is here will endup on cd. cdtree/zz - whatever other software you want to install, install it here. Also /etc/rc.d/links on the live cd will link lib, usr, etc, etc/X11/* from here to the live system during runtime. cdtree/isolinux - where the initrd.img, isolinux end up.
./scripts/build-busybox : This will build and install busybox in to itree. Will also chmod u+s the busybox library.
./scripts/build-isolinux : Well, guess what.
./scripts/find-libs : After installing the busybox binaries, you will ofcourse need the libraries i:e; libc, libm, ld-so etc. Well, this does exactly that. It cannibalises them from your host system.
./scripts/install-base : This will install a basic /itree/etc to go in to initrd.img. You can customize the actions there to your hearts content.
./scripts/update-itree : As root, this will ldconfig the libs in itree. Then chroot's to the itree. You should get a shell. If it doesn't work here, it ain't gonna work on the cd.
./scripts/make-initrd : You need to run this as root. Please read the script before reaching out for the "su" . It will create a initrd.img from itree/ and puts it in cdtree/isolinux/ . This is what the kernel from live cd loads and feels content that it has a root file system.
./scripts/make-iso : Finally ! . Make a iso9660 bootable image to burn to cd or cdrw.
9. In other words :
./scripts/update-itree [ as root ]
./scripts/make-initrd [ as root ]
What's New in This Release:
· Updated for the new kernel.
· No devfs now.