summaryrefslogtreecommitdiff
path: root/Kernel/build-image-qemu.sh
diff options
context:
space:
mode:
Diffstat (limited to 'Kernel/build-image-qemu.sh')
-rwxr-xr-xKernel/build-image-qemu.sh38
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