1.1 --- a/README.txt Tue Jul 12 00:47:20 2011 +0200
1.2 +++ b/README.txt Wed Jul 13 00:43:11 2011 +0200
1.3 @@ -101,7 +101,7 @@
1.4 sudo mount -o loop /home/me/downloads/kubuntu-7.04-alternate-i386.iso /tmp/cdrom
1.5 user-setup file:///tmp/cdrom
1.6
1.7 -An URI must be specified as the "mirror" location, not a normal filename.
1.8 +A URL must be specified as the "mirror" location, not a normal filename.
1.9
1.10 Once the installation is complete, some post-installation is necessary:
1.11
1.12 @@ -211,12 +211,12 @@
1.13 option which sets up a package manager for a user with root privileges. To
1.14 set up such an installation, the following commands can be used:
1.15
1.16 -sudo user-setup --root
1.17 -sudo user-postsetup --root
1.18 +user-setup --root
1.19 +user-postsetup --root
1.20
1.21 Entering the installation is done using the user-do script:
1.22
1.23 -sudo user-do --root
1.24 +user-do --root
1.25
1.26 Note that in root mode, the /proc and /sys filesystems are mounted within the
1.27 installation. Care must be taken not to delete the contents of these
1.28 @@ -230,7 +230,7 @@
1.29 In root mode, the /dev filesystem on the host can be mounted by using the
1.30 --dev option with user-do:
1.31
1.32 -sudo user-do --root --dev
1.33 +user-do --root --dev
1.34
1.35 Note that care must be taken not to delete the contents of this directory
1.36 within the installation while the above command is running.
1.37 @@ -289,3 +289,8 @@
1.38 to allocate to the instance:
1.39
1.40 uml-do 512M
1.41 +
1.42 +Specifying the --net option allows networking to be used by the instance, if
1.43 +set up as described above:
1.44 +
1.45 +uml-do 512M --net
2.1 --- a/uml-do Tue Jul 12 00:47:20 2011 +0200
2.2 +++ b/uml-do Wed Jul 13 00:43:11 2011 +0200
2.3 @@ -12,7 +12,7 @@
2.4
2.5 PROGNAME=`basename "$0"`
2.6
2.7 -if [ ! "$1" ]; then
2.8 +if [ ! "$1" ] || [ "$1" = '--help' ]; then
2.9 echo "Usage: $PROGNAME <memory-with-unit> [ --net ]" 1>&2
2.10 exit 1
2.11 fi
3.1 --- a/uml-make-image Tue Jul 12 00:47:20 2011 +0200
3.2 +++ b/uml-make-image Wed Jul 13 00:43:11 2011 +0200
3.3 @@ -10,14 +10,26 @@
3.4 exit 1
3.5 fi
3.6
3.7 +if [ "$1" = '--help' ]; then
3.8 + echo "Usage: `basename $0` [ --root ] <root image size in GB> <swap image size in MB>" 1>&2
3.9 + exit 1
3.10 +fi
3.11 +
3.12 +if [ "$1" = '--root' ]; then
3.13 + shift 1
3.14 + AS_USER="sudo"
3.15 +else
3.16 + AS_USER=
3.17 +fi
3.18 +
3.19 if [ ! "$1" ]; then
3.20 - echo "Need a root image size in GB." 1>&2
3.21 - exit 1
3.22 + echo "Need a root image size in GB." 1>&2
3.23 + exit 1
3.24 fi
3.25
3.26 if [ ! "$2" ]; then
3.27 - echo "Need a swap image size in MB." 1>&2
3.28 - exit 1
3.29 + echo "Need a swap image size in MB." 1>&2
3.30 + exit 1
3.31 fi
3.32
3.33 IMAGESIZE=$1
3.34 @@ -25,13 +37,13 @@
3.35 THISDIR=`dirname "$0"`
3.36
3.37 if [ ! -e "$PACKAGEROOT" ]; then
3.38 - echo "A package root must first be made using user-setup." 1>&2
3.39 - exit 1
3.40 + echo "A package root must first be made using user-setup." 1>&2
3.41 + exit 1
3.42 fi
3.43
3.44 if [ ! "$IMAGEDIR" ]; then
3.45 - echo "An image directory must be defined." 1>&2
3.46 - exit 1
3.47 + echo "An image directory must be defined." 1>&2
3.48 + exit 1
3.49 fi
3.50
3.51 echo "Making the filesystem with size ${IMAGESIZE}GB..."
3.52 @@ -43,5 +55,5 @@
3.53
3.54 # Image population activities.
3.55
3.56 -"$THISDIR/uml-access-image" "$THISDIR/uml-populate-image"
3.57 -"$THISDIR/uml-access-image" "$THISDIR/uml-make-network"
3.58 +"$AS_USER" "$THISDIR/uml-access-image" "$THISDIR/uml-populate-image"
3.59 +"$AS_USER" "$THISDIR/uml-access-image" "$THISDIR/uml-make-network"
4.1 --- a/uml-make-network Tue Jul 12 00:47:20 2011 +0200
4.2 +++ b/uml-make-network Wed Jul 13 00:43:11 2011 +0200
4.3 @@ -17,7 +17,7 @@
4.4 fi
4.5
4.6 if [ ! -e "$IMAGEDIR/etc/hosts" ]; then
4.7 - echo "Creating hosts file..."
4.8 + echo "Creating hosts file..." 1>&2
4.9 echo "$GUESTADDRESS $GUESTNAME" > "$IMAGEDIR/etc/hosts"
4.10 echo "127.0.0.1 localhost" >> "$IMAGEDIR/etc/hosts"
4.11 echo "$HOSTADDRESS $HOSTNAME" >> "$IMAGEDIR/etc/hosts"
4.12 @@ -30,7 +30,7 @@
4.13 fi
4.14
4.15 if [ ! -e "$IMAGEDIR/etc/network/interfaces" ]; then
4.16 - echo "Creating network configuration..."
4.17 + echo "Creating network configuration..." 1>&2
4.18 echo "auto lo" > "$IMAGEDIR/etc/network/interfaces"
4.19 echo "iface lo inet loopback" >> "$IMAGEDIR/etc/network/interfaces"
4.20 echo "iface eth0 inet static" >> "$IMAGEDIR/etc/network/interfaces"
5.1 --- a/uml-populate-image Tue Jul 12 00:47:20 2011 +0200
5.2 +++ b/uml-populate-image Wed Jul 13 00:43:11 2011 +0200
5.3 @@ -25,23 +25,35 @@
5.4 echo "Installing the package root..." 1>&2
5.5 cp -a "$PACKAGEROOT/"* "$IMAGEDIR"/
5.6
5.7 -echo "Removing any linked /dev entry..." 1>&2
5.8 if [ -h "$IMAGEDIR/dev" ]; then
5.9 + echo "Removing linked /dev entry..." 1>&2
5.10 rm "$IMAGEDIR/dev"
5.11 fi
5.12
5.13 +if [ -e "$IMAGEDIR/dev" ]; then
5.14 + echo "Moving existing /dev directory..." 1>&2
5.15 + mv "$IMAGEDIR/dev" "$IMAGEDIR/dev.old"
5.16 +fi
5.17 +
5.18 if [ ! -e "$IMAGEDIR/dev" ]; then
5.19 + echo "Making /dev directory..." 1>&2
5.20 mkdir "$IMAGEDIR/dev"
5.21 fi
5.22
5.23 cp "/dev/MAKEDEV" "$IMAGEDIR/dev"
5.24
5.25 -echo "Removing any linked /proc entry..." 1>&2
5.26 if [ -h "$IMAGEDIR/proc" ]; then
5.27 + echo "Removing any linked /proc entry..." 1>&2
5.28 rm "$IMAGEDIR/proc"
5.29 fi
5.30
5.31 +if [ -e "$IMAGEDIR/proc" ]; then
5.32 + echo "Moving existing /proc directory..." 1>&2
5.33 + mv "$IMAGEDIR/proc" "$IMAGEDIR/proc.old"
5.34 +fi
5.35 +
5.36 if [ ! -e "$IMAGEDIR/proc" ]; then
5.37 + echo "Making /proc directory..." 1>&2
5.38 mkdir "$IMAGEDIR/proc"
5.39 fi
5.40
6.1 --- a/user-do Tue Jul 12 00:47:20 2011 +0200
6.2 +++ b/user-do Wed Jul 13 00:43:11 2011 +0200
6.3 @@ -1,5 +1,4 @@
6.4 #!/bin/sh
6.5 -# Usage: user-do [ --root [ --dev ] ] [ <command and options> ]
6.6
6.7 # Configuration:
6.8 if [ -e userinstall-defaults ]; then
6.9 @@ -7,39 +6,18 @@
6.10 elif [ -e /etc/default/userinstall ]; then
6.11 . /etc/default/userinstall
6.12 else
6.13 - echo "No defaults found for userinstall."
6.14 + echo "No defaults found for userinstall." 1>&2
6.15 exit 1
6.16 fi
6.17
6.18 -if [ "$1" = '--root' ]; then
6.19 +THISDIR=`dirname "$0"`
6.20 +
6.21 +if [ "$1" = '--help' ]; then
6.22 + echo "Usage: `basename $0` [ --root [ --dev ] ] [ <command and options> ]"
6.23 + exit 1
6.24 +elif [ "$1" = '--root' ]; then
6.25 shift 1
6.26 - mount -o bind /proc "$PACKAGEROOT/proc"
6.27 - mount -o bind /sys "$PACKAGEROOT/sys"
6.28 - if [ "$1" = '--dev' ]; then
6.29 - DEV=$1
6.30 - shift 1
6.31 - if [ -e "$PACKAGEROOT/dev.orig" ]; then
6.32 - echo "Devices may already be defined for the installation."
6.33 - else
6.34 - if [ -e "$PACKAGEROOT/dev" ]; then
6.35 - mv "$PACKAGEROOT/dev" "$PACKAGEROOT/dev.orig"
6.36 - fi
6.37 - if [ ! -e "$PACKAGEROOT/dev" ]; then
6.38 - mkdir "$PACKAGEROOT/dev"
6.39 - fi
6.40 - mount -o bind /dev "$PACKAGEROOT/dev"
6.41 - fi
6.42 - fi
6.43 - chroot "$PACKAGEROOT" $*
6.44 - umount "$PACKAGEROOT/proc"
6.45 - umount "$PACKAGEROOT/sys"
6.46 - if [ "$DEV" ]; then
6.47 - umount "$PACKAGEROOT/dev"
6.48 - rmdir "$PACKAGEROOT/dev"
6.49 - if [ -e "$PACKAGEROOT/dev.orig" ]; then
6.50 - mv "$PACKAGEROOT/dev.orig" "$PACKAGEROOT/dev"
6.51 - fi
6.52 - fi
6.53 + sudo "$THISDIR/user-do-root" $*
6.54 else
6.55 fakeroot fakechroot $FAKECHROOT_OPTIONS chroot "$PACKAGEROOT" $*
6.56 fi
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7.2 +++ b/user-do-root Wed Jul 13 00:43:11 2011 +0200
7.3 @@ -0,0 +1,39 @@
7.4 +#!/bin/sh
7.5 +
7.6 +# Configuration:
7.7 +if [ -e userinstall-defaults ]; then
7.8 + . "$PWD/userinstall-defaults"
7.9 +elif [ -e /etc/default/userinstall ]; then
7.10 + . /etc/default/userinstall
7.11 +else
7.12 + echo "No defaults found for userinstall." 1>&2
7.13 + exit 1
7.14 +fi
7.15 +
7.16 +mount -o bind /proc "$PACKAGEROOT/proc"
7.17 +mount -o bind /sys "$PACKAGEROOT/sys"
7.18 +if [ "$1" = '--dev' ]; then
7.19 + DEV=$1
7.20 + shift 1
7.21 + if [ -e "$PACKAGEROOT/dev.orig" ]; then
7.22 + echo "Devices may already be defined for the installation." 1>&2
7.23 + else
7.24 + if [ -e "$PACKAGEROOT/dev" ]; then
7.25 + mv "$PACKAGEROOT/dev" "$PACKAGEROOT/dev.orig"
7.26 + fi
7.27 + if [ ! -e "$PACKAGEROOT/dev" ]; then
7.28 + mkdir "$PACKAGEROOT/dev"
7.29 + fi
7.30 + mount -o bind /dev "$PACKAGEROOT/dev"
7.31 + fi
7.32 +fi
7.33 +chroot "$PACKAGEROOT" $*
7.34 +umount "$PACKAGEROOT/proc"
7.35 +umount "$PACKAGEROOT/sys"
7.36 +if [ "$DEV" ]; then
7.37 + umount "$PACKAGEROOT/dev"
7.38 + rmdir "$PACKAGEROOT/dev"
7.39 + if [ -e "$PACKAGEROOT/dev.orig" ]; then
7.40 + mv "$PACKAGEROOT/dev.orig" "$PACKAGEROOT/dev"
7.41 + fi
7.42 +fi
8.1 --- a/user-path Tue Jul 12 00:47:20 2011 +0200
8.2 +++ b/user-path Wed Jul 13 00:43:11 2011 +0200
8.3 @@ -7,7 +7,7 @@
8.4 elif [ -e /etc/default/userinstall ]; then
8.5 . /etc/default/userinstall
8.6 else
8.7 - echo "No defaults found for userinstall."
8.8 + echo "No defaults found for userinstall." 1>&2
8.9 exit 1
8.10 fi
8.11
9.1 --- a/user-postsetup Tue Jul 12 00:47:20 2011 +0200
9.2 +++ b/user-postsetup Wed Jul 13 00:43:11 2011 +0200
9.3 @@ -1,5 +1,4 @@
9.4 #!/bin/sh
9.5 -# Usage: user-postsetup [ --root [ --dev ] ] [ <country> ]
9.6
9.7 # Configuration:
9.8 if [ -e userinstall-defaults ]; then
9.9 @@ -7,12 +6,15 @@
9.10 elif [ -e /etc/default/userinstall ]; then
9.11 . /etc/default/userinstall
9.12 else
9.13 - echo "No defaults found for userinstall."
9.14 + echo "No defaults found for userinstall." 1>&2
9.15 exit 1
9.16 fi
9.17
9.18 -if [[ "$1" && "$1" = '--root' ]]; then
9.19 - export AS_ROOT=' --root'
9.20 +if [ "$1" = '--help' ]; then
9.21 + echo "Usage: `basename $0` [ --root ] [ <country> ]" 1>&2
9.22 +elif [ "$1" = '--root' ]; then
9.23 + AS_ROOT="$1"
9.24 + AS_USER="sudo"
9.25 shift 1
9.26 fi
9.27
9.28 @@ -20,42 +22,47 @@
9.29
9.30 THIS_DIR=`dirname "$0"`
9.31
9.32 -echo "Copying host DNS configuration..."
9.33 -cp /etc/resolv.conf "$PACKAGEROOT/etc/"
9.34 +if [ ! "$PACKAGEROOT" ] || [ "$PACKAGEROOT" = '/' ]; then
9.35 + echo "The package root must be specified and not be set to / (the system root)." 1>&2
9.36 + exit 1
9.37 +fi
9.38
9.39 -echo "Copying filesystems configuration..."
9.40 -cp /etc/fstab "$PACKAGEROOT/etc/"
9.41 +echo "Copying host DNS configuration..." 1>&2
9.42 +"$AS_USER" cp /etc/resolv.conf "$PACKAGEROOT/etc/"
9.43 +
9.44 +echo "Copying filesystems configuration..." 1>&2
9.45 +"$AS_USER" cp /etc/fstab "$PACKAGEROOT/etc/"
9.46
9.47 -echo "Copying network configuration..."
9.48 -cp /etc/hosts "$PACKAGEROOT/etc/"
9.49 -cp /etc/network/interfaces "$PACKAGEROOT/etc/network/"
9.50 +echo "Copying network configuration..." 1>&2
9.51 +"$AS_USER" cp /etc/hosts "$PACKAGEROOT/etc/"
9.52 +"$AS_USER" cp /etc/network/interfaces "$PACKAGEROOT/etc/network/"
9.53
9.54 -echo "Copying package repository configuration..."
9.55 +echo "Copying package repository configuration..." 1>&2
9.56 if [ "$USERINSTALL_CODENAME" = "$DISTRIB_CODENAME" ]; then
9.57 - cp /etc/apt/sources.list "$PACKAGEROOT/etc/apt/"
9.58 + "$AS_USER" cp /etc/apt/sources.list "$PACKAGEROOT/etc/apt/"
9.59 elif [ -e "$USERINSTALL_CODENAME/sources.list" ]; then
9.60 - cp "$USERINSTALL_CODENAME/sources.list" "$PACKAGEROOT/etc/apt/"
9.61 + "$AS_USER" cp "$USERINSTALL_CODENAME/sources.list" "$PACKAGEROOT/etc/apt/"
9.62 else
9.63 - echo "Attempting to generate a repository definition for $USERINSTALL_CODENAME."
9.64 - "$THIS_DIR/user-makesources" "$PACKAGEROOT/etc/apt/sources.list" "$COUNTRY"
9.65 + echo "Attempting to generate a repository definition for $USERINSTALL_CODENAME." 1>&2
9.66 + "$AS_USER" "$THIS_DIR/user-makesources" "$PACKAGEROOT/etc/apt/sources.list" "$COUNTRY"
9.67 fi
9.68
9.69 if [ "$AS_ROOT" ]; then
9.70 - echo "Mounting filesystems..."
9.71 - "$THIS_DIR/user-do"$AS_ROOT mount -t proc proc /proc
9.72 + echo "Mounting filesystems..." 1>&2
9.73 + "$THIS_DIR/user-do" $AS_ROOT mount -t proc proc /proc
9.74 fi
9.75
9.76 -echo "Updating package details and upgrading..."
9.77 -"$THIS_DIR/user-do"$AS_ROOT apt-get update
9.78 -"$THIS_DIR/user-do"$AS_ROOT apt-get upgrade
9.79 +echo "Updating package details and upgrading..." 1>&2
9.80 +"$THIS_DIR/user-do" $AS_ROOT apt-get update
9.81 +"$THIS_DIR/user-do" $AS_ROOT apt-get upgrade
9.82
9.83 if [ "$AS_ROOT" ]; then
9.84 - echo "Configuring a root installation..."
9.85 - "$THIS_DIR/user-do"$AS_ROOT apt-get install locales console-data
9.86 - "$THIS_DIR/user-do"$AS_ROOT dpkg-reconfigure locales
9.87 - "$THIS_DIR/user-do"$AS_ROOT dpkg-reconfigure tzdata
9.88 - "$THIS_DIR/user-do"$AS_ROOT dpkg-reconfigure console-data
9.89 + echo "Configuring a root installation..." 1>&2
9.90 + "$THIS_DIR/user-do" $AS_ROOT apt-get install locales console-data
9.91 + "$THIS_DIR/user-do" $AS_ROOT dpkg-reconfigure locales
9.92 + "$THIS_DIR/user-do" $AS_ROOT dpkg-reconfigure tzdata
9.93 + "$THIS_DIR/user-do" $AS_ROOT dpkg-reconfigure console-data
9.94
9.95 - echo "Unmounting filesystems..."
9.96 - "$THIS_DIR/user-do"$AS_ROOT umount /proc
9.97 + echo "Unmounting filesystems..." 1>&2
9.98 + "$THIS_DIR/user-do" $AS_ROOT umount /proc
9.99 fi
10.1 --- a/user-setup Tue Jul 12 00:47:20 2011 +0200
10.2 +++ b/user-setup Wed Jul 13 00:43:11 2011 +0200
10.3 @@ -1,5 +1,4 @@
10.4 #!/bin/sh
10.5 -# Usage: user-setup [ --root ] [ <mirror> ]
10.6
10.7 # Configuration:
10.8 if [ -e userinstall-defaults ]; then
10.9 @@ -7,37 +6,43 @@
10.10 elif [ -e /etc/default/userinstall ]; then
10.11 . /etc/default/userinstall
10.12 else
10.13 - echo "No defaults found for userinstall."
10.14 + echo "No defaults found for userinstall." 1>&2
10.15 exit 1
10.16 fi
10.17
10.18 if [ "$1" = "--help" ]; then
10.19 - echo "Usage: user-setup [ --root ] [ <mirror> ]"
10.20 - echo
10.21 - echo "Examples:"
10.22 - echo
10.23 - echo "user-setup"
10.24 - echo "user-setup file:///tmp/$USERINSTALL_CODENAME/"
10.25 - echo "user-setup http://ftp.xx.debian.org/debian/"
10.26 - echo "user-setup --root http://ftp.xx.debian.org/debian/"
10.27 + echo 1>&2 <<EOF
10.28 +Usage: `basename $0` [ --root ] [ <mirror> ]
10.29 +
10.30 +Examples:
10.31 +
10.32 +user-setup
10.33 +user-setup file:///tmp/$USERINSTALL_CODENAME/
10.34 +user-setup http://ftp.xx.debian.org/debian/
10.35 +user-setup --root http://ftp.xx.debian.org/debian/
10.36 +EOF
10.37 exit 1
10.38 +elif [ "$1" = '--root' ]; then
10.39 + AS_ROOT="$1"
10.40 + shift 1
10.41 fi
10.42
10.43 -if [[ "$1" && "$1" = '--root' ]]; then
10.44 - export AS_ROOT=' --root'
10.45 - export MIRROR="$2"
10.46 -else
10.47 - export MIRROR="$1"
10.48 +if [ ! "$PACKAGEROOT" ] || [ "$PACKAGEROOT" = '/' ]; then
10.49 + echo "The package root must be specified and not be set to / (the system root)." 1>&2
10.50 + exit 1
10.51 fi
10.52
10.53 +MIRROR="$1"
10.54 +
10.55 if [ "$AS_ROOT" ]; then
10.56 - debootstrap --include="gnupg,$KEYRING" "$USERINSTALL_CODENAME" "$PACKAGEROOT" "$MIRROR"
10.57 + sudo debootstrap --include="gnupg,$KEYRING" "$USERINSTALL_CODENAME" "$PACKAGEROOT" "$MIRROR"
10.58 else
10.59 fakeroot fakechroot $FAKECHROOT_OPTIONS debootstrap --variant=fakechroot --include="gnupg,$KEYRING" \
10.60 "$USERINSTALL_CODENAME" "$PACKAGEROOT" "$MIRROR"
10.61 fi
10.62
10.63 -echo
10.64 -echo "Don't forget to run the following before installing packages:"
10.65 -echo
10.66 -echo "user-postsetup$AS_ROOT [ <country> ]"
10.67 +echo 1>&2 <<EOF
10.68 +Don't forget to run the following before installing packages:
10.69 +
10.70 +user-postsetup $AS_ROOT [ <country> ]
10.71 +EOF
11.1 --- a/userinstall-defaults-uml Tue Jul 12 00:47:20 2011 +0200
11.2 +++ b/userinstall-defaults-uml Wed Jul 13 00:43:11 2011 +0200
11.3 @@ -6,7 +6,7 @@
11.4 elif [ -e /etc/default/userinstall ]; then
11.5 . /etc/default/userinstall
11.6 else
11.7 - echo "No defaults found for userinstall."
11.8 + echo "No defaults found for userinstall." 1>&2
11.9 exit 1
11.10 fi
11.11