Booting Debian with BKO

I will targetting live cd of debian debian-live-501-i386-gnome-desktop.iso.

progress

It is quite similar to ubuntu live CD, except that casper is called as live here.
One important point is that, debian has support for HTTPFS inbuild. However I could not get my head around it.
One of the thing that I did not understand is that, there was no httpfs executable in initramfs. and they are using that executable in init script's do_httpmount() function. Another point which is not very clear to me is that, my guess is they mounting squashfs image over http and not entire ISO, but I need to confirm this.
I hope that atleast Debian should boot over BKO. After problem from fedora, it is quite de-moralizing as we are having only two working destributions.

Mounting ISO

  1. Just one small issue is that, I have to use squashfs image instead of iso image.
  2. The problem in using iso image is that, once initrd job is (almost) over, it runs /bin/run-init which is binary executable,
    1. It tries to remove initramfs filesystem.
    2. As I am mounting ISO inside initramfs, it also tries to delete this iso, and fails. with this failue the init scripts panics and stop the boot process.

Booting ubuntu in debien environment

Added ubuntu target based on filesystem.squashfs instead of .iso in debian menu. So, debiean kernel and debian initramfs tries to use ubuntu filesystem.squashfs. It boots sucessfully but gets confused after some time and keeps doing same thing again and again. It keeps looping inside step Generating locales… and never completes it.

Solution

I was thinking about creating seperate initrd with run-init from ubuntu.

Reproducing debien environment for ubuntu

  1. Modified the code of ubuntu casper script to support mount filesystem.squashfs instead of .iso, this gives different error when I mount .iso. Error is run-init: nuking initramfs contents: Directory not empty
  2. This is same error that I get when I use .iso with debian.
  3. This error was mentioned here with solution. But when I tried that solution, it did not worked