diff options
Diffstat (limited to 'Kernel/build-image-qemu.sh')
-rwxr-xr-x | Kernel/build-image-qemu.sh | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Kernel/build-image-qemu.sh b/Kernel/build-image-qemu.sh new file mode 100755 index 0000000000..229663868e --- /dev/null +++ b/Kernel/build-image-qemu.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +set -e + +die() { + echo "die: $@" + exit 1 +} + +if [ $(id -u) != 0 ]; then + die "this script needs to run as root" +fi + +echo "setting up disk image..." +qemu-img create _disk_image ${DISK_SIZE:-500}m || die "couldn't create disk image" +chown 1000:1000 _disk_image || die "couldn't adjust permissions on disk image" +echo "done" + +echo -n "creating new filesystem... " +mke2fs -q -I 128 _disk_image || die "couldn't create filesystem" +echo "done" + +echo -n "mounting filesystem... " +mkdir -p mnt +mount _disk_image mnt/ || die "couldn't mount filesystem" +echo "done" + +cleanup() { + if [ -d mnt ]; then + echo -n "unmounting filesystem... " + umount mnt || ( sleep 1 && sync && umount mnt ) + rm -rf mnt + echo "done" + fi +} +trap cleanup EXIT + +./build-root-filesystem.sh |