From 7ad12edfb0d233498410f2afc09753e70de50f80 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 11 Sep 2024 09:31:43 +0000 Subject: [PATCH] make.sh: Bind-mount all loop devices There seems to be a different way how to create loop devices. On my Debian system, the first loop device is a block device with major=7 and minor=0, the second device is major=7 and minor=1, and so on. On a system running Grml, the second loop device has major=7 and minor=32, and all following ones are increasing their minor by 32 as well instead of one. Since I don't have an easy way to detect this, we will simply bind-mount all available loop devices in to the build environment. Signed-off-by: Michael Tremer --- make.sh | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/make.sh b/make.sh index 21543c667e..e8c3b08278 100755 --- a/make.sh +++ b/make.sh @@ -447,14 +447,19 @@ prepareenv() { # Create loop devices mknod -m 666 "${BUILD_DIR}/dev/loop-control" c 10 237 - mknod -m 666 "${BUILD_DIR}/dev/loop0" b 7 0 - mknod -m 666 "${BUILD_DIR}/dev/loop1" b 7 1 - mknod -m 666 "${BUILD_DIR}/dev/loop2" b 7 2 - mknod -m 666 "${BUILD_DIR}/dev/loop3" b 7 3 - mknod -m 666 "${BUILD_DIR}/dev/loop4" b 7 4 - mknod -m 666 "${BUILD_DIR}/dev/loop5" b 7 5 - mknod -m 666 "${BUILD_DIR}/dev/loop6" b 7 6 - mknod -m 666 "${BUILD_DIR}/dev/loop7" b 7 7 + + local loop + + # Copy all loop devices from the host + for loop in /dev/loop*; do + if [ -b "${loop}" ]; then + # Create the mountpoint + : > "${BUILD_DIR}${loop}" + + # Bind-mount the device + mount --bind "${loop}" "${BUILD_DIR}${loop}" + fi + done # Create directories mkdir -p "${BUILD_DIR}/dev/pts" -- 2.39.5