From 91505c0e174370a341e9e678978e20561957ef9d Mon Sep 17 00:00:00 2001 From: Benjamin Schieder Date: Thu, 15 Dec 2005 10:43:10 +0000 Subject: [PATCH] Benjamin Schieder: try manual /dev/loop{*,/*} check in bootdisk if losetup -f fails [2005111518152015844] (https://www.rocklinux.net/submaster) git-svn-id: http://www.rocklinux.org/svn/rock-linux/trunk@6716 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc --- target/bootdisk/build_stage1.sh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/target/bootdisk/build_stage1.sh b/target/bootdisk/build_stage1.sh index 3b4cb959b..e94c28d77 100644 --- a/target/bootdisk/build_stage1.sh +++ b/target/bootdisk/build_stage1.sh @@ -120,8 +120,15 @@ tmpdir=initrd_$$.dir; mkdir -p $disksdir/$tmpdir; cd $disksdir dd if=/dev/zero of=initrd.img bs=1024 count=$ramdisk_size &> /dev/null tmpdev="`losetup -f`" if [ -z "$tmpdev" ] ; then - echo_error "No free loopback device found!" - rm -f $tmpfile ; rmdir $tmpdir; exit 1 + for x in /dev/loop* /dev/loop/* ; do + [ -b "${x}" ] || continue + losetup ${x} 2>&1 >/dev/null || tmpdev="${x}" + [ -n "${tmpdev}" ] && break + done + if [ -z "${tmpdev}" ] ; then + echo_error "No free loopback device found!" + rm -f $tmpfile ; rmdir $tmpdir; exit 1 + fi fi echo_status "Using loopback device $tmpdev." losetup "$tmpdev" initrd.img