Att köra virtuella maskiner på en huvudlös server (textbaserad server) går väldigt bra och är inte vidare jättesvårt, bara man vet hur man gör det.
Om du har en huvudlös server och installerar VirtualBox via förrådet kommer du att få med ca 500MB totalt onödiga beroenden. Därför har jag valt att använda mig av DEB-filen som Oracle tillhandahåller på deras hemsida. Enda nackdelen med detta är att du själv får hålla koll på när det kommer en ny version av VirtualBox.
Installation
Börja med att installera en del beroenden:
sudo aptitude install libcurl3 dkms libqt4-network libqtgui4 libxslt1.1 libasound2 libdirectfb-1.2-0 libgl1-mesa-dri libgl1-mesa-glx libqt4-opengl libsdl1.2debian libsdl1.2debian-alsa libsysfs2 libts-0.0-0 libxcursor1 linux-headers-`uname -r` libxdamage1 libxfixes3 libxmu6 libxxf86vm1 tsconf
Ladda sedan hem den senaste versionen av VirtualBox: http://dlc.sun.com/virtualbox/vboxdownload.html. Du kan med fördel använda wget för att hämta DEB-filen:
wget http://download.virtualbox.org/virtualbox/3.2.6/virtualbox-<...>.deb
Installera DEB-filen med kommandot:
sudo dpkg -i virtualbox-<...>.deb
Konfiguration
För att kunna använda VirtualBox behöver din användare tillhöra gruppen vboxusers, du lägger till dig i gruppen med kommandot:
sudo adduser <Användare> vboxusers
Se till att vboxusers har lämpliga rättigheter genom att skapa filen 40-permissions.rules i mappen /etc/udev/rules.d/:
sudo nano /etc/udev/rules.d/40-permissions.rules
I filen lägger du till följande rad:
KERNEL=="vboxdrv", GROUP="vboxusers", MODE="0660"
Spara ändringarna och avsluta textredigeraren med kommandot:
Ctrl-X + Y
Skapa en virtuell maskin
Skapa en profil för den virtuella maskinen med kommandot:
VBoxManage createvm -name <Namn> -register
Sedan kommer vi att välja mängden RAM-minne som maskinen ska få åtkomst till och även välja en bryggad anslutning så att den virtuella maskinen får en egen IP-adress:
VBoxManage modifyvm debian-server --memory 512 --pae on --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0
Skapa en virtuell hårddisk:
VBoxManage createhd --filename <Namn>.vdi --size <Storlek i megabyte> --variant Fixed --register
Skapa en IDE-kontroller vid namn IDE0:
VBoxManage storagectl <Namn> --name IDE0 --add ide
Anslut den virtuella hårddisken till maskinen:
VBoxManage storageattach <Namn> --storagectl IDE0 --port 0 --device 0 --type hdd --medium <Namn>.vdi
Skapa och bind en virtuell DVD-enhet och montera ISO-filen:
VBoxManage storageattach <Namn> --storagectl IDE0 --port 1 --device 0 --type dvddrive --medium /home/hund/debian-504-i386-netinst.iso
Nu är du klar och allting ska fungera!
Eftersom du inte har ett grafiskt användargränssnitt för att komma åt dom virtuella maskinerna, använder man sig av Remote Desktop Protocol (RDP) för att ansluta till maskinen/maskinerna.
Om du tänker köra flera virtuella maskiner på samma server, behöver varje maskin en unik port att lyssna på för att du ska komma åt dom. Du ändrar standardporten på en maskin med kommandot:
VBoxManage modifyvm debian-server --vrdpport <Port>
Starta och anslut till din virtuella maskin
Börja med att starta din nya virtuella maskin med kommandot:
VBoxHeadless -startvm <Namn>
Anslut sedan till maskinen via rdesktop med kommandot:
rdesktop -k sv-se -a 16 <Värdens IP-adress>
Avmontera ISO-filen efter installationen
När du har installerat ditt operativsystem på den virtuella maskinnen kommer du säkert vilja avmontera ISO-filen. Detta ordnar du med kommandot:
VBoxManage closemedium dvd <UUID-värdet>
Jag har inte lyckats hitta något smidigt kommando för att lisa UUID-värdet, utan du får kolla i filen ~/.VirtualBox/VirtualBox.xml vad DVD-enheten har för värde. Du kan enkelt visa innehållet i filen med kommandot:
cat ~/.VirtualBox/VirtualBox.xml
I outputen letar du reda på denna del:
<DVDImages>
<Image uuid="{72937dc7-5fc3-491f-998f-hd52f4b96258}" location="/home/hund/debian-504-i386-netinst.iso"/>
</DVDImages>
Den fetmarkerade texten är alltså UUID-värdet.












Lathund är en blogg om Ubuntu för alla, oavsett kunskapsnivå. Jag som ligger bakom bloggen är känd under pseudonymen Hund och är 26 år gammal.
Du glömde den där infon om hur man kommer åt den sen
VBox är ju lite dum och kräver en form av "portforwarding"
Jag bloggade om hur jag gjorde för att få det att fungera.
Jag kan tipsa om kvm+Libvirt också, som är helt fri och stöds officiellt av Ubuntu:
https://help.ubuntu.com/10.04/serverguide/C/libvirt.html
RedHat-gänget ligger bakom libvirt, och det känns gjort mer på "rätt" sätt än VirtualBox tycker jag.
/Simon
Härligt! Du har fått med hela processen. Köra huvudlöst hade jag koll på. Nu vill jag mecka med det andra också, när jag kommer hem från semestern.
Lägger väl till portforward biten då, krävs ändå för att det ska funka
Format:
VBoxManage setextradata GuestName "VBoxInternal/Devices/pcnet/0/LUN#0/Config/DescriptiveName/HostPort" HostPort
VBoxManage setextradata GuestName "VBoxInternal/Devices/pcnet/0/LUN#0/Config/DescriptiveName/GuestPort" GuestPort
VBoxManage setextradata GuestName "VBoxInternal/Devices/pcnet/0/LUN#0/Config/DescriptiveName/Protocol" Protocol
Exempel:
VBoxManage setextradata GuestName "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 22
VBoxManage setextradata GuestName "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
VBoxManage setextradata GuestName "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
Läs mer:
http://www.sitepoint.com/blogs/2009/10/27/build-your-own-dev-server-with-virtualbox/#
Värt att nämna är också om du har Windows Vista eller nyare version av Windows så kan du eventuellt ha Intel/MT 1000 virtual network adapter istället och då blir det följande exempelinställningar för portforwarding för ssh:
VBoxManage setextradata GuestName "VBoxInternal/Devices/e1000/0/LUN#0/Config/ssh/HostPort" 22
VBoxManage setextradata GuestName "VBoxInternal/Devices/e1000/0/LUN#0/Config/ssh/GuestPort" 22
VBoxManage setextradata GuestName "VBoxInternal/Devices/e1000/0/LUN#0/Config/ssh/Protocol" TCP
Då pcnet är utbytt mot e1000 (Intel PRO/1000 MT Desktop).
Hade länge problem med detta, men till slut kom jag på det
Testade Windows 2008 Server som Guest OS, och då fungerade endast denna adapter.
~~ http://www.virtualbox.org/manual/ch06.html#nichardware
/Mvh Martin
@Tagert:
Där ser man. Tack för tips.