build-image-qemu.sh 825 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/bin/sh
  2. set -e
  3. die() {
  4. echo "die: $*"
  5. exit 1
  6. }
  7. if [ "$(id -u)" != 0 ]; then
  8. die "this script needs to run as root"
  9. fi
  10. echo "setting up disk image..."
  11. qemu-img create _disk_image "${DISK_SIZE:-600}"m || die "couldn't create disk image"
  12. chown "$build_user":"$build_group" _disk_image || die "couldn't adjust permissions on disk image"
  13. echo "done"
  14. printf "creating new filesystem... "
  15. mke2fs -q -I 128 _disk_image || die "couldn't create filesystem"
  16. echo "done"
  17. printf "mounting filesystem... "
  18. mkdir -p mnt
  19. mount _disk_image mnt/ || die "couldn't mount filesystem"
  20. echo "done"
  21. cleanup() {
  22. if [ -d mnt ]; then
  23. printf "unmounting filesystem... "
  24. umount mnt || ( sleep 1 && sync && umount mnt )
  25. rm -rf mnt
  26. echo "done"
  27. fi
  28. }
  29. trap cleanup EXIT
  30. ./build-root-filesystem.sh