1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/node/ synced 2025-03-09 00:00:00 +01:00
VILLASnode/packaging/live-iso/ensure_loop.sh

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

36 lines
834 B
Bash
Raw Permalink Normal View History

#!/usr/bin/env bash
#
# Ensure that we have at least two usable loop devices inside our Docker container
#
# Source: https://github.com/jpetazzo/dind/issues/19#issuecomment-48859883
# SPDX-FileCopyrightText: 2014-2023 Institute for Automation of Complex Power Systems, RWTH Aachen University
# SPDX-License-Identifier: Apache-2.0
ensure_loop(){
num="$1"
dev="/dev/loop$num"
if test -b "$dev"; then
echo "$dev is a usable loop device."
return 0
fi
echo "Attempting to create $dev for docker ..."
if ! mknod -m660 $dev b 7 $num; then
echo "Failed to create $dev!" 1>&2
return 3
fi
return 0
}
LOOP_A=$(losetup -f)
LOOP_A=${LOOP_A#/dev/loop}
LOOP_B=$(expr $LOOP_A + 1)
LOOP_C=$(expr $LOOP_A + 2)
ensure_loop $LOOP_A
ensure_loop $LOOP_B
ensure_loop $LOOP_C
losetup -la