43 lines
803 B
Bash
43 lines
803 B
Bash
#!/usr/env/bin bash
|
|
|
|
set -e
|
|
|
|
DISKFILE="/tmp/disk.img"
|
|
BINFILE="/tmp/file.bin"
|
|
LOOPNUM=$((RANDOM % 156 + 100))
|
|
LOOPDEV="/dev/loop${LOOPNUM}"
|
|
|
|
echo "Using device: ${LOOPDEV}"
|
|
|
|
cleanup() {
|
|
echo "Cleaning up..."
|
|
set +e
|
|
sudo losetup -d ${LOOPDEV}
|
|
sudo rm ${LOOPDEV}
|
|
sudo rm ${BINFILE} ${DISKFILE}
|
|
}
|
|
|
|
trap cleanup EXIT INT TERM
|
|
|
|
if losetup ${LOOPDEV} >/dev/null 2>&1; then
|
|
echo "${LOOPDEV} already in use" >&2
|
|
cleanup
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f ${DISKFILE} ]; then
|
|
dd if=/dev/zero of=${DISKFILE} bs=1M count=256
|
|
fi
|
|
|
|
if [ ! -f ${BINFILE} ]; then
|
|
dd if=/dev/urandom of=${BINFILE} bs=1M count=64
|
|
fi
|
|
|
|
if [ ! -e ${LOOPDEV} ]; then
|
|
sudo losetup ${LOOPDEV} ${DISKFILE}
|
|
fi
|
|
|
|
sudo ./writeimg -nd ${LOOPDEV} ${BINFILE}
|
|
sudo ./writeimg -vnd ${LOOPDEV} ${BINFILE}
|
|
|
|
echo "Looks good!"
|