diff options
author | Matthijs Kooijman <matthijs@stdin.nl> | 2017-08-29 15:04:31 +0200 |
---|---|---|
committer | Raphaël Hertzog <hertzog@debian.org> | 2017-09-01 10:07:00 +0200 |
commit | 4c229d9449ab5605940bdee28e89166132b1d7e1 (patch) | |
tree | a65a6831130f9beba5e0d0bbf7bca44a45ba416c | |
parent | e8118e8e0a502df4439ffed145942ee1f206bd9d (diff) | |
download | vyos-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/changelog | 3 | ||||
-rwxr-xr-x | functions/losetup.sh | 6 |
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 } |