[Bug 1279106] [NEW] Customized LiveUSB setup cannot handle persistence

LVU Valentin.Lavrinenko at gmail.com
Tue Feb 11 22:25:45 UTC 2014


Public bug reported:

I'm making a LiveUSB with xubuntu-13.10-desktop-i386 as one of the OSes.
It happens that specifying live-media kernel parameter with UUID breaks
the find_cow_device() function in casper-helpers script.

Here are my syslinux params ("break=casper-bottom vga=normal nomodeset"
are there for debugging, of course):

    KERNEL /os/xubuntu/casper/vmlinuz
    APPEND file=/os/xubuntu/preseed/xubuntu.seed boot=casper initrd=/os/xubuntu/casper/initrd.lz live-media=/dev/disk/by-uuid/DD9D-5941 live-media-path=os/xubuntu/casper persistent persistent-path=os/xubuntu/casper break=casper-bottom vga=normal nomodeset --

What we get after break:

casper.log:
        Begin: Running /scripts/casper-premount ... done.
        done.
        mount: mounting /dev/sda1 on /casper-rw-backing failed: Device or resource busy
        Warning: Unable to find the persistent medium      
        mount: mounting /dev/sda1 on /home-rw-backing failed: Device or resource busy
        Warning: Unable to find the persistent home medium
        /init: line 7: can't open /dev/fd0: No such device or address        
        mount: mounting /dev/sda1 on /casper-sn-backing failed: Device or resource busy
        Warning: Impossible to include the casper-sn Snapshot
        /init: line 7: can't open /dev/fd0: No such device or address    
        mount: mounting /dev/sda1 on /home-sn-backing failed: Device or resource busy
        Warning: Impossible to include the home-sn Snapshot
        done.            
        Begin: Creating debconf-communicate fifo mechanism ... done.
        Spawning shell within the initramfs

/proc/mounts:
        rootfs / rootfs rw 0 0
        sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
        proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
        udev /dev devtmpfs rw,relatime,size=503316k,nr_inodes=125829,mode=755 0 0
        devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
        tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=102640k,mode=755 0 0
        /dev/disk/by-uuid/DD9D-5941 /cdrom vfat ro,noatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 0
        /dev/loop0 /root/rofs squashfs ro,noatime 0 0
        tmpfs /cow tmpfs rw,noatime,mode=755 0 0
        /cow /root overlayfs rw,relatime,lowerdir=//filesystem.squashfs,upperdir=/cow 0 0


I've investigated the issue; the source of the problem is that the where_is_mounted() function in casper-helpers doesn't recognize that /dev/disk/by-uuid/DD9D-5941 is a symlink to /dev/sda1, and thus the try_mount() function attempts to do an actual mount instead of bind, which, of course, fails.

The solution to this should be replacing the live-media argument with
uuid, like this:

       APPEND file=/os/xubuntu/preseed/xubuntu.seed boot=casper
initrd=/os/xubuntu/casper/initrd.lz uuid=DD9D-5941 live-media-
path=os/xubuntu/casper persistent persistent-path=os/xubuntu/casper
break=casper-bottom vga=normal nomodeset --

so that casper looks for the proper block device by itself. But this
doesn't work either. In this case we repeatedly get the following lines
in the console:

        calling: test-builtin
        error reading /lib/udev/hwdb.bin: No such file or directory
        load module index
        unload module index

After lots of repetitions, we finally get the "Unable to find a medium
containing a live file system" message.

This happens in the is_nice_device() function of casper script, when
executing "udevadm test-builtin path_id". Adding the hwdb.bin file from
squashfs to the initrd.lz doesn't help either. Looks like casper isn't
compatible with the current udevadm.

The provided patch addresses both these issues, although I'm not sure if
the second one is solved correctly. Please take a look.

** Affects: casper (Ubuntu)
     Importance: Undecided
         Status: New

