diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-05-14 19:32:39 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-05-14 19:32:39 +0200 |
| commit | 86ea19e4c2dac00bda532edaf45507f10e9da575 (patch) | |
| tree | 6dd2c3cab8127ccfa2c58ec3fda21e073767ebfc /pkg/kernel | |
| parent | 9467cacb1c3020e2a7ddd60b40dfbbf5a1733785 (diff) | |
tools/create-gce-image.sh: revert loop to nbd
loop devices are nice, but unfortunately this creates images
that does not boot on GCE. Reason is unclear.
Revert back to nbd for now.
Diffstat (limited to 'pkg/kernel')
| -rw-r--r-- | pkg/kernel/generated.go | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/pkg/kernel/generated.go b/pkg/kernel/generated.go index a0831a4f7..bdb34f13a 100644 --- a/pkg/kernel/generated.go +++ b/pkg/kernel/generated.go @@ -22,17 +22,20 @@ if [ "$(basename $2)" != "bzImage" ]; then exit 1 fi +sudo umount disk.mnt || true +sudo qemu-nbd -d /dev/nbd0 || true rm -rf disk.mnt disk.raw || true + +sudo modprobe nbd fallocate -l 2G disk.raw -echo -en "o\nn\np\n1\n\n\na\nw\n" | sudo fdisk disk.raw -LODEV="$(sudo losetup -f --show -P disk.raw)" -LODEVPART=$LODEV"p1" -CLEANUP="sudo losetup -d $LODEV; $CLEANUP" -until [ -e $LODEVPART ]; do sleep 1; done -sudo mkfs.ext4 $LODEVPART +sudo qemu-nbd -c /dev/nbd0 --format=raw disk.raw +CLEANUP="sudo qemu-nbd -d /dev/nbd0; $CLEANUP" +echo -en "o\nn\np\n1\n\n\na\nw\n" | sudo fdisk /dev/nbd0 +until [ -e /dev/nbd0p1 ]; do sleep 1; done +sudo mkfs.ext4 /dev/nbd0p1 mkdir -p disk.mnt CLEANUP="rm -rf disk.mnt; $CLEANUP" -sudo mount $LODEVPART disk.mnt +sudo mount /dev/nbd0p1 disk.mnt CLEANUP="sudo umount disk.mnt; $CLEANUP" sudo cp -a $1/. disk.mnt/. sudo cp $2 disk.mnt/vmlinuz @@ -87,5 +90,5 @@ menuentry 'linux' --class gnu-linux --class gnu --class os { linux /vmlinuz root=/dev/sda1 console=ttyS0 earlyprintk=serial vsyscall=native rodata=n ftrace_dump_on_oops=orig_cpu oops=panic panic_on_warn=1 nmi_watchdog=panic panic=86400 $CMDLINE } EOF -sudo grub-install --target=i386-pc --boot-directory=disk.mnt/boot --no-floppy $LODEV +sudo grub-install --target=i386-pc --boot-directory=disk.mnt/boot --no-floppy /dev/nbd0 ` |
