summaryrefslogtreecommitdiff
path: root/Kernel/build-image-qemu.sh
blob: 492293a068bb57472f0a0e59bf4bb59d3a1f255a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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 $build_user:$build_group _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