summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthijs Kooijman <matthijs@stdin.nl>2017-08-29 15:04:31 +0200
committerRaphaël Hertzog <hertzog@debian.org>2017-09-01 10:07:00 +0200
commit4c229d9449ab5605940bdee28e89166132b1d7e1 (patch)
treea65a6831130f9beba5e0d0bbf7bca44a45ba416c
parente8118e8e0a502df4439ffed145942ee1f206bd9d (diff)
downloadvyos-live-build-4c229d9449ab5605940bdee28e89166132b1d7e1.tar.gz
vyos-live-build-4c229d9449ab5605940bdee28e89166132b1d7e1.zip
Pass --partscan to losetup
Recent versions of Linux, parted or some other bit of software cause partition devices, like /dev/loop0p1 to be created when running parted mkpart. However, these devices are not cleaned up when running losetup -d to remove /dev/loop0 later, so they linger around and confuse mkfs (which refuses to make a filesystem, thinking there are partitions): mkfs.fat 4.1 (2017-01-24) mkfs.vfat: Partitions or virtual mappings on device '/dev/loop0', not making filesystem (use -I to override) To prevent this behaviour, pass --partscan to losetup when adding a new partition, to clean up any lingering partitions. It seems losetup does not accept --partscan when deleting a loop device, to clean up at that point, but since binary_hdd mounts the partition last, there should not be any lingering partition devices after live-build is done. The --partscan option is available since util-linux 2.21 (released in 2012), so it should be fairly safe to pass it unconditionally.
-rw-r--r--debian/changelog3
-rwxr-xr-xfunctions/losetup.sh6
2 files changed, 6 insertions, 3 deletions
diff --git a/debian/changelog b/debian/changelog
index 1a91c988d..608b8dc8f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,9 @@ live-build (1:20170830) UNRELEASED; urgency=medium
* Auto-update version strings in manual pages.
* Update default value of PREPARER to correct the embedded URL.
+ * Pass --partscan to losetup to clean up partition devices lingering
+ from former operations. Closes: #865586
+ Thanks to Matthijs Kooijman <matthijs@stdin.nl> for the patch.
-- Raphaël Hertzog <hertzog@debian.org> Tue, 29 Aug 2017 15:13:39 +0200
diff --git a/functions/losetup.sh b/functions/losetup.sh
index 0346ff677..9d9b46e5d 100755
--- a/functions/losetup.sh
+++ b/functions/losetup.sh
@@ -40,7 +40,7 @@ Losetup ()
FILE="${2}"
PARTITION="${3:-1}"
- ${LB_LOSETUP} --read-only "${DEVICE}" "${FILE}"
+ ${LB_LOSETUP} --read-only --partscan "${DEVICE}" "${FILE}"
FDISK_OUT="$(${LB_FDISK} -l -u ${DEVICE} 2>&1)"
Lodetach "${DEVICE}"
@@ -50,14 +50,14 @@ Losetup ()
then
Echo_message "Mounting %s with offset 0" "${DEVICE}"
- ${LB_LOSETUP} "${DEVICE}" "${FILE}"
+ ${LB_LOSETUP} --partscan "${DEVICE}" "${FILE}"
else
SECTORS="$(echo "$FDISK_OUT" | sed -ne "s|^$LOOPDEVICE[ *]*\([0-9]*\).*|\1|p")"
OFFSET="$(expr ${SECTORS} '*' 512)"
Echo_message "Mounting %s with offset %s" "${DEVICE}" "${OFFSET}"
- ${LB_LOSETUP} -o "${OFFSET}" "${DEVICE}" "${FILE}"
+ ${LB_LOSETUP} --partscan -o "${OFFSET}" "${DEVICE}" "${FILE}"
fi
}