On Mon, Mar 26, 2012 at 12:02 PM, Frederick Grose fgrose@gmail.com wrote:
Please note that the current Fedora-17-Beta-TC2-Live images lack some traditional Live CD/USB features.
See this bug report. https://bugzilla.redhat.com/show_bug.cgi?id=740280
/dev/live was a link to the installation partition on the Live USB, such as /dev/sdc1, or /dev/sr0 on a Live CD/DVD.
How would a script determine this partition without human input?
/mnt/live was a convenient mounting of the installation partition filesystem. It allowed easy access to pre-existing content on the Live USB device or to the /LiveOS and /syslinux directories.
The --home-size-mb NNN option of livecd-iso-to-disk produced a /LiveOS/home.img filesystem for the liveuser's home directory.
This feature made possible the --encrypted-home option, which would secure the privacy of a user directory on a Live USB system.
The home.img filesystem was also read/write/delete without consuming the LiveOS overlay. This is important for non-short-term Live USB deployments, such as Sugar on a Stick, where overlay exhaustion can be a significant problem.
Is there a workaround for these (missing) features?
--Fred
This patch restores the lost features:
commit 1580cddaea504efd68c5e10fee70e09d7e81d86b Author: Frederick Grose fgrose@sugarlabs.org Date: Thu Mar 29 16:27:30 2012 -0400
Mount live device on /mnt/live, link it to /dev/live
This enables the mounting of /LiveOS/home.img, if present.
diff --git a/fedora-live-base.ks b/fedora-live-base.ks index 0b14fec..0cf0fb2 100644 --- a/fedora-live-base.ks +++ b/fedora-live-base.ks @@ -88,10 +88,22 @@ touch /.liveimg-configured # Make sure we don't mangle the hardware clock on shutdown ln -sf /dev/null /etc/systemd/system/hwclock-save.service
+findmount() { + local info=() + while read -a info; do + if [[ ${info[4]} == $1 ]]; then + echo ${info[8]} + break; + fi + done < /proc/self/mountinfo +} + # mount live image -if [ -b `readlink -f /dev/live` ]; then +livedev=$(findmount /run/initramfs/live) +if [[ -b $livedev ]]; then mkdir -p /mnt/live - mount -o ro /dev/live /mnt/live 2>/dev/null || mount /dev/live /mnt/live + mount -o ro $livedev /mnt/live 2>/dev/null || mount $livedev /mnt/live + ln -s $livedev /dev/live fi
livedir="LiveOS" @@ -220,7 +232,7 @@ if strstr "`cat /proc/cmdline`" CDLABEL= ; then # io errors due to not being able to get files... #cat /sbin/halt > /dev/null #cat /sbin/reboot > /dev/null -#/usr/sbin/eject -p -m $(readlink -f /dev/live) >/dev/null 2>&1 +#/usr/sbin/eject -p -m $livedev >/dev/null 2>&1 #echo "Please remove the CD from your drive and press Enter to finish restarting" #read -t 30 < /dev/console FOE
On Thu, Mar 29, 2012 at 8:51 PM, Frederick Grose fgrose@gmail.com wrote:
On Mon, Mar 26, 2012 at 12:02 PM, Frederick Grose fgrose@gmail.comwrote:
Please note that the current Fedora-17-Beta-TC2-Live images lack some traditional Live CD/USB features.
See this bug report. https://bugzilla.redhat.com/show_bug.cgi?id=740280
/dev/live was a link to the installation partition on the Live USB, such as /dev/sdc1, or /dev/sr0 on a Live CD/DVD.
How would a script determine this partition without human input?
/mnt/live was a convenient mounting of the installation partition filesystem. It allowed easy access to pre-existing content on the Live USB device or to the /LiveOS and /syslinux directories.
The --home-size-mb NNN option of livecd-iso-to-disk produced a /LiveOS/home.img filesystem for the liveuser's home directory.
This feature made possible the --encrypted-home option, which would secure the privacy of a user directory on a Live USB system.
The home.img filesystem was also read/write/delete without consuming the LiveOS overlay. This is important for non-short-term Live USB deployments, such as Sugar on a Stick, where overlay exhaustion can be a significant problem.
Is there a workaround for these (missing) features?
--Fred
This patch restores the lost features:
commit 1580cddaea504efd68c5e10fee70e09d7e81d86b Author: Frederick Grose fgrose@sugarlabs.org Date: Thu Mar 29 16:27:30 2012 -0400
Mount live device on /mnt/live, link it to /dev/live This enables the mounting of /LiveOS/home.img, if present.
diff --git a/fedora-live-base.ks b/fedora-live-base.ks index 0b14fec..0cf0fb2 100644 --- a/fedora-live-base.ks +++ b/fedora-live-base.ks @@ -88,10 +88,22 @@ touch /.liveimg-configured # Make sure we don't mangle the hardware clock on shutdown ln -sf /dev/null /etc/systemd/system/hwclock-save.service
+findmount() {
- local info=()
- while read -a info; do
if [[ ${info[4]} == $1 ]]; then
echo ${info[8]}
break;
fi
done < /proc/self/mountinfo
+}
# mount live image -if [ -b `readlink -f /dev/live` ]; then +livedev=$(findmount /run/initramfs/live) +if [[ -b $livedev ]]; then mkdir -p /mnt/live
- mount -o ro /dev/live /mnt/live 2>/dev/null || mount /dev/live
/mnt/live
- mount -o ro $livedev /mnt/live 2>/dev/null || mount $livedev /mnt/live
- ln -s $livedev /dev/live
fi
livedir="LiveOS" @@ -220,7 +232,7 @@ if strstr "`cat /proc/cmdline`" CDLABEL= ; then # io errors due to not being able to get files... #cat /sbin/halt > /dev/null #cat /sbin/reboot > /dev/null -#/usr/sbin/eject -p -m $(readlink -f /dev/live) >/dev/null 2>&1 +#/usr/sbin/eject -p -m $livedev >/dev/null 2>&1 #echo "Please remove the CD from your drive and press Enter to finish restarting" #read -t 30 < /dev/console FOE
With Fedora-17.TC2-x86_64-Live-Desktop.iso we have /run/initramfs/livedev as a symlink to the block device for the source partition & /run/initramfs/live as the mount point for that filesystem.
This substitute patch enables the mounting of home.img and swap.img filesystems with the substitute paths:
(Tested as applied to /etc/rc.d/init.d/livesys on an installed Live USB.)
commit e2a04b06093fcea1b0c6ecfc59847adc08d08137 Author: Frederick Grose fgrose@sugarlabs.org Date: Mon Apr 30 00:03:02 2012 -0400
Substitute /run/initramfs/live for /mnt/live.
This is needed to enable mounting of home.img and swap.img in Fedora 17 LiveOS installations.
diff --git a/fedora-live-base.ks b/fedora-live-base.ks index 0b14fec..54df915 100644 --- a/fedora-live-base.ks +++ b/fedora-live-base.ks @@ -88,12 +88,6 @@ touch /.liveimg-configured # Make sure we don't mangle the hardware clock on shutdown ln -sf /dev/null /etc/systemd/system/hwclock-save.service
-# mount live image -if [ -b `readlink -f /dev/live` ]; then - mkdir -p /mnt/live - mount -o ro /dev/live /mnt/live 2>/dev/null || mount /dev/live /mnt/live -fi - livedir="LiveOS" for arg in `cat /proc/cmdline` ; do if [ "${arg##live_dir=}" != "${arg}" ]; then @@ -109,8 +103,9 @@ if ! strstr "`cat /proc/cmdline`" noswap && [ -n "$swaps" ] ; then action "Enabling swap partition $s" swapon $s done fi -if ! strstr "`cat /proc/cmdline`" noswap && [ -f /mnt/live/${livedir}/swap.img ] ; then - action "Enabling swap file" swapon /mnt/live/${livedir}/swap.img +if ! strstr "$(cat /proc/cmdline)" noswap && + [[ -f /run/initramfs/live/${livedir}/swap.img ]] ; then + action "Enabling swap file" swapon /run/initramfs/live/${livedir}/swap.img fi
mountPersistentHome() { @@ -125,8 +120,8 @@ mountPersistentHome() { mountopts="-t jffs2" elif [ ! -b "$homedev" ]; then loopdev=`losetup -f` - if [ "${homedev##/mnt/live}" != "${homedev}" ]; then - action "Remounting live store r/w" mount -o remount,rw /mnt/live + if [[ ${homedev##/run/initramfs/live} != ${homedev} ]]; then + action "Remounting live store r/w" mount -o remount,rw /run/initramfs/live fi losetup $loopdev $homedev homedev=$loopdev @@ -160,8 +155,8 @@ findPersistentHome() {
if strstr "`cat /proc/cmdline`" persistenthome= ; then findPersistentHome -elif [ -e /mnt/live/${livedir}/home.img ]; then - homedev=/mnt/live/${livedir}/home.img +elif [[ -e /run/initramfs/live/${livedir}/home.img ]]; then + homedev=/run/initramfs/live/${livedir}/home.img fi
# if we have a persistent /home, then we want to go ahead and mount it @@ -220,7 +215,7 @@ if strstr "`cat /proc/cmdline`" CDLABEL= ; then # io errors due to not being able to get files... #cat /sbin/halt > /dev/null #cat /sbin/reboot > /dev/null -#/usr/sbin/eject -p -m $(readlink -f /dev/live) >/dev/null 2>&1 +#/usr/sbin/eject -p -m $(readlink -f /run/initramfs/livedev) >/dev/null 2>&1 #echo "Please remove the CD from your drive and press Enter to finish restarting" #read -t 30 < /dev/console FOE
On Mon, Apr 30, 2012 at 12:32 AM, Frederick Grose fgrose@gmail.com wrote:
On Thu, Mar 29, 2012 at 8:51 PM, Frederick Grose fgrose@gmail.com wrote:
On Mon, Mar 26, 2012 at 12:02 PM, Frederick Grose fgrose@gmail.comwrote:
Please note that the current Fedora-17-Beta-TC2-Live images lack some traditional Live CD/USB features.
See this bug report. https://bugzilla.redhat.com/show_bug.cgi?id=740280
{...}
The --home-size-mb NNN option of livecd-iso-to-disk produced a
/LiveOS/home.img filesystem for the liveuser's home directory.
This feature made possible the --encrypted-home option, which would secure the privacy of a user directory on a Live USB system.
The home.img filesystem was also read/write/delete without consuming the LiveOS overlay. This is important for non-short-term Live USB deployments, such as Sugar on a Stick, where overlay exhaustion can be a significant problem.
{...}
Adam Williamson has patched fedora-live-base.ks, but testingFedora-17.TC5-x86_64-Live-SoaS.iso shows that a home.img filesystem is not mounted.
Adam's patches need to be applied to fedora-live-mini.ks in order to fix Sugar on a Stick and any other builds based on fedora-live-mini.ks
Comment added to bug: https://bugzilla.redhat.com/show_bug.cgi?id=740280#c47
--Fred