** Patch added: "casper-initrd.patch"
   https://bugs.launchpad.net/bugs/1279106/+attachment/3977736/+files/casper-initrd.patch

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to casper in Ubuntu.
https://bugs.launchpad.net/bugs/1279106

Title:
  Customized LiveUSB setup cannot handle persistence

Status in “casper” package in Ubuntu:
  New

Bug description:
  I'm making a LiveUSB with xubuntu-13.10-desktop-i386 as one of the
  OSes. It happens that specifying live-media kernel parameter with UUID
  breaks the find_cow_device() function in casper-helpers script.

  Here are my syslinux params ("break=casper-bottom vga=normal
  nomodeset" are there for debugging, of course):

      KERNEL /os/xubuntu/casper/vmlinuz
      APPEND file=/os/xubuntu/preseed/xubuntu.seed boot=casper initrd=/os/xubuntu/casper/initrd.lz live-media=/dev/disk/by-uuid/DD9D-5941 live-media-path=os/xubuntu/casper persistent persistent-path=os/xubuntu/casper break=casper-bottom vga=normal nomodeset --

  What we get after break:

  casper.log:
          Begin: Running /scripts/casper-premount ... done.
          done.
          mount: mounting /dev/sda1 on /casper-rw-backing failed: Device or resource busy
          Warning: Unable to find the persistent medium      
          mount: mounting /dev/sda1 on /home-rw-backing failed: Device or resource busy
          Warning: Unable to find the persistent home medium
          /init: line 7: can't open /dev/fd0: No such device or address        
          mount: mounting /dev/sda1 on /casper-sn-backing failed: Device or resource busy
          Warning: Impossible to include the casper-sn Snapshot
          /init: line 7: can't open /dev/fd0: No such device or address    
          mount: mounting /dev/sda1 on /home-sn-backing failed: Device or resource busy
          Warning: Impossible to include the home-sn Snapshot
          done.            
          Begin: Creating debconf-communicate fifo mechanism ... done.
          Spawning shell within the initramfs

  /proc/mounts:
          rootfs / rootfs rw 0 0
          sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
          proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
          udev /dev devtmpfs rw,relatime,size=503316k,nr_inodes=125829,mode=755 0 0
          devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
          tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=102640k,mode=755 0 0
          /dev/disk/by-uuid/DD9D-5941 /cdrom vfat ro,noatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 0
          /dev/loop0 /root/rofs squashfs ro,noatime 0 0
          tmpfs /cow tmpfs rw,noatime,mode=755 0 0
          /cow /root overlayfs rw,relatime,lowerdir=//filesystem.squashfs,upperdir=/cow 0 0

  
  I've investigated the issue; the source of the problem is that the where_is_mounted() function in casper-helpers doesn't recognize that /dev/disk/by-uuid/DD9D-5941 is a symlink to /dev/sda1, and thus the try_mount() function attempts to do an actual mount instead of bind, which, of course, fails.

  The solution to this should be replacing the live-media argument with
  uuid, like this:

         APPEND file=/os/xubuntu/preseed/xubuntu.seed boot=casper
  initrd=/os/xubuntu/casper/initrd.lz uuid=DD9D-5941 live-media-
  path=os/xubuntu/casper persistent persistent-path=os/xubuntu/casper
  break=casper-bottom vga=normal nomodeset --

  so that casper looks for the proper block device by itself. But this
  doesn't work either. In this case we repeatedly get the following
  lines in the console:

          calling: test-builtin
          error reading /lib/udev/hwdb.bin: No such file or directory
          load module index
          unload module index

  After lots of repetitions, we finally get the "Unable to find a medium
  containing a live file system" message.

  This happens in the is_nice_device() function of casper script, when
  executing "udevadm test-builtin path_id". Adding the hwdb.bin file
  from squashfs to the initrd.lz doesn't help either. Looks like casper
  isn't compatible with the current udevadm.

  The provided patch addresses both these issues, although I'm not sure
  if the second one is solved correctly. Please take a look.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/casper/+bug/1279106/+subscriptions



More information about the foundations-bugs mailing list