diff options
-rw-r--r-- | app-emulation/qemu-init-scripts/files/qemu-conf.example | 94 | ||||
-rw-r--r-- | app-emulation/qemu-init-scripts/files/qemu-init-script | 40 |
2 files changed, 111 insertions, 23 deletions
diff --git a/app-emulation/qemu-init-scripts/files/qemu-conf.example b/app-emulation/qemu-init-scripts/files/qemu-conf.example index edee67c..54f089f 100644 --- a/app-emulation/qemu-init-scripts/files/qemu-conf.example +++ b/app-emulation/qemu-init-scripts/files/qemu-conf.example @@ -1,12 +1,88 @@ -VMSOFTWARE=kvm -MACADDR=52:54:1C:10:34:35 +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# DO NOT MODIFY THIS FILE DIRECTLY! CREATE A COPY AND MODIFY THAT INSTEAD! + +## Network settings + +# MAC address +# +# You can generate a new one with this command: +# +# echo "52:54:00:$(dd if=/dev/urandom bs=512 count=1 2>/dev/null | md5sum | sed 's/^\(..\)\(..\)\(..\).*$/\1:\2:\3/')" +# +MACADDR=52:54:00:10:34:35 + +# NIC type. +# +# Allowed: +# nat - Automatic qemu NAT network. +# br - Bridged network. Requires 'net.br0' service up and running. +# none - No network. +# +# Defaults to 'nat'. +# +#NIC_TYPE=br + +# NIC model. +# +# See qemu documentation. +# +# Defaults to 'virtio'. +# +#NIC_MODEL= + + +## Storage settings + +# Disk image DISKIMAGE=/mnt/kvm/gentoo64.qcow2 -MEMORY=1G -SMP=4 + +# Drive model. +# +# See qemu documentation. +# +# Defaults to 'virtio'. +# +#DRIVE_MODEL= + + +## General settings + +# RAM memory allocated for the virtual machine +# +# Defaults to 512M +# +#MEMORY=1G + +# Processor cores allocated for the virtual machine. +# +# Defaults to 1 core +# +#SMP=2 + +# Foreground settings +# +# Allowed: +# vnc=:24 - Runs VNC at :24 +# sdl=:0 - Runs SDL in X.org server running at :0 +# none - Disables foreground +# +# Defaults to 'none'. +# FOREGROUND="vnc=:24" -NIC_MODEL=virtio -DRIVE_MODEL=virtio -#OTHER_ARGS="-boot order=dc -cdrom /mnt/archive/gentoo/install-amd64-minimal-20100408.iso" -OTHER_ARGS=" -boot order=cd -cdrom /mnt/archive/gentoo/systemrescuecd-x86-1.5.6.iso" -#OTHER_ARGS="-vga std -boot order=dc -cdrom /dev/sdc" + +# Low privilege user that runs the virtual machine. +# +# Defaults to 'nobody'. +#DROP_USER= + +# Timeout - How many seconds to wait before trying to hard-kill the virtual +# machine. +# +# Defaults to 300 seconds. +# #TIMEOUT=60 + +# Any other qemu options you may want to use +OTHER_ARGS="-boot order=cd -cdrom /mnt/archive/gentoo.iso" diff --git a/app-emulation/qemu-init-scripts/files/qemu-init-script b/app-emulation/qemu-init-scripts/files/qemu-init-script index 1940a4b..2102cc0 100644 --- a/app-emulation/qemu-init-scripts/files/qemu-init-script +++ b/app-emulation/qemu-init-scripts/files/qemu-init-script @@ -1,13 +1,17 @@ #!/sbin/runscript -# Copyright 2009-2012 Gentoo Foundation +# Copyright 2009-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# To use this, symlink a target kvm instance to this script. -# Literally, ln -s qemu /etc/init.d/<vm-type>.<vmname> -# then have a config named /etc/conf.d/<vm-type>.<vmname> +# You are not supposed to run this script directly. Create a symlink +# for the qemu instance you want to run as well as a copy of the +# configuration file and modify it appropriately like so... # -# Allowed vm-types are currently qemu and kvm. - +# ln -s qemu /etc/init.d/kvm.myserver +# cp /etc/conf.d/qemu /etc/conf.d/kvm.myserver +# nano /etc/conf.d/kvm.myserver +# +# where 'kvm' is the virtual machine type ('qemu' and 'kvm' allowed) +# and 'myserver' is the name of your instance. VMNAME=${SVCNAME#*.} VMTYPE=${SVCNAME%.*} @@ -92,12 +96,24 @@ send_command() { echo "$@" | ${command} > /dev/null 2>&1 } -sanity_check() { +symlink_check() { if [ "${VMNAME}" = "${SVCNAME}" ]; then - eerror "You have to create an init script for each vm:" - eerror " ln -s vm /etc/init.d/vm.vmname" + eerror "You are not supposed to run this script directly. Create a symlink" + eerror "for the qemu instance you want to run as well as a copy of the" + eerror "configuration file and modify it appropriately like so..." + eerror + eerror " ln -s qemu /etc/init.d/kvm.myserver" + eerror " cp /etc/conf.d/qemu /etc/conf.d/kvm.myserver" + eerror " `basename "${EDITOR:-nano}"` /etc/conf.d/kvm.myserver" + eerror + eerror "where 'kvm' is the virtual machine type ('qemu' and 'kvm' allowed)" + eerror "and 'myserver' is the name of your instance." return 1 fi +} + +sanity_check() { + symlink_check || return 1 DISKIMAGE=$(readlink -f "${DISKIMAGE}") if [ ! -f "${DISKIMAGE}" -a ! -b "${DISKIMAGE}" ]; then @@ -183,11 +199,7 @@ start() { } reboot() { - if [ ${VMNAME} = ${SVCNAME} ]; then - eerror "You have to create an init script for each vm:" - eerror " ln -s vm /etc/init.d/vm.vmname" - return 1 - fi + symlink_check || return 1 ebegin "Rebooting ${VMNAME}" send_command system_reset |