1 #!/bin/bash 2 # Usage: uml-setupfs <root-filesystem-size-in-GB> <swap-size-in-MB> 3 4 # Configuration: 5 if [ -e userinstall-defaults-uml ]; then 6 source userinstall-defaults-uml 7 elif [ -e /etc/default/userinstall-uml ]; then 8 source /etc/default/userinstall-uml 9 else 10 echo "No defaults found for userinstall (UML)." 11 exit 1 12 fi 13 14 # Ensure arguments have been provided. 15 if [[ ! "$1" || ! "$2" ]]; then 16 echo "$0 <root-filesystem-size-in-GB> <swap-size-in-MB>" 17 exit 1 18 fi 19 20 # Make the UML instance directory if not already present. 21 22 echo "Making the UML instance directory at $UMLROOT..." 23 if [ ! -e "$UMLROOT" ]; then 24 mkdir "$UMLROOT" 25 fi 26 27 export IMAGE="$UMLROOT/rootfs" 28 export IMAGESIZE="$1" 29 export SWAPIMAGE="$UMLROOT/swap" 30 export SWAPSIZE="$2" 31 32 echo "Making the filesystem with size ${IMAGESIZE}GB..." 33 dd if=/dev/zero of="$IMAGE" bs=1024 count=1 seek=$((${IMAGESIZE}*1024*1024-1024)) 34 mkfs.ext3 "$IMAGE" 35 36 echo "Making the swap file with size ${SWAPSIZE}MB..." 37 dd if=/dev/zero of="$SWAPIMAGE" bs=1M count="$SWAPSIZE"