Hello,
with persistent=nofiles the devices weren't all scanned, while with just persistent they where. It seemed that the break statement in live-helpers was preventing that from happening. I've removed the break, so every device is scanned and only try to mount partitions if persistent != nofiles. I can confirm that with this patch a partition labeled home-rw will be mounted with either persistent or persistent=nofiles. In the tar.gz file is the debug live.log file using persistent=nofiles and /dev/hda2 labeled home-rw with patched live-helpers. Using latest live-snapshots: ii live-helper 1.0.5+20090630.183258 Debian Live build scripts ii live-initramfs 1.157.2+20090701.151430 Debian Live initramfs hook Rui M. P. Bernardo
--- /usr/share/initramfs-tools/scripts/live-helpers 2009-07-07 16:15:39.000000000 +0100 +++ config/chroot_local-includes/usr/share/initramfs-tools/scripts/live-helpers 2009-07-27 10:15:01.000000000 +0100 @@ -363,32 +363,30 @@ return 0 fi - if [ "${PERSISTENT}" = "nofiles" ] + if [ "${PERSISTENT}" != "nofiles" ] then - # do not mount the device to find for image files - # just skip this - break + case "$(get_fstype ${devname})" in + vfat|ext2|ext3|ext4|jffs2) + + mkdir -p "${cow_backing}" + if ! try_mount "${devname}" "${cow_backing}" "rw" + then + break + fi + + if [ -f "${pers_fpath}" ] + then + echo $(setup_loop "${pers_fpath}" "loop" "/sys/block/loop*") + return 0 + else + umount ${cow_backing} + fi + ;; + *) + ;; + esac fi - case "$(get_fstype ${devname})" in - vfat|ext2|ext3|ext4|jffs2) - mkdir -p "${cow_backing}" - if ! try_mount "${devname}" "${cow_backing}" "rw" - then - break - fi - - if [ -f "${pers_fpath}" ] - then - echo $(setup_loop "${pers_fpath}" "loop" "/sys/block/loop*") - return 0 - else - umount ${cow_backing} - fi - ;; - *) - ;; - esac done done return 1
live.persistent_nofiles_patched.log.tar.gz
Description: GNU Zip compressed data