# HG changeset patch # User Paul Boddie # Date 1310423435 -7200 # Node ID deda6d07bdc4de5984a602be592541e47809d6c9 # Parent d61059aa86c71e139d3f2dae28dc1b4f7a477149 Added a script which controls access to the UML image. Reorganised the image making script to delegate work to other scripts using the image access script. diff -r d61059aa86c7 -r deda6d07bdc4 uml-access-image --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uml-access-image Tue Jul 12 00:30:35 2011 +0200 @@ -0,0 +1,32 @@ +#!/bin/sh + +# Configuration: +if [ -e userinstall-defaults-uml ]; then + . "$PWD/userinstall-defaults-uml" +elif [ -e /etc/default/userinstall-uml ]; then + . /etc/default/userinstall-uml +else + echo "No defaults found for userinstall (UML)." 1>&2 + exit 1 +fi + +if [ ! "$1" ]; then + echo "A program needs to be given as an argument to this script." 1>&2 + exit 1 +fi + +COMMAND="$1" +shift 1 + +echo "Accessing the image..." 1>&2 +if [ ! -e "$IMAGEDIR" ]; then + mkdir "$IMAGEDIR" +fi +sudo mount -o loop "$IMAGE" "$IMAGEDIR" + +echo "Performing the requested activity..." 1>&2 +"$COMMAND" $* + +echo "Unmounting the image..." 1>&2 +sudo umount "$IMAGEDIR" +rmdir "$IMAGEDIR" diff -r d61059aa86c7 -r deda6d07bdc4 uml-make-image --- a/uml-make-image Mon Jul 11 02:16:57 2011 +0200 +++ b/uml-make-image Tue Jul 12 00:30:35 2011 +0200 @@ -41,60 +41,7 @@ echo "Making the swap file with size ${SWAPSIZE}MB..." dd if=/dev/zero of=$SWAPIMAGE bs=1M count=$SWAPSIZE -echo "Accessing the image..." 1>&2 -if [ ! -e "$IMAGEDIR" ]; then - mkdir "$IMAGEDIR" -fi -sudo mount -o loop "$IMAGE" "$IMAGEDIR" - -echo "Installing the package root..." 1>&2 -cp -a "$PACKAGEROOT/"* "$IMAGEDIR"/ - -echo "Removing any linked /dev entry..." 1>&2 -if [ -h "$IMAGEDIR/dev" ]; then - rm "$IMAGEDIR/dev" -fi - -if [ ! -e "$IMAGEDIR/dev" ]; then - mkdir "$IMAGEDIR/dev" -fi - -cp "/dev/MAKEDEV" "$IMAGEDIR/dev" - -echo "Removing any linked /proc entry..." 1>&2 -if [ -h "$IMAGEDIR/proc" ]; then - rm "$IMAGEDIR/proc" -fi - -if [ ! -e "$IMAGEDIR/proc" ]; then - mkdir "$IMAGEDIR/proc" -fi +# Image population activities. -echo "Using a special fstab..." 1>&2 -if [ -e "$IMAGEDIR/etc/fstab" ]; then - if [ ! -e "$IMAGEDIR/etc/fstab.orig" ]; then - mv "$IMAGEDIR/etc/fstab" "$IMAGEDIR/etc/fstab.orig" - fi -fi -cp "$THISDIR/UML/fstab" "$IMAGEDIR/etc/fstab" - -# Tweak the inittab to only use tty0 and add it to securetty. -echo "Reconfiguring the console settings..." 1>&2 -if [ ! -e "$IMAGEDIR/etc/inittab.orig" ]; then - if [ -e "$IMAGEDIR/etc/inittab" ]; then - cp "$IMAGEDIR/etc/inittab" "$IMAGEDIR/etc/inittab.orig" - grep -v "getty" "$IMAGEDIR/etc/inittab.orig" > "$IMAGEDIR/etc/inittab" - fi - echo "# We launch just one console for UML:" >> "$IMAGEDIR/etc/inittab" - echo "c0:1235:respawn:/sbin/getty 38400 tty0 linux" >> "$IMAGEDIR/etc/inittab" - - echo "# UML modification: use tty0 or vc/0" >> "$IMAGEDIR/etc/securetty" - echo "tty0" >> "$IMAGEDIR/etc/securetty" - echo "vc/0" >> "$IMAGEDIR/etc/securetty" -fi - -sudo "$THISDIR/uml-make-devices" "$IMAGEDIR" - -echo "Unmounting the image..." 1>&2 -sudo umount "$IMAGEDIR" -rmdir "$IMAGEDIR" +"$THISDIR/uml-access-image" "$THISDIR/uml-populate-image" +"$THISDIR/uml-access-image" "$THISDIR/uml-make-network" diff -r d61059aa86c7 -r deda6d07bdc4 uml-make-network --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uml-make-network Tue Jul 12 00:30:35 2011 +0200 @@ -0,0 +1,44 @@ +#!/bin/sh + +# Configuration: +if [ -e userinstall-defaults-uml ]; then + . "$PWD/userinstall-defaults-uml" +elif [ -e /etc/default/userinstall-uml ]; then + . /etc/default/userinstall-uml +else + echo "No defaults found for userinstall (UML)." 1>&2 + exit 1 +fi + +if [ -e "$IMAGEDIR/etc/hosts" ]; then + if [ ! -e "$IMAGEDIR/etc/hosts.old" ]; then + mv "$IMAGEDIR/etc/hosts" "$IMAGEDIR/etc/hosts.old" + fi +fi + +if [ ! -e "$IMAGEDIR/etc/hosts" ]; then + echo "Creating hosts file..." + echo "$GUESTADDRESS $GUESTNAME" > "$IMAGEDIR/etc/hosts" + echo "127.0.0.1 localhost" >> "$IMAGEDIR/etc/hosts" + echo "$HOSTADDRESS $HOSTNAME" >> "$IMAGEDIR/etc/hosts" +fi + +if [ -e "$IMAGEDIR/etc/network/interfaces" ]; then + if [ ! -e "$IMAGEDIR/etc/network/interfaces.old" ]; then + mv "$IMAGEDIR/etc/network/interfaces" "$IMAGEDIR/etc/network/interfaces.old" + fi +fi + +if [ ! -e "$IMAGEDIR/etc/network/interfaces" ]; then + echo "Creating network configuration..." + echo "auto lo" > "$IMAGEDIR/etc/network/interfaces" + echo "iface lo inet loopback" >> "$IMAGEDIR/etc/network/interfaces" + echo "iface eth0 inet static" >> "$IMAGEDIR/etc/network/interfaces" + echo " network 192.168.0.0" >> "$IMAGEDIR/etc/network/interfaces" + echo " broadcast 192.168.0.255" >> "$IMAGEDIR/etc/network/interfaces" + echo " address $GUESTADDRESS" >> "$IMAGEDIR/etc/network/interfaces" + echo " netmask 255.255.255.0" >> "$IMAGEDIR/etc/network/interfaces" + echo " up route add default gw $HOSTADDRESS" >> "$IMAGEDIR/etc/network/interfaces" + echo "" >> "$IMAGEDIR/etc/network/interfaces" + echo "auto eth0" >> "$IMAGEDIR/etc/network/interfaces" +fi diff -r d61059aa86c7 -r deda6d07bdc4 uml-populate-image --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uml-populate-image Tue Jul 12 00:30:35 2011 +0200 @@ -0,0 +1,71 @@ +#!/bin/sh + +# Configuration: +if [ -e userinstall-defaults-uml ]; then + . "$PWD/userinstall-defaults-uml" +elif [ -e /etc/default/userinstall-uml ]; then + . /etc/default/userinstall-uml +else + echo "No defaults found for userinstall (UML)." 1>&2 + exit 1 +fi + +if [ ! -e "$PACKAGEROOT" ]; then + echo "A package root must first be made using user-setup." 1>&2 + exit 1 +fi + +if [ ! "$IMAGEDIR" ]; then + echo "An image directory must be defined." 1>&2 + exit 1 +fi + +THISDIR=`dirname "$0"` + +echo "Installing the package root..." 1>&2 +cp -a "$PACKAGEROOT/"* "$IMAGEDIR"/ + +echo "Removing any linked /dev entry..." 1>&2 +if [ -h "$IMAGEDIR/dev" ]; then + rm "$IMAGEDIR/dev" +fi + +if [ ! -e "$IMAGEDIR/dev" ]; then + mkdir "$IMAGEDIR/dev" +fi + +cp "/dev/MAKEDEV" "$IMAGEDIR/dev" + +echo "Removing any linked /proc entry..." 1>&2 +if [ -h "$IMAGEDIR/proc" ]; then + rm "$IMAGEDIR/proc" +fi + +if [ ! -e "$IMAGEDIR/proc" ]; then + mkdir "$IMAGEDIR/proc" +fi + +echo "Using a special fstab..." 1>&2 +if [ -e "$IMAGEDIR/etc/fstab" ]; then + if [ ! -e "$IMAGEDIR/etc/fstab.orig" ]; then + mv "$IMAGEDIR/etc/fstab" "$IMAGEDIR/etc/fstab.orig" + fi +fi +cp "$THISDIR/UML/fstab" "$IMAGEDIR/etc/fstab" + +# Tweak the inittab to only use tty0 and add it to securetty. +echo "Reconfiguring the console settings..." 1>&2 +if [ ! -e "$IMAGEDIR/etc/inittab.orig" ]; then + if [ -e "$IMAGEDIR/etc/inittab" ]; then + cp "$IMAGEDIR/etc/inittab" "$IMAGEDIR/etc/inittab.orig" + grep -v "getty" "$IMAGEDIR/etc/inittab.orig" > "$IMAGEDIR/etc/inittab" + fi + echo "# We launch just one console for UML:" >> "$IMAGEDIR/etc/inittab" + echo "c0:1235:respawn:/sbin/getty 38400 tty0 linux" >> "$IMAGEDIR/etc/inittab" + + echo "# UML modification: use tty0 or vc/0" >> "$IMAGEDIR/etc/securetty" + echo "tty0" >> "$IMAGEDIR/etc/securetty" + echo "vc/0" >> "$IMAGEDIR/etc/securetty" +fi + +sudo "$THISDIR/uml-make-devices" "$IMAGEDIR"