diff options
author | Fernando Reyes (likewhoa) <design@missionaccomplish.com> | 2014-06-23 19:58:33 +0200 |
---|---|---|
committer | Rick Farina (Zero_Chaos) <zerochaos@gentoo.org> | 2015-04-29 13:31:45 -0400 |
commit | 935febab43502bfd27a0b18d2d4e0cc99a8a4b11 (patch) | |
tree | 48c816f84fe22b5e6058e8c4ca655c7d441c556b | |
parent | Fixes a bug introduced by 8405e23 that broke none AUFS boots (diff) | |
download | genkernel-935febab43502bfd27a0b18d2d4e0cc99a8a4b11.tar.gz genkernel-935febab43502bfd27a0b18d2d4e0cc99a8a4b11.tar.bz2 genkernel-935febab43502bfd27a0b18d2d4e0cc99a8a4b11.zip |
Coding style changes throughout all the AUFS related code.
-rwxr-xr-x | defaults/initrd.defaults | 4 | ||||
-rw-r--r-- | defaults/initrd.scripts | 179 | ||||
-rw-r--r-- | defaults/linuxrc | 227 |
3 files changed, 188 insertions, 222 deletions
diff --git a/defaults/initrd.defaults b/defaults/initrd.defaults index 2d79fc3..17847fe 100755 --- a/defaults/initrd.defaults +++ b/defaults/initrd.defaults @@ -58,7 +58,7 @@ KSUFF='.ko' REAL_ROOT='' CONSOLE='/dev/console' NEW_ROOT='/newroot' -RC_NO_UMOUNTS="/newroot|/newroot/mnt/changesdev|/mnt/overlay|/mnt/livecd|/mnt/cdrom|/.unions/memory|/.unions/memory/xino" +RC_NO_UMOUNTS="/newroot|/newroot/mnt/changesdev|/mnt/rw_branch|/mnt/livecd|/mnt/cdrom|/.unions/memory|/.unions/memory/xino" CDROOT='0' CDROOT_DEV='' CDROOT_TYPE='auto' @@ -71,7 +71,7 @@ CDROOT_MARKER='/livecd' USE_AUFS_NORMAL=0 AUFS_MODULES=false AUFS_CHANGES=false -AUFS_CHANGESFILE=livecd.aufs +AUFS_CHANGESFILE=/livecd.aufs LOOPS='/livecd.loop /zisofs /livecd.squashfs /image.squashfs /livecd.gcloop' diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts index 91056b1..c258c00 100644 --- a/defaults/initrd.scripts +++ b/defaults/initrd.scripts @@ -314,8 +314,7 @@ union_insert_modules() { # This should really go into /etc/init.d/localmounts but until then we manually set this here conf_rc_no_umounts() { local conf nomount fnd - conf="${CHROOT}/etc/rc.conf" - fnd=0 + conf=$CHROOT/etc/rc.conf fnd=0 if nomount=$(grep -n '^[[:blank:]]*RC_NO_UMOUNTS=' $conf); then local i n data cmd IFS @@ -350,33 +349,28 @@ conf_rc_no_umounts() { create_changefs() { local size - while [ 1 ] - do + while :; do read -p '<< Size of file (Press Enter for default 256 Mb): ' size - if [ -z "${size}" ]; then - size=256 - fi - size="${size}" - if [ ${size} -lt 16 ] - then - bad_msg "Please give a size of at least 16 Mb" + [ -n "$size" ] || size=256 + + size=$size + + if [ 15 -ge "$size" ]; then + bad_msg "Please give a size of at least 16 Megabytes" else - dd if=/dev/zero of=${CHANGESMNT}/${AUFS_CHANGESFILE} bs=1M count=${size} &>/dev/null - if [ $? = '0' ] - then - good_msg "Creation of ${AUFS_CHANGESFILE}, ${size} Mb on ${CHANGESDEV} successful, formatting it ext2" - mke2fs -F ${CHANGESMNT}/${AUFS_CHANGESFILE} &>/dev/null + if dd if=/dev/zero "of=$CHANGESMNT$AUFS_CHANGESFILE" bs=1M count="$size" &>/dev/null; then + good_msg "Creation of $AUFS_CHANGESFILE, ${size}Mb on $CHANGESDEV successful, formatting it ext2" + mke2fs -F "$CHANGESMNT$AUFS_CHANGESFILE" >/dev/null AUFS_CHANGES=true break else - rm -f ${CHANGESMNT}/${AUFS_CHANGESFILE} - bad_msg "Unable to create ${AUFS_CHANGESFILE} on ${CHANGESDEV} of ${size} Mb" + rm -f "$CHANGESMNT$AUFS_CHANGESFILE" + bad_msg "Unable to create ${AUFS_CHANGESFILE#*/} on $CHANGESDEV of ${size}Mb" bad_msg "Ensure your disk is not full or read-only" + read -p '<< Type "a" to abort, anything else to continue : ' doabort - if [ "${doabort}" = "a" ]; then - return 1 - fi + if [ a = "$doabort" ]; then return 1; fi fi fi done @@ -386,87 +380,80 @@ create_changefs() { setup_aufs() { bootstrapCD - if [ -n "${AUFS}" ] - then - if [ "${AUFS}" = "detect" ] - then - CHANGESMNT="${NEW_ROOT}${CDROOT_PATH}" - CHANGESDEV=${REAL_ROOT} + if [ -n "$AUFS" ]; then + if [ detect = "$AUFS" ]; then + CHANGESMNT=$NEW_ROOT$CDROOT_PATH + CHANGESDEV=$REAL_ROOT else - CHANGESDEV=${AUFS} - good_msg "Mounting ${CHANGESDEV} to ${MEMORY} for aufs support" - mount -t auto ${CHANGESDEV} ${CHANGESMNT} &>/dev/null - ret=$? - if [ "${ret}" -ne 0 ] - then - bad_msg "Mount of ${CHANGESDEV} failed, falling back to ramdisk based aufs" + CHANGESDEV=$AUFS + good_msg "Mounting $CHANGESDEV to $MEMORY for aufs support" + + if ! mount -t auto "$CHANGESDEV" "$CHANGESMNT" &>/dev/null; then + bad_msg "Mount of $CHANGESDEV failed, falling back to ramdisk based aufs" unset AUFS fi fi + # Check and attempt to create the changesfile - if [ ! -e ${CHANGESMNT}/${AUFS_CHANGESFILE} ] && [ -n "${AUFS}" ] - then + if [ ! -e $CHANGESMNT$AUFS_CHANGESFILE ] && [ -n "$AUFS" ]; then create_changefs - mount -t auto ${CHANGESMNT}/${AUFS_CHANGESFILE} ${MEMORY} - elif [ -n "${AUFS}" ] - then - local nbpass=0 - while [ 1 ] - do - mount -t auto ${CHANGESMNT}/${AUFS_CHANGESFILE} ${MEMORY} - ret=$? - if [ "${ret}" -ne 0 ] - then - if [ ${nbpass} -eq 0 ] - then - bad_msg "Mounting of changes file failed, Running e2fsck" - e2fsck ${CHANGESMNT}/${AUFS_CHANGESFILE} - nbpass=$((${nbpass} + 1)) - else - bad_msg "Mount of ${CHANGESDEV} failed, falling back to ramdisk based aufs" - bad_msg "your ${AUFS_CHANGESFILE} might be messed up, and I couldn't fix it" - bad_msg "moving ${AUFS_CHANGESFILE} to ${AUFS_CHANGESFILE}.bad" - mv ${CHANGESMNT}/${AUFS_CHANGESFILE} ${CHANGESMNT}/${AUFS_CHANGESFILE}.bad - bad_msg "Try to fix it yourself with e2fsck" + mount -t auto "$CHANGESMNT$AUFS_CHANGESFILE" "$MEMORY" + elif [ -n "$AUFS" ]; then + while :; do + if mount -t auto "$CHANGESMNT$AUFS_CHANGESFILE" "$MEMORY" &>/dev/null; then + break + else + bad_msg "Mounting of changes file failed, Running e2fsck" + + if ! hash e2fsck &>/dev/null; then + bad_msg "/sbin/e2fsck not found! aborting filesystem check" + bad_msg "Moving ${AUFS_CHANGESFILE#*/} to ${AUFS_CHANGESFILE#*/}.bad" + + mv "$CHANGESMNT$AUFS_CHANGESFILE" "$CHANGESMNT$AUFS_CHANGESFILE.bad" + break + + fi + + if e2fsck "$CHANGESMNT$AUFS_CHANGESFILE" &>/dev/null; then + good_msg "e2fsck ran successfully. Please verify data after bootup" + else + bad_msg "Your ${AUFS_CHANGESFILE#*/} image might be corrupted" + bad_msg "moving ${AUFS_CHANGESFILE#*/} to ${AUFS_CHANGESFILE#*/}.bad" + + mv "$CHANGESMNT$AUFS_CHANGESFILE" "$CHANGESMNT$AUFS_CHANGESFILE.bad" break fi - else - if [ ${nbpass} -eq 1 ] - then - good_msg "e2fsck ran successfully. Please check your files after bootup" - fi - break fi done fi # mount tmpfs only in the case when changes= boot parameter was # empty or we were not able to mount the storage device - if [ "${CDROOT}" -eq '1' -a ! -f ${CHANGESMNT}/${AUFS_CHANGESFILE} ] - then - XINO=${MEMORY} - umount ${MEMORY} &>/dev/null - bad_msg "Failed to find ${AUFS_CHANGESFILE} file on ${CHANGESDEV}" - bad_msg "Create an ext2 ${AUFS_CHANGESFILE} file on this device if you wish to use it for aufs" - bad_msg "Falling back to ramdisk based aufs for safety" + if [ 1 = "$CDROOT" ] && [ ! -f "$CHANGESMNT$AUFS_CHANGESFILE" ]; then + XINO=$MEMORY + umount "$MEMORY" &>/dev/null + + bad_msg "Create an extfs ${AUFS_CHANGESFILE#*/} file on this device" + bad_msg "if you wish to have aufs data persistency on reboots" + bad_msg "Falling back to ramdisk based aufs" good_msg "Mounting ramdisk to $MEMORY for aufs support" - mount -t tmpfs tmpfs ${MEMORY} + + mount -t tmpfs tmpfs "$MEMORY" else - XINO=${MEMORY}/xino - mkdir -p ${XINO} - mount -t tmpfs tmpfs ${XINO} + XINO=$MEMORY/xino + + mkdir -p "$XINO" + mount -t tmpfs aufs-xino "$XINO" fi else - good_msg "Mounting ramdisk to $MEMORY for aufs support" - mount -t tmpfs tmpfs ${MEMORY} - XINO=${MEMORY} + XINO=$MEMORY + + good_msg "Mounting ramdisk to $MEMORY for aufs support" + mount -t tmpfs tmpfs "$MEMORY" fi - mkdir -p ${CHANGES} - mount -t aufs -n -o nowarn_perm,udba=none,xino=${XINO}/.aufs.xino,br:${CHANGES}=rw aufs ${UNION} - ret=$? - if [ "${ret}" -ne 0 ] - then - bad_msg "Can't setup union ${UNION} in directory!" + mkdir -p "$CHANGES" + if ! mount -t aufs -n -o "nowarn_perm,udba=none,xino=$XINO/.aufs.xino,br:$CHANGES=rw" aufs "$UNION"; then + bad_msg "Can't setup union $UNION in directory!" USE_AUFS_NORMAL=0 fi } @@ -1420,22 +1407,24 @@ getdvhoff() { setup_squashfs_aufs() { # Setup aufs directories and vars - overlay=/mnt/overlay - static=/mnt/livecd + rw_branch=/mnt/rw_branch ro_branch=/mnt/livecd - for i in "${overlay}" "${static}"; do - [ ! -d "${i}" ] && mkdir -p "${i}" + for dir in $rw_branch $ro_branch; do + [ ! -d $dir ] && mkdir -p "$dir" done - good_msg "Loading aufs" - modprobe aufs > /dev/null 2>&1 - mount -t squashfs -o loop,ro "${CDROOT_PATH}/${LOOPEXT}${LOOP}" "${static}" - mount -t tmpfs none "${overlay}" - mount -t aufs -o br:${overlay}:${static} aufs "${NEW_ROOT}" + good_msg "Loading aufs module ..." + modprobe aufs &>/dev/null - [ ! -d "${NEW_ROOT}${overlay}" ] && mkdir -p "${NEW_ROOT}${overlay}" - [ ! -d "${NEW_ROOT}${static}" ] && mkdir -p "${NEW_ROOT}${static}" - for i in "${overlay}" "${static}"; do mount --move "${i}" "${NEW_ROOT}${i}"; done + mount -t squashfs -o loop,ro "$CDROOT_PATH/$LOOPEXT$LOOP" "$ro_branch" + mount -t tmpfs none "$rw_branch" + mount -t aufs -o "br:$rw_branch:$ro_branch" aufs "$NEW_ROOT" + + [ ! -d $NEW_ROOT$rw_branch ] && mkdir -p "$NEW_ROOT$rw_branch" + [ ! -d $NEW_ROOT$ro_branch ] && mkdir -p "$NEW_ROOT$ro_branch" + for mount in $rw_branch $ro_branch; do + mount --move "$mount" "$NEW_ROOT$mount" + done } setup_unionfs() { diff --git a/defaults/linuxrc b/defaults/linuxrc index 8b3ff87..5a341af 100644 --- a/defaults/linuxrc +++ b/defaults/linuxrc @@ -255,31 +255,17 @@ do ;; aufs\=*) USE_AUFS_NORMAL=1 - echo ${x#*=} | grep , &>/dev/null - if [ "$?" -eq '0' ] - then + if echo "${x#*=}" | grep , &>/dev/null; then UID=${x#*,} AUFS=${x%,*} else AUFS=${x#*=} fi ;; - aufs.changes\=*) - USE_AUFS_NORMAL=1 - echo ${x#*=} | grep , &>/dev/null - - if [ "$?" -eq '0' ] - then - UID=${x#*,} - AUFS=${x%,*} - else - AUFS=${x#*=} - fi - ;; aufs.persistent) USE_AUFS_NORMAL=1 - AUFS="detect" + AUFS=detect ;; # Allow user to specify the modules location aufs.modules\=*) @@ -461,16 +447,14 @@ then # Setup the root filesystem bootstrapFS - if [ "${USE_AUFS_NORMAL}" -eq '1' ] - then + if [ 1 = "$USE_AUFS_NORMAL" ]; then setup_aufs - CHROOT=${UNION} + CHROOT=$UNION else CHROOT=${NEW_ROOT} fi - if [ "${REAL_ROOT}" != "/dev/nfs" ] && [ "${LOOPTYPE}" != "sgimips" ] && [ "${USE_AUFS_NORMAL}" != '1' ] - then + if [ /dev/nfs != "$REAL_ROOT" ] && [ sgimips != "$LOOPTYPE" ] && [ 1 != "$USE_AUFS_NORMAL" ]; then bootstrapCD fi @@ -502,7 +486,7 @@ then fi # Determine root device -good_msg 'Determining root device...' +good_msg 'Determining root device ...' while true do while [ "${got_good_root}" != '1' ] @@ -720,7 +704,7 @@ then FS_LOCATION='mnt/livecd' elif [ "${LOOPTYPE}" = 'squashfs' ] then - if [ "${USE_AUFS_NORMAL}" != '1' ]; then + if [ 1 != "$USE_AUFS_NORMAL" ]; then good_msg 'Mounting squashfs filesystem' _CACHED_SQUASHFS_PATH="${NEW_ROOT}/mnt/${LOOP}" _squashfs_path="${CDROOT_PATH}/${LOOPEXT}${LOOP}" # Default to uncached @@ -782,25 +766,23 @@ then fi fi # if [ -n "${CRYPT_ROOT}" ] - if [ "${USE_AUFS_NORMAL}" -eq '1' ] - then - union_insert_dir ${CHROOT} ${NEW_ROOT}/${FS_LOCATION} - - # Make sure fstab notes livecd is mounted ro. Makes system skip remount which fails on aufs dirs. - # TODO: remounting all tmpfs as RO seems weird, can we be more specific? - #sed -e 's|\(.*\s/\s*tmpfs\s*\)defaults\(.*\)|\1defaults,ro\2|' /${UNION}/etc/fstab > /${UNION}/etc/fstab.new - #mv /${UNION}/etc/fstab.new /${UNION}/etc/fstab + if [ 1 = "$USE_AUFS_NORMAL" ]; then + union_insert_dir "$CHROOT" "$NEW_ROOT/$FS_LOCATION" # Function to handle the RC_NO_UMOUNTS variable in ${CHROOT}/etc/rc.conf conf_rc_no_umounts # Fstab changes for aufs - if ! grep -q '^aufs' "${CHROOT}"/etc/fstab 2>/dev/null; then - for i in /var/tmp /tmp /usr/portage/distfiles; do - [ ! -d "${CHROOT}${i}" ] && mkdir -p "${CHROOT}${i}" + if ! grep -q '^aufs' "$CHROOT/etc/fstab" 2>/dev/null; then + for dir in /var/tmp /tmp /usr/portage/distfiles; do + [ ! -d $CHROOT$dir ] && mkdir -p "$CHROOT$dir" done - cat > "${CHROOT}"/etc/fstab << FSTAB + cat > "$CHROOT/etc/fstab" << FSTAB +#################################################### +## ATTENTION: THIS IS THE FSTAB ON THE LIVECD ## +## PLEASE EDIT THE FSTAB at /mnt/gentoo/etc/fstab ## +#################################################### aufs / aufs defaults 0 0 vartmp /var/tmp tmpfs defaults 0 0 tmp /tmp tmpfs defaults 0 0 @@ -808,30 +790,29 @@ distfiles /usr/portage/distfiles tmpfs defaults 0 0 FSTAB fi - if ${AUFS_MODULES}; then + if $AUFS_MODULES; then warn_msg "Adding all modules in $MODULESD/modules/" - if [ -z "${MODULESD}" ] - then - union_insert_modules ${CDROOT_PATH} + if [ -z "$MODULESD" ]; then + union_insert_modules "$CDROOT_PATH" else - mkdir ${NEW_ROOT}/mnt/modulesd - mount "${MODULESD}" ${NEW_ROOT}/mnt/modulesd - union_insert_modules ${NEW_ROOT}/mnt/modulesd + mkdir "$NEW_ROOT/mnt/modulesd" + mount "$MODULESD" "$NEW_ROOT/mnt/modulesd" + union_insert_modules "$NEW_ROOT/mnt/modulesd" fi fi # Copy user keymap file if [ -e /etc/sysconfig/keyboard ]; then - [ ! -d ${CHROOT}/etc/sysconfig ] && mkdir -p ${CHROOT}/etc/sysconfig - cp /etc/sysconfig/keyboard ${CHROOT}/etc/sysconfig/ + [ ! -d $CHROOT/etc/sysconfig ] && mkdir -p "$CHROOT/etc/sysconfig" + cp /etc/sysconfig/keyboard "$CHROOT/etc/sysconfig/" fi # Create the directories for our new union mounts - test ! -d "${CHROOT}${NEW_ROOT}" && mkdir -p "${CHROOT}${NEW_ROOT}" + [ ! -d $CHROOT$NEW_ROOT ] && mkdir -p "$CHROOT$NEW_ROOT" - if ${AUFS_CHANGES} && [ ! -d "${CHROOT}${NEW_ROOT}/mnt/changesdev" ]; then - mkdir -p "${CHROOT}${NEW_ROOT}/mnt/changesdev" + if $AUFS_CHANGES && [ ! -d $CHROOT$NEW_ROOT/mnt/changesdev ]; then + mkdir -p "$CHROOT$NEW_ROOT/mnt/changesdev" fi fi @@ -856,67 +837,67 @@ FSTAB then setup_unionfs ${NEW_ROOT} /${FS_LOCATION} CHROOT=/union - else - #XXX Note to potential reviewers. diff formats this section very very oddly. Be sure to review this hunk after applied, do NOT simply read the diff - if [ ! "${USE_AUFS_NORMAL}" -eq '1' ] - then - good_msg "Copying read-write image contents to tmpfs" - # Copy over stuff that should be writable - (cd "${NEW_ROOT}/${FS_LOCATION}"; cp -a ${ROOT_TREES} "${NEW_ROOT}") || { - bad_msg "Copying failed, dropping into a shell." - do_rundebugshell - } - - # Now we do the links. - for x in ${ROOT_LINKS} - do - if [ -L "${NEW_ROOT}/${FS_LOCATION}/${x}" ] - then - ln -s "$(readlink ${NEW_ROOT}/${FS_LOCATION}/${x})" "${x}" 2>/dev/null - else - # List all subdirectories of x - find "${NEW_ROOT}/${FS_LOCATION}/${x}" -type d 2>/dev/null | while read directory - do - # Strip the prefix of the FS_LOCATION - directory="${directory#${NEW_ROOT}/${FS_LOCATION}/}" - - # Skip this directory if we already linked a parent directory - if [ "${current_parent}" != '' ]; then - var=$(echo "${directory}" | grep "^${current_parent}") - if [ "${var}" != '' ]; then - continue - fi - fi - # Test if the directory exists already - if [ -e "/${NEW_ROOT}/${directory}" ] - then - # It does exist, link all the individual files - for file in $(ls /${NEW_ROOT}/${FS_LOCATION}/${directory}) - do - if [ ! -d "/${NEW_ROOT}/${FS_LOCATION}/${directory}/${file}" ] && [ ! -e "${NEW_ROOT}/${directory}/${file}" ]; then - ln -s "/${FS_LOCATION}/${directory}/${file}" "${directory}/${file}" 2> /dev/null - fi - done - else - # It does not exist, make a link to the livecd - ln -s "/${FS_LOCATION}/${directory}" "${directory}" 2>/dev/null - current_parent="${directory}" - fi # if [ -e "/${NEW_ROOT}/${directory}" ] ... else - done # while read directory - fi # if [ -L "${NEW_ROOT}/${FS_LOCATION}/${x}" ] ... else - done # for x in ${ROOT_LINKS} - mkdir -p initramfs proc tmp run sys 2>/dev/null - chmod 1777 tmp - - fi # if [ ! "${USE_AUFS_NORMAL}" -eq '1' ] - #XXX: end extremely confusing hunk - - # have handy /mnt/cdrom (CDROOT_PATH) as well - _new_cdroot="${NEW_ROOT}${CDROOT_PATH}" - [ ! -d "${_new_cdroot}" ] && mkdir -p "${_new_cdroot}" - mount --bind "${CDROOT_PATH}" "${_new_cdroot}" - - fi # if [ "${USE_UNIONFS_NORMAL}" = '1' ] ... else + else + #XXX Note to potential reviewers. diff formats this section very very oddly. Be sure to review this hunk after applied, do NOT simply read the diff + if [ ! "${USE_AUFS_NORMAL}" -eq '1' ] + then + good_msg "Copying read-write image contents to tmpfs" + # Copy over stuff that should be writable + (cd "${NEW_ROOT}/${FS_LOCATION}"; cp -a ${ROOT_TREES} "${NEW_ROOT}") || { + bad_msg "Copying failed, dropping into a shell." + do_rundebugshell + } + + # Now we do the links. + for x in ${ROOT_LINKS} + do + if [ -L "${NEW_ROOT}/${FS_LOCATION}/${x}" ] + then + ln -s "$(readlink ${NEW_ROOT}/${FS_LOCATION}/${x})" "${x}" 2>/dev/null + else + # List all subdirectories of x + find "${NEW_ROOT}/${FS_LOCATION}/${x}" -type d 2>/dev/null | while read directory + do + # Strip the prefix of the FS_LOCATION + directory="${directory#${NEW_ROOT}/${FS_LOCATION}/}" + + # Skip this directory if we already linked a parent directory + if [ "${current_parent}" != '' ]; then + var=$(echo "${directory}" | grep "^${current_parent}") + if [ "${var}" != '' ]; then + continue + fi + fi + # Test if the directory exists already + if [ -e "/${NEW_ROOT}/${directory}" ] + then + # It does exist, link all the individual files + for file in $(ls /${NEW_ROOT}/${FS_LOCATION}/${directory}) + do + if [ ! -d "/${NEW_ROOT}/${FS_LOCATION}/${directory}/${file}" ] && [ ! -e "${NEW_ROOT}/${directory}/${file}" ]; then + ln -s "/${FS_LOCATION}/${directory}/${file}" "${directory}/${file}" 2> /dev/null + fi + done + else + # It does not exist, make a link to the livecd + ln -s "/${FS_LOCATION}/${directory}" "${directory}" 2>/dev/null + current_parent="${directory}" + fi # if [ -e "/${NEW_ROOT}/${directory}" ] ... else + done # while read directory + fi # if [ -L "${NEW_ROOT}/${FS_LOCATION}/${x}" ] ... else + done # for x in ${ROOT_LINKS} + mkdir -p initramfs proc tmp run sys 2>/dev/null + chmod 1777 tmp + + fi # if [ ! "${USE_AUFS_NORMAL}" -eq '1' ] + #XXX: end extremely confusing hunk + + # have handy /mnt/cdrom (CDROOT_PATH) as well + _new_cdroot="${NEW_ROOT}${CDROOT_PATH}" + [ ! -d "${_new_cdroot}" ] && mkdir -p "${_new_cdroot}" + mount --bind "${CDROOT_PATH}" "${_new_cdroot}" + + fi # if [ "${USE_UNIONFS_NORMAL}" = '1' ] ... else #UML=$(cat /proc/cpuinfo|grep UML|sed -e 's|model name.*: ||') #if [ "${UML}" = 'UML' ] @@ -928,18 +909,16 @@ FSTAB # Let Init scripts know that we booted from CD export CDBOOT CDBOOT=1 -else # if [ "${CDROOT}" = '1' ] +else if [ "${USE_UNIONFS_NORMAL}" = '1' ] then mkdir /union_changes mount -t tmpfs tmpfs /union_changes setup_unionfs /union_changes ${NEW_ROOT} mkdir -p ${UNION}/tmp/.initrd - fi - if [ "${USE_AUFS_NORMAL}" -eq '1' ] - then - union_insert_dir ${UNION} ${NEW_ROOT} - mkdir -p ${UNION}/tmp/.initrd + elif [ 1 = "$USE_AUFS_NORMAL" ]; then + union_insert_dir "$UNION" "$NEW_ROOT" + mkdir -p "$UNION/tmp/.initrd" fi fi # if [ "${CDROOT}" = '1' ] @@ -986,22 +965,20 @@ fi verbose_kmsg -if [ "${USE_AUFS_NORMAL}" -eq '1' ] -then - UNION_MEMORY=${CHROOT}/.unions/memory +if [ 1 = "$USE_AUFS_NORMAL" ]; then + UNION_MEMORY=$CHROOT/.unions/memory - mkdir -p "${UNION_MEMORY}" - mount --move "${MEMORY}" "${UNION_MEMORY}" + mkdir -p "$UNION_MEMORY" + mount --move "$MEMORY" "$UNION_MEMORY" test_success "Failed to move aufs /memory into the system root" - for i in /mnt/gentoo /mnt/livecd /mnt/overlay ${CDROOT_PATH} - do - mkdir -p "${CHROOT}${i}" - chmod 755 "${CHROOT}${i}" + for dir in /mnt/gentoo $rw_branch $ro_branch $CDROOT_PATH; do + mkdir -p "$CHROOT$dir" + chmod 755 "$CHROOT$dir" done - for i in ${CDROOT_PATH} ${overlay} ${static}; do - mount --move ${NEW_ROOT}${i} ${CHROOT}${i} + for dir in $CDROOT_PATH $rw_branch $ro_branch; do + mount --move "$NEW_ROOT$dir" "$CHROOT$dir" done fi |