Using squashfs on /usr for a live cd

Kevin Annies kevinannies at
Mon Feb 5 10:39:27 PST 2007


I have a bootable cd which I am regularly updating but now space is a concern I would like to implement squashfs. I have implemented it on a static system and totally understand the theory of how it works. The part I can't work out is the following:

I am using an initial ram disk. As usual I have a file called linuxrc which gets executed,

Most of the file executes successfully. However here we go....

The following last few lines of the file are key to what make the livecd live

 mount -n -o ro -t iso9660 $LFS_CDROM_DEVICE $TMP_MOUNT
  pivot_root . mnt
  umount -n /mnt/proc >/dev/null 2>&1
  mount /usr.sqsh /usr -o loop
  exec chroot . sh -c 'umount -n /mnt >/dev/null 2>&1;
                exec -a /sbin/init 3' dev/console 2>&1

I have inserted the mount usr.sqsh command at this point because the following chroot command is executed from the just newly mounted / system. The pain is the chroot binary happens to be in /usr/bin which at this time is compressed. However, the archive does not uncompress at this time becuase the loop device does not exist on the initrd. I could try adding it but then woulit not become invalid as soon as I chroot? SO should I put the mount command in twice as a result or perhaps use a mount bind type of command? In addition could I add a second mount into one of the rc.d scripts?

I have also had a reference to instead use initramfs but am reluctant to go this route until I understand it better, do you suggest any material to read?

Appreciate any comments.



Live Search: Better results, fast

More information about the livecd mailing list