From: Andrew Gaffney Date: Sun, 27 Dec 2009 00:30:32 +0000 (-0600) Subject: Add support for isoboot= option (for Gentoo bug #294268) X-Git-Tag: v3.4.10.908~23 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=24446b0465f54c7b0250fadeae7bcfbcfcaea636;p=genkernel.git Add support for isoboot= option (for Gentoo bug #294268) --- diff --git a/ChangeLog b/ChangeLog index 27eb652..c19f6cd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,10 @@ # Distributed under the GPL v2 # $Id$ + 27 Dec 2009; Andrew Gaffney defaults/initrd.scripts, + defaults/linuxrc: + Add support for isoboot= option (for Gentoo bug #294268) + 26 Dec 2009; Andrew Gaffney defaults/initrd.defaults, defaults/initrd.scripts: Properly apply NFS mount options for Gentoo bug #262915 diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts index df4a7dd..afe4b31 100755 --- a/defaults/initrd.scripts +++ b/defaults/initrd.scripts @@ -72,8 +72,17 @@ findmediamount() { if [ "$#" -gt "0" ] then - [ ! -d "${mntdir}" ] && mkdir -p ${mntdir} 2>/dev/null >/dev/null + if [ -n "${ISOBOOT}" ] + then + mntcddir="${mntdir%${media}}iso" + if [ ! -f ${mntcddir} ] + then + mkdir ${mntcddir} + fi + else + mntcddir=${mntdir} + fi for x in $* do @@ -104,9 +113,18 @@ findmediamount() { # else # mount -r -t auto ${x} ${mntdir} &>/dev/null # fi - mount -r -t ${CDROOT_TYPE} ${x} ${mntdir} >/dev/null 2>&1 + mount -r -t ${CDROOT_TYPE} ${x} ${mntcddir} >/dev/null 2>&1 if [ "$?" = '0' ] then + if [ -n "${ISOBOOT}" ]; then + if [ -f ${mntcddir}/${ISOBOOT} ]; then + mount -o loop ${mntcddir}/${ISOBOOT} ${mntdir} + if [ "$?" = "0" ]; then + good_msg "iso mounted on ${mntdir}" + fi + fi + fi + # Check for the media if [ -f "${mntdir}/${recon}" ] then @@ -115,7 +133,7 @@ findmediamount() { good_msg "Media found on ${x}" ${CRYPT_SILENT} break else - umount ${mntdir} + umount ${mntcddir} fi fi fi diff --git a/defaults/linuxrc b/defaults/linuxrc index 0f47215..0bf7316 100755 --- a/defaults/linuxrc +++ b/defaults/linuxrc @@ -80,6 +80,9 @@ do looptype\=*) LOOPTYPE=`parse_opt "${x}"` ;; + isoboot\=*) + ISOBOOT=`parse_opt "${x}"` + ;; # Start Volume manager options dolvm) USE_LVM_NORMAL=1