Table of Contents
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
- Just one small issue is that, I have to use squashfs image instead of iso image.
- The problem in using iso image is that, once initrd job is (almost) over, it runs
/bin/run-init
which is binary executable,- It tries to remove initramfs filesystem.
- 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
- Modified the code of ubuntu
casper
script to support mountfilesystem.squashfs
instead of.iso
, this gives different error when I mount.iso
. Error isrun-init: nuking initramfs contents: Directory not empty
- This is same error that I get when I use
.iso
with debian. - This error was mentioned here with solution. But when I tried that solution, it did not worked