diff options
author | Fernando Reyes (likewhoa) <design@missionaccomplish.com> | 2014-05-29 03:55:05 +0200 |
---|---|---|
committer | Rick Farina (Zero_Chaos) <zerochaos@gentoo.org> | 2015-04-29 13:31:45 -0400 |
commit | 1748c95286f7554cca5facb39ec744b635d46401 (patch) | |
tree | 6517b872492ec47dcc15bfe1c91847ae1c3df08f | |
parent | remove pointless changes size warning (diff) | |
download | genkernel-1748c95286f7554cca5facb39ec744b635d46401.tar.gz genkernel-1748c95286f7554cca5facb39ec744b635d46401.tar.bz2 genkernel-1748c95286f7554cca5facb39ec744b635d46401.zip |
Cleaner shutdown process preventing aufs related mounts from
being umounted along with mnt/{livecd,cdrom} and others.
Addition of a variable for aufs changes so that required
directory can be create upon successful creation of the livecd
image file.
-rwxr-xr-x | defaults/initrd.defaults | 3 | ||||
-rw-r--r-- | defaults/initrd.scripts | 1 | ||||
-rw-r--r-- | defaults/linuxrc | 20 |
3 files changed, 21 insertions, 3 deletions
diff --git a/defaults/initrd.defaults b/defaults/initrd.defaults index a017642..aa9f85c 100755 --- a/defaults/initrd.defaults +++ b/defaults/initrd.defaults @@ -65,6 +65,9 @@ CDROOT_PATH='/mnt/cdrom' # This is the file that the cdroot will be checked for as a # marker. It must exist RELATIVE to the cdroot. CDROOT_MARKER='/livecd' + +# AUFS variables +AUFS_CHANGES=false 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 263ed18..68c0ef7 100644 --- a/defaults/initrd.scripts +++ b/defaults/initrd.scripts @@ -285,6 +285,7 @@ create_changefs() { 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} diff --git a/defaults/linuxrc b/defaults/linuxrc index 8620352..6d942a1 100644 --- a/defaults/linuxrc +++ b/defaults/linuxrc @@ -811,6 +811,15 @@ then # 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 + + # RC_NO_UMOUNTS variable for a clean shutdown/reboot + test ! $(grep 'RC_NO_UMOUNTS="/newroot|/newroot/mnt/aufs|\ +/newroot/mnt/changesdev|/mnt/livecd|/mnt/cdrom|/.unions/\ +memory|/.unions/memory/xino"' "${UNION}"/etc/rc.conf) && + echo "RC_NO_UMOUNTS=\"/newroot|/newroot/mnt/aufs|"\ +"/newroot/mnt/changesdev|/mnt/livecd|/mnt/cdrom|"\ +"/.unions/memory|/.unions/memory/xino\"">> "${UNION}"/etc/rc.conf + warn_msg "Adding all modules in $MODULESD/modules/" if [ -z "${MODULESD}" ] then @@ -820,6 +829,10 @@ then mount "${MODULESD}" ${NEW_ROOT}/mnt/modulesd union_insert_modules ${NEW_ROOT}/mnt/modulesd fi + + mkdir -p "${UNION}"/newroot/mnt/aufs + test ${AUFS_CHANGES} && test ! -d "${UNION}"/newroot/mnt/changesdev && + mkdir "${UNION}"/newroot/mnt/changesdev fi # Unpacking additional packages from NFS mount @@ -975,9 +988,10 @@ verbose_kmsg if [ "${USE_AUFS_NORMAL}" -eq '1' ] then - mkdir -p /${CHROOT}/.unions/memory 2>/dev/null - mount -o move /memory /${CHROOT}/.unions/memory || echo '*: Failed to move aufs /memory into the system root!' - for i in mnt/gentoo mnt/livecd + mkdir -p /${CHROOT}/.unions/memory + mount -o move /memory /${CHROOT}/.unions/memory + test_success "Failed to move aufs /memory into the system root" + for i in mnt/gentoo mnt/livecd ${CDROOT_PATH} do mkdir -p ${CHROOT}/$i chmod 755 ${CHROOT}/$i |