Ensure loop device partition nodes are created (#741)
Although the loop block device is created before attaching the image to it, the devices for the partition that the image contains are still not created. This patch creates those devices as well, when they are not already available. Fixes #482 Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
This commit is contained in:
parent
02b371de1a
commit
1377e903b8
@ -46,6 +46,7 @@ if [ "${NO_PRERUN_QCOW2}" = "0" ]; then
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
ensure_loopdev_partitions "$LOOP_DEV"
|
||||||
BOOT_DEV="${LOOP_DEV}p1"
|
BOOT_DEV="${LOOP_DEV}p1"
|
||||||
ROOT_DEV="${LOOP_DEV}p2"
|
ROOT_DEV="${LOOP_DEV}p2"
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ until ensure_next_loopdev && LOOP_DEV="$(losetup --show --find --partscan "$IMG_
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
ensure_loopdev_partitions "$LOOP_DEV"
|
||||||
BOOT_DEV="${LOOP_DEV}p1"
|
BOOT_DEV="${LOOP_DEV}p1"
|
||||||
ROOT_DEV="${LOOP_DEV}p2"
|
ROOT_DEV="${LOOP_DEV}p2"
|
||||||
|
|
||||||
|
@ -110,3 +110,17 @@ ensure_next_loopdev() {
|
|||||||
[[ -b "$loopdev" ]] || mknod "$loopdev" b 7 "$loopmaj"
|
[[ -b "$loopdev" ]] || mknod "$loopdev" b 7 "$loopmaj"
|
||||||
}
|
}
|
||||||
export -f ensure_next_loopdev
|
export -f ensure_next_loopdev
|
||||||
|
|
||||||
|
ensure_loopdev_partitions() {
|
||||||
|
local line
|
||||||
|
local partition
|
||||||
|
local majmin
|
||||||
|
lsblk -r -n -o "NAME,MAJ:MIN" "$1" | grep -v "^${1#/dev/} " | while read -r line; do
|
||||||
|
partition="${line%% *}"
|
||||||
|
majmin="${line#* }"
|
||||||
|
if [ ! -b "/dev/$partition" ]; then
|
||||||
|
mknod "/dev/$partition" b "${majmin%:*}" "${majmin#*:}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
export -f ensure_loopdev_partitions
|
||||||
|
Loading…
x
Reference in New Issue
Block a user