aboutsummaryrefslogtreecommitdiff
path: root/kvmx-create
diff options
context:
space:
mode:
Diffstat (limited to 'kvmx-create')
-rwxr-xr-xkvmx-create59
1 files changed, 49 insertions, 10 deletions
diff --git a/kvmx-create b/kvmx-create
index cb0f3c4..abcec83 100755
--- a/kvmx-create
+++ b/kvmx-create
@@ -113,7 +113,7 @@ function kvmx_config {
kvmx_user_config ssh_support y "Administration using passwordless SSH (y/n)"
kvmx_user_config ssh_custom y "Setup a custom SSH keypair (y/n)"
kvmx_user_config user user "Initial user name"
- kvmx_user_config password $RANDOM "Initial user password"
+ kvmx_user_config password $default_password "Initial user password"
if [ ! -z "$image_base" ]; then
image="$image_base/$hostname/box.img"
@@ -179,12 +179,34 @@ function kvmx_create_vmdebootstrap {
function kvmx_create_custom {
WORK="`mktemp -d`"
+ # Determine kernel architecture
if [ "$arch" == "i386" ]; then
kernel_arch="686"
else
kernel_arch="$arch"
fi
+ # Check the host distro
+ host_distro="`head -n 1 /etc/issue | cut -d ' ' -f 1 | tr '[:upper:]' '[:lower:]'`"
+
+ # Determine distro and kernel package name
+ if echo $mirror | grep 'ubuntu'; then
+ distro="ubuntu"
+ kernel_package="linux-image-generic"
+
+ if [ "$host_distro" == "debian" ]; then
+ kvmx_install_package ubuntu-archive-keyring
+ fi
+ else
+ #elif echo $mirror | grep 'debian'; then
+ distro="debian"
+ kernel_package="linux-image-$kernel_arch"
+
+ if [ "$host_distro" == "ubuntu" ]; then
+ kvmx_install_package debian-archive-keyring
+ fi
+ fi
+
# Check for requirements.
for req in debootstrap parted; do
kvmx_install_package $req
@@ -210,7 +232,7 @@ function kvmx_create_custom {
# Initial system install.
echo "Installing base system..."
kvmx_sudo_run LC_ALL=C DEBIAN_FRONTEND=noninteractive debootstrap \
- --arch=$arch --include linux-image-$kernel_arch $version $WORK/ $mirror
+ --arch=$arch $version $WORK/ $mirror
# Initial configuration.
echo "Applying initial configuration..."
@@ -230,9 +252,23 @@ function kvmx_create_custom {
echo "/dev/vda2 / ext4 errors=remount-ro 0 1" | $SUDO tee $WORK/etc/fstab > /dev/null
# Apt
- if [ "$version" != "sid" ]; then
- echo "deb http://security.debian.org/ $version/updates main contrib non-free" | $SUDO tee -a $WORK/etc/apt/sources.list
- echo "deb-src http://security.debian.org/ $version/updates main contrib non-free" | $SUDO tee -a $WORK/etc/apt/sources.list
+ if [ "$distro" == "debian" ]; then
+ if [ "$version" != "sid" ]; then
+ echo "deb http://security.debian.org/ $version/updates main contrib non-free" | $SUDO tee -a $WORK/etc/apt/sources.list > /dev/null
+ echo "deb-src http://security.debian.org/ $version/updates main contrib non-free" | $SUDO tee -a $WORK/etc/apt/sources.list > /dev/null
+ fi
+ elif [ "$distro" == "ubuntu" ]; then
+ $SUDO sed -i -e 's/main/main restricted universe multiverse/' $WORK/etc/apt/sources.list
+
+ echo "deb http://archive.ubuntu.com/ubuntu/ ${version}-updates main restricted universe multiverse" | $SUDO tee -a $WORK/etc/apt/sources.list > /dev/null
+ echo "deb-src http://archive.ubuntu.com/ubuntu/ ${version}-updates main restricted universe multiverse" | $SUDO tee -a $WORK/etc/apt/sources.list > /dev/null
+ echo "deb http://archive.ubuntu.com/ubuntu/ ${version}-backports main restricted universe multiverse" | $SUDO tee -a $WORK/etc/apt/sources.list > /dev/null
+ echo "#deb-src http://archive.ubuntu.com/ubuntu/ ${version}-backports main restricted universe multiverse" | $SUDO tee -a $WORK/etc/apt/sources.list > /dev/null
+ echo "deb http://security.ubuntu.com/ubuntu ${version}-security main restricted universe multiverse" | $SUDO tee -a $WORK/etc/apt/sources.list > /dev/null
+ echo "#deb-src http://security.ubuntu.com/ubuntu ${version}-security main restricted universe multivers" | $SUDO tee -a $WORK/etc/apt/sources.list > /dev/null
+ echo "#deb http://archive.canonical.com/ubuntu ${version} partner" | $SUDO tee -a $WORK/etc/apt/sources.list > /dev/null
+ echo "#deb-src http://archive.canonical.com/ubuntu ${version} partner" | $SUDO tee -a $WORK/etc/apt/sources.list > /dev/null
+ echo "#deb http://extras.ubuntu.com/ubuntu ${version} main" | $SUDO tee -a $WORK/etc/apt/sources.list > /dev/null
fi
# Mount auxiliary filesystems needed by the bootloader
@@ -240,6 +276,14 @@ function kvmx_create_custom {
kvmx_sudo_run mount none -t sysfs $WORK/sys
kvmx_sudo_run mount -o bind /dev/ $WORK/dev
+ # Initial upgrade
+ echo "Updating list of packages..."
+ kvmx_sudo_run chroot $WORK/ apt-get update
+ kvmx_sudo_run chroot $WORK/ apt-get dist-upgrade -y
+
+ # Install kernel after mounting /proc
+ $APT_INSTALL $kernel_package
+
if [ "$bootloader" == "grub" ]; then
$APT_INSTALL grub-pc
kvmx_sudo_run chroot $WORK/ update-grub
@@ -314,11 +358,6 @@ EOF
echo "$LANG UTF-8" | $SUDO tee -a $WORK/etc/locale.gen > /dev/null
kvmx_sudo_run chroot $WORK/ locale-gen
- # Initial upgrade
- #echo "Updating list of packages..."
- #kvmx_sudo_run chroot $WORK/ apt-get update
- #kvmx_sudo_run chroot $WORK/ apt-get dist-upgrade -y
-
# Basic packages
$APT_INSTALL screen cron lsb-release openssl rsync
$APT_INSTALL spice-vdagent qemu-guest-agent