[arch-releng] [RFC] [PATCH] [archiso] Mount all fs on /run/archiso instead of /

Gerardo Exequiel Pozzi vmlinuz386 at yahoo.com.ar
Wed Aug 24 01:55:22 EDT 2011


This allow to take control again of these mountpoints outside initramfs.
(i.e: on deinitramfs stage at shutdown for unmount it)

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386 at yahoo.com.ar>
---
 archiso/hooks/archiso   |   64 +++++++++++++++++++++++++----------------------
 archiso/install/archiso |    4 ---
 2 files changed, 34 insertions(+), 34 deletions(-)

diff --git a/archiso/hooks/archiso b/archiso/hooks/archiso
index 3919aba..e323c10 100644
--- a/archiso/hooks/archiso
+++ b/archiso/hooks/archiso
@@ -41,21 +41,21 @@ _mnt_fs() {
 
 
     if [[ "${cow_persistent}" == "P" ]]; then
-        if [[ ! -f "/cowspace/${cow_directory}/${img_name}.cow" ]]; then
-            msg ":: Creating '/cowspace/${cow_directory}/${img_name}.cow' for first time."
-            dd of="/cowspace/${cow_directory}/${img_name}.cow" count=0 seek=${ro_dev_size} &> /dev/null
+        if [[ ! -f "/run/archiso/cowspace/${cow_directory}/${img_name}.cow" ]]; then
+            msg ":: Creating '/run/archiso/cowspace/${cow_directory}/${img_name}.cow' for first time."
+            dd of="/run/archiso/cowspace/${cow_directory}/${img_name}.cow" count=0 seek=${ro_dev_size} &> /dev/null
         fi
     else
-        if [[ -f "/cowspace/${cow_directory}/${img_name}.cow" ]]; then
-            msg ":: /cowspace/${cow_directory}/${img_name}.cow already exists but non-persistent requested, removing..."
-            rm -f "/cowspace/${cow_directory}/${img_name}.cow"
+        if [[ -f "/run/archiso/cowspace/${cow_directory}/${img_name}.cow" ]]; then
+            msg ":: /run/archiso/cowspace/${cow_directory}/${img_name}.cow already exists but non-persistent requested, removing..."
+            rm -f "/run/archiso/cowspace/${cow_directory}/${img_name}.cow"
         fi
-        msg ":: Creating '/cowspace/${cow_directory}/${img_name}.cow' for first time."
-        dd of="/cowspace/${cow_directory}/${img_name}.cow" count=0 seek=${ro_dev_size} &> /dev/null
+        msg ":: Creating '/run/archiso/cowspace/${cow_directory}/${img_name}.cow' for first time."
+        dd of="/run/archiso/cowspace/${cow_directory}/${img_name}.cow" count=0 seek=${ro_dev_size} &> /dev/null
     fi
 
     _next_loop_dev
-    rw_dev=$(_make_loop_dev "/cowspace/${cow_directory}/${img_name}.cow")
+    rw_dev=$(_make_loop_dev "/run/archiso/cowspace/${cow_directory}/${img_name}.cow")
 
     echo "0 ${ro_dev_size} snapshot ${ro_dev} ${rw_dev} ${cow_persistent} 8" | dmsetup create ${dm_snap_name}
 
@@ -76,11 +76,11 @@ _mnt_sfs() {
 
     if [[ "${copytoram}" == "y" ]]; then
         msg -n ":: Copying squashfs image to RAM..."
-        if ! cp "${img}" "/copytoram/${img_fullname}" ; then
-            echo "ERROR: while copy '${img}' to '/copytoram/${img_fullname}'"
+        if ! cp "${img}" "/run/archiso/copytoram/${img_fullname}" ; then
+            echo "ERROR: while copy '${img}' to '/run/archiso/copytoram/${img_fullname}'"
             launch_interactive_shell
         fi
-        img="/copytoram/${img_fullname}"
+        img="/run/archiso/copytoram/${img_fullname}"
         msg "done."
     fi
     _next_loop_dev
@@ -99,6 +99,8 @@ _mnt_dev() {
 
     local fstype fserror
 
+    mkdir -p "${mnt}"
+
     msg ":: Mounting '${dev}' to '${mnt}'"
 
     msg ":: Waiting for '${dev}' device..."
@@ -132,7 +134,7 @@ _mnt_dev() {
 
 _verify_checksum() {
     local _status
-    cd "/bootmnt/${archisobasedir}"
+    cd "/run/archiso/bootmnt/${archisobasedir}"
     md5sum -c checksum.md5 > /checksum.log 2>&1
     _status=$?
     cd "${OLDPWD}"
@@ -148,9 +150,9 @@ run_hook() {
     [[ -z "${archisodevice}" ]] && archisodevice="/dev/disk/by-label/${archisolabel}"
 
     if [[ -z "${aitab}" ]]; then
-        aitab="/bootmnt/${archisobasedir}/aitab"
+        aitab="/run/archiso/bootmnt/${archisobasedir}/aitab"
     else
-        aitab="/bootmnt/${aitab}"
+        aitab="/run/archiso/bootmnt/${aitab}"
     fi
 
     if [[ -n "${cow_label}" ]]; then
@@ -177,9 +179,9 @@ archiso_mount_handler() {
     _init_loop_dev
 
     if [[ "${archisodevice}" -ef "${cow_device}" ]]; then
-        _mnt_dev "${archisodevice}" "/bootmnt"
+        _mnt_dev "${archisodevice}" "/run/archiso/bootmnt"
     else
-        _mnt_dev "${archisodevice}" "/bootmnt" "-r"
+        _mnt_dev "${archisodevice}" "/run/archiso/bootmnt" "-r"
     fi
 
     if [[ ! -f "${aitab}" ]]; then
@@ -190,7 +192,7 @@ archiso_mount_handler() {
     fi
 
     if [[ "${checksum}" == "y" ]]; then
-        if [[ -f "/bootmnt/${archisobasedir}/checksum.md5" ]]; then
+        if [[ -f "/run/archiso/bootmnt/${archisobasedir}/checksum.md5" ]]; then
             msg -n ":: Self-test requested, please wait..."
             if _verify_checksum; then
                 msg "done. Checksum is OK, continue booting."
@@ -206,17 +208,19 @@ archiso_mount_handler() {
     fi
 
     if [[ "${copytoram}" == "y" ]]; then
-        msg ":: Mounting /copytoram (tmpfs) filesystem, size=${copytoram_size}"
-        mount -t tmpfs -o "size=${copytoram_size}",mode=0755 copytoram /copytoram
+        msg ":: Mounting /run/archiso/copytoram (tmpfs) filesystem, size=${copytoram_size}"
+        mkdir -p /run/archiso/copytoram
+        mount -t tmpfs -o "size=${copytoram_size}",mode=0755 copytoram /run/archiso/copytoram
     fi
 
     if [[ -n "${cow_device}" ]]; then
-        _mnt_dev "${cow_device}" "/cowspace"
+        _mnt_dev "${cow_device}" "/run/archiso/cowspace"
     else
-        msg ":: Mounting /cowspace (tmpfs) filesystem, size=${cowspace_size}..."
-        mount -t tmpfs -o "size=${cowspace_size}",mode=0755 cowspace /cowspace
+        msg ":: Mounting /run/archiso/cowspace (tmpfs) filesystem, size=${cowspace_size}..."
+        mkdir -p /run/archiso/cowspace
+        mount -t tmpfs -o "size=${cowspace_size}",mode=0755 cowspace /run/archiso/cowspace
     fi
-    mkdir -p "/cowspace/${cow_directory}"
+    mkdir -p "/run/archiso/cowspace/${cow_directory}"
 
     local aitab_img aitab_mnt aitab_arch aitab_sfs_comp aitab_fs_type aitab_fs_size
     while read aitab_img aitab_mnt aitab_arch aitab_sfs_comp aitab_fs_type aitab_fs_size; do
@@ -224,21 +228,21 @@ archiso_mount_handler() {
         [[ "${aitab_arch}" != "any" && "${aitab_arch}" != "${arch}" ]] && continue
         if [[ "${aitab_fs_type}" != "none" ]]; then
             if [[ "${aitab_sfs_comp}" != "none" ]]; then
-                _mnt_sfs "/bootmnt/${archisobasedir}/${aitab_arch}/${aitab_img}.fs.sfs" "/sfs/${aitab_img}"
-                _mnt_fs "/sfs/${aitab_img}/${aitab_img}.fs" "${newroot}${aitab_mnt}"
+                _mnt_sfs "/run/archiso/bootmnt/${archisobasedir}/${aitab_arch}/${aitab_img}.fs.sfs" "/run/archiso/sfs/${aitab_img}"
+                _mnt_fs "/run/archiso/sfs/${aitab_img}/${aitab_img}.fs" "${newroot}${aitab_mnt}"
             else
-                _mnt_fs "/bootmnt/${archisobasedir}/${aitab_arch}/${aitab_img}.fs" "${newroot}${aitab_mnt}"
+                _mnt_fs "/run/archiso/bootmnt/${archisobasedir}/${aitab_arch}/${aitab_img}.fs" "${newroot}${aitab_mnt}"
             fi
         else
-            _mnt_sfs "/bootmnt/${archisobasedir}/${aitab_arch}/${aitab_img}.sfs" "${newroot}${aitab_mnt}"
+            _mnt_sfs "/run/archiso/bootmnt/${archisobasedir}/${aitab_arch}/${aitab_img}.sfs" "${newroot}${aitab_mnt}"
         fi
     done < "${aitab}"
 
     if [[ "${copytoram}" == "y" ]]; then
-        umount /bootmnt
+        umount /run/archiso/bootmnt
     else
         mkdir -p "${newroot}/bootmnt"
-        mount --bind /bootmnt "${newroot}/bootmnt"
+        mount --bind /run/archiso/bootmnt "${newroot}/bootmnt"
     fi
 }
 
diff --git a/archiso/install/archiso b/archiso/install/archiso
index 514c011..7ad3a75 100644
--- a/archiso/install/archiso
+++ b/archiso/install/archiso
@@ -9,10 +9,6 @@ build ()
     BINARIES=""
     FILES=""
 
-    add_dir /cowspace
-    add_dir /copytoram
-    add_dir /bootmnt
-
     add_binary /lib/udev/cdrom_id
     add_binary /sbin/blockdev
     add_binary /sbin/lvm
-- 
1.7.6



More information about the arch-releng mailing list