From e03ed816e09cfbc0d7edaaf437c277574bf9104f Mon Sep 17 00:00:00 2001 From: Gerardo Exequiel Pozzi Date: Mon, 28 Nov 2011 10:35:05 -0300 Subject: [archiso] Use different logic when archisodevice == cow_device * Now bootmnt/img_dev is always a ro-mount, and cowspace is first ro-mount then rw-mount. * Fix a "hidden" bug: at the time of test [[ -ef ]], if devices nodes are not ready, such test will fail then archisodevice will mounted ro and when cow_device is mounted to be rw it fails. (I recently suffered this on a machine with slow USB) Signed-off-by: Gerardo Exequiel Pozzi --- archiso/hooks/archiso | 9 +++------ archiso/hooks/archiso_loop_mnt | 6 +----- archiso/install/archiso | 3 +++ 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/archiso/hooks/archiso b/archiso/hooks/archiso index 5d9e5df..f446bd2 100644 --- a/archiso/hooks/archiso +++ b/archiso/hooks/archiso @@ -167,11 +167,7 @@ archiso_mount_handler() { _init_loop_dev - if [[ "${archisodevice}" -ef "${cow_device}" ]]; then - _mnt_dev "${archisodevice}" "/run/archiso/bootmnt" - else - _mnt_dev "${archisodevice}" "/run/archiso/bootmnt" "-r" - fi + _mnt_dev "${archisodevice}" "/run/archiso/bootmnt" "-r" if [[ ! -f "${aitab}" ]]; then echo "ERROR: '${aitab}' file does not exist." @@ -203,7 +199,8 @@ archiso_mount_handler() { fi if [[ -n "${cow_device}" ]]; then - _mnt_dev "${cow_device}" "/run/archiso/cowspace" + _mnt_dev "${cow_device}" "/run/archiso/cowspace" "-r" + mount -o remount,rw "/run/archiso/cowspace" else msg ":: Mounting /run/archiso/cowspace (tmpfs) filesystem, size=${cowspace_size}..." mkdir -p /run/archiso/cowspace diff --git a/archiso/hooks/archiso_loop_mnt b/archiso/hooks/archiso_loop_mnt index c1b25df..e52dc69 100644 --- a/archiso/hooks/archiso_loop_mnt +++ b/archiso/hooks/archiso_loop_mnt @@ -11,11 +11,7 @@ archiso_loop_mount_handler () { newroot="${1}" msg ":: Setup a loop device from ${img_loop} located at device ${img_dev}" - if [[ "${img_dev}" -ef "${cow_device}" ]]; then - _mnt_dev "${img_dev}" "/run/archiso/img_dev" - else - _mnt_dev "${img_dev}" "/run/archiso/img_dev" "-r" - fi + _mnt_dev "${img_dev}" "/run/archiso/img_dev" "-r" _dev_loop=$(losetup -f) if ! losetup "${_dev_loop}" "/run/archiso/img_dev/${img_loop}"; then diff --git a/archiso/install/archiso b/archiso/install/archiso index 0bb0d0f..7984c53 100644 --- a/archiso/install/archiso +++ b/archiso/install/archiso @@ -14,6 +14,9 @@ build () add_file /lib/udev/rules.d/95-dm-notify.rules add_file /lib/initcpio/udev/11-dm-initramfs.rules /lib/udev/rules.d/11-dm-initramfs.rules + # Add an empty fstab to avoid mount warning when -o remount is used (this should go to install/base) + : > "$BUILDROOT/etc/fstab" + SCRIPT="archiso" } -- cgit v1.2.3-70-g09d2