aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/build/linux_generated.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-09-07 19:04:47 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-09-07 19:04:47 +0200
commit6b5120a46407f0462e664e15fed3eae5da951c75 (patch)
tree07645ed5e18bd92595684b272ccf3c07b5e01649 /pkg/build/linux_generated.go
parentbe20da425029ecd45b18e99fa5f09691ba0658ea (diff)
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.
Diffstat (limited to 'pkg/build/linux_generated.go')
-rw-r--r--pkg/build/linux_generated.go13
1 files changed, 9 insertions, 4 deletions
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"