From 6b5120a46407f0462e664e15fed3eae5da951c75 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Fri, 7 Sep 2018 19:04:47 +0200 Subject: tools/create-gce-image.sh: auto-detect block device type Currently we choose block device to use (nbd/loop) based on SYZ_VM_TYPE. Strictly saying these things are orthogonal. losetup is broken on Ubuntu. qemu-nbd is broken on Debian. Try to auto-detect what will work based on uname. --- pkg/build/linux_generated.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'pkg/build/linux_generated.go') diff --git a/pkg/build/linux_generated.go b/pkg/build/linux_generated.go index 14df94954..28e9355e1 100644 --- a/pkg/build/linux_generated.go +++ b/pkg/build/linux_generated.go @@ -30,20 +30,25 @@ else exit 1 fi +BLOCK_DEVICE="loop" +if [ "$(uname -a | grep Ubuntu)" != "" ]; then + BLOCK_DEVICE="nbd" +fi + sudo umount disk.mnt || true -if [ "$SYZ_VM_TYPE" == "qemu" ]; then +if [ "$BLOCK_DEVICE" == "loop" ]; then : -elif [ "$SYZ_VM_TYPE" == "gce" ]; then +elif [ "$BLOCK_DEVICE" == "nbd" ]; then sudo modprobe nbd sudo qemu-nbd -d /dev/nbd0 || true fi rm -rf disk.mnt disk.raw || true fallocate -l 2G disk.raw -if [ "$SYZ_VM_TYPE" == "qemu" ]; then +if [ "$BLOCK_DEVICE" == "loop" ]; then DISKDEV="$(sudo losetup -f --show -P disk.raw)" CLEANUP="sudo losetup -d $DISKDEV; $CLEANUP" -elif [ "$SYZ_VM_TYPE" == "gce" ]; then +elif [ "$BLOCK_DEVICE" == "nbd" ]; then DISKDEV="/dev/nbd0" sudo qemu-nbd -c $DISKDEV --format=raw disk.raw CLEANUP="sudo qemu-nbd -d $DISKDEV; $CLEANUP" -- cgit mrf-deployment