1 #! /bin/sh /usr/share/dpatch/dpatch-run
2 ## 07_support_findiso.dpatch by Michael Schierl <schierlm@gmx.de>
4 ## All lines beginning with `## DP:' are a description of the patch.
5 ## DP: support for findoiso bootoption
6 # When booting with findiso=/grml_2010.05.iso, it will look for
7 # that .iso file on all disks where it usually looks for the .squashfs
8 # file. When it is found, the disk containing the iso is read-only mounted
9 # as /live/findiso (and exposed there after boot completed). The squashfs
10 # file is searched inside that ISO file then.
13 Index: live-boot-grml/scripts/live
14 ===================================================================
15 --- live-boot-grml.orig/scripts/live 2011-12-06 21:34:27.000000000 +0100
16 +++ live-boot-grml/scripts/live 2011-12-06 21:48:28.000000000 +0100
22 + FINDISO="${ARGUMENT#findiso=}"
27 FORCEPERSISTENTFSCK="Yes"
28 export FORCEPERSISTENTFSCK
29 @@ -1759,6 +1764,21 @@
30 mount -t ${fstype} -o ro,noatime "${devname}" ${mountpoint} || continue
31 [ -n "$devuid" ] && echo "$devuid" >> $tried
33 + if [ -n "${FINDISO}" ]
35 + if [ -f ${mountpoint}/${FINDISO} ]
37 + umount ${mountpoint}
38 + mkdir /live/findiso -p
39 + mount -t ${fstype} -o ro,noatime "${devname}" /live/findiso
40 + loopdevname=$(setup_loop "/live/findiso/${FINDISO}" "loop" "/sys/block/loop*" 0 "")
41 + devname="${loopdevname}"
42 + mount -t iso9660 -o ro,noatime "${devname}" ${mountpoint}
44 + umount ${mountpoint}
48 if is_live_path ${mountpoint} && \
49 ([ "${skip_uuid_check}" ] || matches_uuid ${mountpoint})
51 @@ -2046,6 +2066,22 @@
52 # when booting FAI, this simple workaround solves it
53 ls /root/* >/dev/null 2>&1
55 + # Move findiso directory to the new root filesystem so that programs there can get at it.
56 + if [ -d /live/findiso -a ! -d /root/live/findiso ]
58 + mkdir -p /root/live/findiso
59 + mount -n --move /live/findiso /root/live/findiso
62 + # if we do not unmount the ISO we can't run "fsck /dev/ice" later on
63 + # because the mountpoint is left behind in /proc/mounts, so let's get
64 + # rid of it when running from RAM
65 + if [ -n "$FINDISO" ] && [ "${TORAM}" ]
67 + losetup -d /dev/loop0
68 + grep -q /live/findiso /proc/mounts && umount /root/live/findiso
71 # copy snapshot configuration if exists
72 if [ -f snapshot.conf ]