Bug #351873: More livecd control, and initramfs livecd argument documentation.
authorRobin H. Johnson <robbat2@gentoo.org>
Sat, 13 Oct 2012 22:52:42 +0000 (22:52 +0000)
committerRobin H. Johnson <robbat2@gentoo.org>
Sat, 13 Oct 2012 22:52:42 +0000 (22:52 +0000)
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
ChangeLog
defaults/initrd.defaults
defaults/initrd.scripts
defaults/linuxrc
doc/genkernel.8.txt

index 6204a06a9347cc9a870e06ab1dd66468c122da86..05484d9638760eb1830f79d73688b9a6e0d096eb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,11 @@
 # Distributed under the GPL v2
 # $Id$
 
+  13 Oct 2012; Robin H. Johnson <robbat2@gentoo.org> defaults/initrd.defaults,
+  defaults/initrd.scripts, defaults/linuxrc, doc/genkernel.8.txt:
+  Bug #351873: More livecd control, and initramfs livecd argument
+  documentation.
+
   13 Oct 2012; Robin H. Johnson <robbat2@gentoo.org> arch/alpha/kernel-config,
   arch/ppc/kernel-config, arch/x86/kernel-config, arch/x86_64/kernel-config,
   defaults/kernel-config:
index 73fe4c96c9f3d08ff93abe3d320916c022b65fbb..90f73f4c8d7a0e59408ac2c9faaa7cddcaf9d392 100755 (executable)
@@ -67,12 +67,15 @@ else
 fi
 
 REAL_ROOT=''
+CONSOLE='/dev/console'
+NEW_ROOT='/newroot'
 CDROOT='0'
 CDROOT_DEV=''
 CDROOT_TYPE='auto'
-NEW_ROOT='/newroot'
 CDROOT_PATH='/mnt/cdrom'
-CONSOLE='/dev/console'
+# This is the file that the cdroot will be checked for as a
+# marker. It must exist RELATIVE to the cdroot.
+CDROOT_MARKER='/livecd'
 
 LOOPS='/livecd.loop /zisofs /livecd.squashfs /image.squashfs /livecd.gcloop'
 
index 03e61e0955dcd32f18bccbf6d0352a011c817d0c..227fc992a84782ab219f4cf06d32a87ed0e76482 100755 (executable)
@@ -159,7 +159,7 @@ bootstrapCD() {
        # a bunch of extra devices
        [ -n "${CDROOT_DEV}" ] && DEVICES="${CDROOT_DEV}"
 
-       findmediamount "cdrom" "${SUBDIR}/livecd" "REAL_ROOT" "${CDROOT_PATH}" ${DEVICES}
+       findmediamount "cdrom" "${SUBDIR}/${CDROOT_MARKER}" "REAL_ROOT" "${CDROOT_PATH}" ${DEVICES}
 }
 
 bootstrapKey() {
index 011505c8d63c8fd7da82a6778213fcbe0d680cee..54a57c6e4fab73021ae081080cd6bd759d457510 100755 (executable)
@@ -39,6 +39,7 @@ FAKE_ROOT=''
 REAL_ROOTFLAGS=''
 ROOTFSTYPE='auto'
 CRYPT_SILENT=0
+
 mkdir -p /etc/cmdline /etc/modprobe.d
 for x in ${CMDLINE}
 do
@@ -69,6 +70,9 @@ do
                cdroot_type=*)
                        CDROOT_TYPE=${x#*=}
                ;;
+               cdroot_marker=*)
+                       CDROOT_MARKER=${x#*=}
+               ;;
                # Start livecd loop, looptype options
                loop=*)
                        LOOP=${x#*=}
@@ -657,7 +661,7 @@ then
        # If encrypted, find key and mount, otherwise mount as usual
        if [ -n "${CRYPT_ROOT}" ]
        then
-               CRYPT_ROOT_KEY="$(head -n 1 "${CDROOT_PATH}"/livecd)"
+               CRYPT_ROOT_KEY="$(head -n 1 "${CDROOT_PATH}"/${CDROOT_MARKER})"
                CRYPT_ROOT='/dev/loop0'
                good_msg 'You booted an encrypted livecd' "${CRYPT_SILENT}"
 
index 912f899fc0ca3c2a14babb8c9a326a4e4cb0bf54..6376e2809bbcdaab5134923555c532355624d22b 100644 (file)
@@ -551,11 +551,21 @@ which the ramdisk scripts would recognize.
 
 *cdroot*[=<...>]::
 *cdroot_type*=<...>::
-    TO BE DOCUMENTED
+*cdroot_marker*=<...>::
+    Used for LiveCDs. *cdroot* without arguments will cause the initramfs to
+    scan all devices for a LiveCD. An argument to *cdroot* will cause it to
+    scan only that device. A LiveCD is any device containing a file with the
+    name & Path of *cdroot_marker* (default of "/livecd"). *cdroot_type*
+    (default of "auto") is the filesystem type to use while mounting devices
+    to check. On success, the LiveCD will be mounted at $CDROOT_PATH.
 
 *loop*=<...>::
 *looptype*=<...>::
-    TO BE DOCUMENTED
+    Used for LiveCDs. After mounting the LiveCD or ISO, look for a file at
+    *loop*=path to use as a loopback image for the main type. Mount it with
+    filesystem type *looptype*. Possible values for *looptype*: normal,
+    squashfs, gcloop, zisofs, noloop, sgimips. If *looptype* is not specified,
+    a guess is made, based on the name or extension of *loop*.
 
 *isoboot*=<...>::
     Loop-mount an ISO file from the boot device to get the filesystem image.