Debian’s bootcd allows you to make a bootable ISO image from a running Debian system, literally. It will be an identical copy (wrt packages installed) of the running system. There are options to make configuration changes as necessary (IP addresses, for example). Debian Administration has a short article about it. I’m creating my first ISO now, we’ll see how it goes.
My first ISO didn’t boot. The kernel panicked because it couldn’t mount the root filesystem. The last three lines of output:
Begin: Mounting root filesystem... ...
/init: /init: 151: Syntax error: 0xauto
Kernel panic - not syncing: Attempted to kill init!
This is caused by the default Debian kernel including the CD-ROM drivers as modules, thereby requiring their presence in an initial ram disk (initrd). The default initrd is not properly structured to allow for booting from the CD. The bootcd maintainers thought of this. I did an `aptitude install bootcd-mkinitramfs discover` and then tried again. The resulting ISO booted nicely, though it would have been nice if the documentation for bootcd was more explicit that the bootcd-mkinitramfs package was necessary.
I still have three more issues to resolve:
1. My NIC came up as eth1 instead of eth0; see my next post.
2. The ISO included a compressed root filesystem. My ISO was only 200MB so I’m hoping the whole system will fit without compression. I set COMPRESS=”no” in /etc/bootcd/bootcdwrite.conf.
3. My files in /var/www were gone; they are now in /var.ro/www. Apache doesn’t like that. I moved www to /home/www and made sure it wouldn’t be included in NOT_TO_RAM. I could have tried to monkey around with symlinks but I want the performance of serving out of RAM.