![]()
(Laatst bijgewerkt op 10 juli 2011; zie onderaan artikel voor meer informatie)
In het artikel ‘Ubuntu: de perfecte server – Minimale server installeren‘ heb ik beschreven hoe je een minimale server moet installeren. Dit artikel beschrijft hoe je in deze minimale server een of meerdere virtuele server machines kan installeren. Dit doen we met behulp van Oracle’s Virtualbox. De minimale server is de gastheer en de virtuele server machine de gast. Deze virtuele machines, geïnstalleerd zoals hieronder beschreven, werken perfect in de minimale server.
Elke virtuele machine heeft de volgende functies:
- Maakt gebruik van het fysieke netwerk.
Dit doen we door gebruik te maken van de industriestandaard virtio netwerkdriver, die standaard in de kernel van Ubuntu zit. - Optimaal geheugenbeheer.
Het beheren van het geheugen doet VirtualBox met behulp van een aantal specifieke functies:- Nested Paging: dit zorgt er voor dat een aantal geheugenbeheeractiviteiten door de hardware wordt uitgevoerd in plaats van door VirtualBox. Dit hoeft de hypervisor niet meer te regelen en deze virtualisatieslag kan dus overgeslagen worden. Dit geeft een enorm performancevoordeel.
- Ballooning, wat wil zeggen dat het toegewezen geheugen aan een virtuele machine gewijzigd kan worden terwijl deze actief is. Dit werkt door het geheugen van een virtuele machine te verkleinen en dit vrijgekomen geheugen te alloceren aan een andere virtuele machine. VirtualBox beheert dit automatisch en het vrijgekomen geheugen wordt niet teruggegeven aan de gastheer, maar blijft alleen beschikbaar voor VirtualBox.
- Page Fusion voorkomt geheugen duplicatie tussen een of meerdere virtuele machines met exact hetzelfde besturingssysteem (incl. de patches).
Dit functioneert alleen op een 64-bit besturingssysteem.
Voor zowel Ballooning als Page Fusion moet de VirtualBox Guest Additions geïnstalleerd zijn.
- USB gebruik.
- Optimaal IO door virtuele machine.
VirtualBox, draaiende in de gastheer, opent zijn image-bestand als elk normaal programma. Bij het open van het bestand wordt deze door het besturingssysteem van de gastheer gecached. Het voordeel is performance. Er zijn echter ook een aantal nadelen:- Het image-bestand van een virtuele machine kan behoorlijk groot worden en kan daardoor veel geheugenruimte in beslag nemen. Geheugen wat je graag ter beschikking hebt voor de server.
- Als de gastheer uitgesteld schrijven hanteert (disk write caching), dan veronderstelt VirtualBox dat na een schrijfactie deze actie ook daadwerkelijk is uitgevoerd, ook al is dit niet zo. Dit kan verlies van data veroorzaken bij een crash of het plotseling uitvallen van de computer. Linux (en dus ook Ubuntu) maakt standaard gebruik van dit feature en schrijft elke 30 seconden de cache terug naar schijf. Deze terugschrijfactie wordt ook bij het uitzetten van Linux uitgevoerd. Ook Windows kent een dergelijk disk write caching.
- Zowel de gastheer als de gast hebben hun eigen caching en wordt de data tweemaal gecached, terwijl eenmaal voldoende is.
Het is dus aan te bevelen om de optie ‘Gebruik gastheer I/O cache’ uit te vinken. Het schrijven wordt dan uitgevoerd door VirtualBox in een eigen buffer op de gastheer en het lezen wordt uitgevoerd door de gast. SCSI, SATA en SAS controllers ondersteunen dit asynchroon lezen en schrijven. Let op: IDE ontbreekt hier en wordt dus niet ondersteund voor asynchroon lezen en schrijven.
Namen die jezelf moet invoeren in dit artikel worden aangegeven tussen < en >, bijvoorbeeld <naam server>. Let op dat je overal dan dezelfde naam gebruikt.
Virtualbox installeren
Softwarebronnen van VirtualBox toevoegen
We gaan de softwarebronnen van VirtualBox toevoegen in een eigen instantie van de Ubuntu softwarebronnen. We willen de allerlaatste versie van VirtualBox hebben. Een eigen instantie van de Ubuntu softwarebronnen is handig als je deze achteraf weer wilt verwijderen. Dit doen we door het volgende commando’s uit te voeren:
echo "deb http://download.virtualbox.org/virtualbox/debian natty contrib" | sudo tee -a /etc/apt/sources.list.d/virtualbox.list
Verder hebben we de Oracle public key nodig om VirtualBox veilig te kunnen downloaden en installeren:
wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
VirtualBox installeren
Voer het volgende commando uit:
sudo apt-get update && sudo apt-get install linux-headers-$(uname -r) build-essential dkms virtualbox-4.0
Dkms installeren we zodat de gastheer kernelmodules van VirtualBox, zijnde vboxdrv, vboxnetflt en vboxnetadp, geupdate worden wanneer de Ubuntu kernel geupgrade wordt.
Waarschuwingen tijdens de installatie kan je negeren.
VirtualBox Extension Pack installeren
Natuurlijk willen we graag gebruik maken USB apparaten. Hiervoor moeten we de VirtualBox Extension Pack op de gastheer installeren. Voordat we het Extension Pack kunnen installeren moeten we deze eerst downloaden. Eerst maken we een download folder aan:
mkdir ~/Downloads
cd ~/Downloads
Nu kunnen we in deze download folder het Extension Pack downloaden.
- Voor VirtualBox 4.0.4 (70112):
wget http://download.virtualbox.org/virtualbox/4.0.4/Oracle_VM_VirtualBox_Extension_Pack-4.0.4-70112.vbox-extpack - Voor VirtualBox 4.0.8 (71778):
wget http://download.virtualbox.org/virtualbox/4.0.8/Oracle_VM_VirtualBox_Extension_Pack-4.0.8-71778.vbox-extpack - Voor Virtualbox 4.0.10 (72479):
wget http://download.virtualbox.org/virtualbox/4.0.10/Oracle_VM_VirtualBox_Extension_Pack-4.0.10-72436.vbox-extpack
Nu we het Extension Pack hebben gedownload kunnen we deze gaan installeren.
- Voor VirtualBox 4.0.4 (70112):
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.0.4-70112.vbox-extpack - Voor VirtualBox 4.0.8 (71778):
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.0.8-71778.vbox-extpack - Voor VirtualBox 4.0.10 (72479):
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.0.10-72436.vbox-extpack
Als laatste voegen we de user toe aan de groep vboxusers. Dit is nodig wanneer je de USB functionaliteit wilt gebruiken.
sudo adduser <loginnaam> vboxusers
Om deze gebruiker nu te activeren moet je even uitloggen en weer inloggen.
Virtueel Machine creëren
Nu de VirtualBox software geïnstalleerd is, kunnen we een virtuele machine gaan aanmaken. Voer hier voor de volgende commando’s in de gastheer uit:
Virtuele machine aanmaken
VBoxManage createvm --name "<naam server>" --ostype Ubuntu_64 --register
Om alle mogelijke ostypes te zien moet je het commando VBoxManage list ostypes uitvoeren.
VBoxManage modifyvm "<naam server>" --memory 512 --acpi on
VBoxManage modifyvm "<naam server>" --vtxvpid on --nestedpaging on
De optie nestedpaging zorgt er voor dat de virtuele machine het optimale geheugenbeheer van de CPU voor virtuele machines. Dit levert een extra performance op.
Indien er meerdere virtuele machines in de gastheer draaien, dan heeft elke virtuele machine zijn eigen remote desktoppoort nodig waar op de virtuele machine luistert. Standaard is dit de RDP poort 3389, maar je kan ook handmatig een andere poort toekennen.
VBoxManage modifyvm "<naam server>" --vrdeport <poortnummer>
Boot volgorde en netwerk aanmaken
VBoxManage modifyvm "<naam server>>" --boot1 dvd --boot2 disk
VBoxManage modifyvm "<naam server>" --nic1 bridged --nictype1 virtio --bridgeadapter1 wlan0
De virtio driver zorgt er voor dat de virtuele machine direct toegang heeft tot het netwerk. In ons geval het draadloze netwerk. Vandaar de bridge adapter wlan0.
USB aanmaken
VBoxManage modifyvm "<naam server>" --usb on --usbehci on
De optie usb is voor USB1 en usbehci voor USB2.
Virtuele schijf aanmaken
VBoxManage createhd --filename "<filenaam>" --size 8000
Indien we bij het commando createhd de optie variant niet specificeren wordt standaard dynamische grootte gebruikt.
VBoxManage storagectl "<naam server>" --name "<naam controller>" --add sata --controller IntelAhci --hostiocache off
De optie hostiocache off specificeert dat het schrijven van data uitgevoerd wordt door VirtualBox in een eigen buffer op de gastheer en het lezen uitgevoerd wordt door de gast. Zie ook de bespreking in de inleiding.
VBoxManage storageattach "<naam server>" --storagectl "<naam controller>" --port 0 --device 0 --type hdd --medium "<filenaam>.vdi"
Gast installeren
De gast is het besturingssysteem wat in de virtuele machine geïnstalleerd gaat worden. Voor de perfect server gebruiken we weer de Ubuntu Server editie die we ook bij de minimale server gebruikt hebben.
cd ~/Downloads
wget http://releases.ubuntu.com/natty/ubuntu-11.04-server-amd64.iso
VBoxManage storageattach "<naam server>" --storagectl "<naam controller>" --port 1 --device 0 --type dvddrive --medium /home/[loginnaam]/Downloads/ubuntu-11.04-server-amd64.iso
VBoxHeadless --startvm "<naam server>"
Je krijgt nu een melding over de versie van VirtualBox en dat de VRDE server aan het luisteren is op poort 3389.
Log nu vanaf een Terminal Server Client op een Ubuntu client aan op de gastheer om de Ubuntu server in de virtuele machine te installeren. Gebruik het IP-adres met poortnummer of de naam met poortnummer van de gastheer (dus niet van de virtuele machine) en het RDPv5 protocol. Dus 192.168.1.100:3389. Als alles goed gaat zie je het installatiescherm. Volg de instructies op het scherm. Gebruik mijn vorige artikel (‘Ubuntu: de perfecte server – Minimale server installeren‘) als voorbeeld. Specificeer een IP-adres eventueel handmatig als via DHCP niet gaat. In plaats van de handmatige schijfindeling zou je nu ook voor ‘Begeleid – benut gehele schijf’ kunnen kiezen. Kies in het selectie software venster de server uit die je wilt installeren.
Aan het eind moet je rebooten. Het iso-bestand wordt automatisch afgekoppeld. Log nu weer vanaf de Terminal Server Client op een Ubuntu client aan op de gastheer en poort 3389.
De geïnstalleerde Ubuntu server upgraden
Allereerst upgraden we alle geïnstalleerde software:
sudo apt-get update || sudo apt-get upgrade
VirtualBox Guest Additions
Nu de Ubuntu server in de virtuele machine geïnstalleerd is, kunnen we de Guest Additions installeren. Deze zijn nodig voor Ballooning en Page Fusion (zie inleiding). Hiervoor voeren we op de gastheer het volgende commando uit. Dit kan terwijl de virtuele machine actief is:
VBoxManage storageattach "<naam server>" --storagectl "<naam controller>" --port 1 --device 0 --type dvddrive --medium /usr/share/virtualbox/VBoxGuestAdditions.iso
Voer de volgende commando’s (in de virtuele machine) uit om de Guest Additions te installeren:
sudo apt-get update && sudo apt-get install dkms linux-headers-$(uname -r) build-essential
sudo mount /dev/cdrom /mnt
cd /mnt
sudo ./VBoxLinuxAdditions.run --nox11
Let op eventuele foutmeldingen. De foutmelding ‘Installing the Window System drivers …fail!’ kan je negeren, omdat het een server is en die heeft geen X11 interface.
Nu kan je het iso-bestand weer verwijderen:
VBoxManage storageattach "<naam server>" --storagectl "<naam controller>" --port 1 --device 0 --type dvddrive --medium emptydrive
Virtuele machine afsluiten
Voor onze vervolgacties mag de virtuele machine niet actief zijn en gaan we deze dus af sluiten. Geef het commando:
sudo shutdown -h now.
De optie -h staat voor halt.
Je komt nu terug in de gastheer.
Toevoegen USB apparaat
Het toevoegen van een USB apparaat doe je door een apparaat op de gastheer aan te sluiten en het volgende VBoxManage commando’s uit te voeren:
VBoxManage list usbhost
Dit commando laat informatie over USB-apparaten op de gastheer zien. Informatie die nuttig is voor de bouw van USB-filters.
VBoxManage usbfilter add 1,0 --target "<naam server>" --name "HP F4100" --action hold --active yes --vendorid 03F0 --productid 7E04 --revision 0100 --manufacturer HP --product "Deskjet F4100 series" --serialnumber CN73J1Y2BC04TJ
De parameters die ingevuld zijn in bovenstaand commando kan je terugvinden in het screenshot boven het commando.
VBoxBalloonCtrl service
Vanaf VirtualBox 4.0.8 is er een nieuw gastheer uitvoerbaar programma genaamd VBoxBalloonCtrl beschikbaar voor het automatisch regelen van het geconfigureerde virtuele machine geheugen. Dit is vooral handig voor serveromgevingen waar de virtuele machines dynamisch meer of minder geheugen eisen tijdens de runtime.
VBoxBalloonCtrl controleert periodiek het vrije geheugen van de virtuele machines en past het huidige geheugen automatisch aan door het te laten krimpen. Het vrij gekomen geheugen kan worden toegevoegd aan het geheugen van een andere virtuele machine. Deze afhandeling geldt alleen voor virtuele machine die de Gast Additions hebben geïnstalleerd.
Voor het instellen van VBoxBalloonCtrl en de maximale grootte van het geheugen aan te passen kunnen de volgende commando’s worden gebruikt:
globaal: VBoxManage setextradata global VBoxInternal/Guest/BalloonSizeMax <grootte in MB>
lokaal: VBoxManage setextradata "VM-Name" VBoxInternal/Guest/BalloonSizeMax <grootte in MB>
Indien gespecificeerd overschrijft het lokale commando altijd het globale commando. Anders geldt het globale commando.
De grootte in MB hangt af van de server en het minimale geheugen wat deze nodig heeft. Dit kan je zien met behulp van het commando free.
Virtuele machine automatisch starten bij booten en stoppen bij shutdown
Een virtuele machine (gast) automatisch starten bij het starten van de server (gastheer) en stoppen bij een shutdown van de server doen we door het implementeren van een script.
cd /etc/init.d
sudo vi vboxvms-start-stop
Je komt nu in de vi-editor. Druk op de i-toets van je toetsenbord zodat je in insert-modus komt en voer het volgende script in. Zorg dat je geen fouten maakt.
#!/bin/bash
#
# vboxvms-start-stop
### BEGIN INIT INFO
# Provides: VboxHeadless VBoxManage
# Required-Start: vboxdrv
# Required-Stop: vboxdrv
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Start VMS at boot and stops VMS at shutdown
### END INIT INFO
vboxuser='<loginnaam gebruiker>'
#
# Check for a commandline option
#
case "$1" in
start)
nohup su - $vboxuser -c "VBoxHeadless --startvm '<naam server>' &" > /dev/null
;;
stop)
nohup su - $vboxuser -c "VBoxManage controlvm '<naam server>' savestate" > /dev/null
;;
*)
;;
esac
exit 0
N.B. Als je meer virtuele machines automatisch wilt starten en stoppen dan neem je per virtuele machine een extra regel op in de start) en stop) sectie.
Sla de wijziging op en sluit vi door op de toetsen : w q te drukken.
Het script moet uitvoerbaar zijn:
sudo chmod +x /etc/init.d/vboxvms-start-stop
Als laatste moet het script aan de systeem startup en shutdown runlevels worden toegevoegd:
sudo update-rc.d vboxvms-start-stop defaults 99 10
Als je een fout hebt gemaakt, dan kan je het script van de runlevels verwijderen door het commando sudo update-rc.d -f vboxvms-start-stop remove uit te voeren. Daarna kan je het script weer aanpassen.
Shutdown van de server (gastheer) via power button
Aangezien de server (gastheer) een headless server is moeten we deze ook kunnen afsluiten als er geen scherm, toetsenbord en muis aangekoppeld is. Dit doen we door eenmaal kort op de aan-uit knop) powerbutton van de computer te drukken. Hiervoor moet wel acpi geïnstalleerd worden:
sudo apt-get install acpid
De virtuele machine is nu gebruiksklaar en kan dus weer gestart worden.
Het is alweer een lang artikel geworden, maar hopelijk helpt dit jullie goed op weg met VirtualBox in een serveromgeving.
Wijziging 02 juli 2011: bij VirtualBox versie 4.0.10 lopen de versienummers van VirtualBox en het Extension Pack niet synchroon. Ik heb het artikel hierop aangepast. Het script wat ik voor het downloaden en installeren gemaakt heb, is verwijderd en vervangen door de daadwerkelijke download- en installatiecommando’s.
Wijziging 10 juli 2011: indien er meerdere virtuele machines in een computer draaien dan hebben deze hun eigen VRDE poort nodig. Dit is toegevoegd bij het creëren van de virtuele machine.


xxx
Ik ben bezig om de virtualbox in de minimale server te installeren.
Dit gaat zeer moeizaam…!!!! Maar wel de moeite waard..
Ik kom het volgende probleem tegen….
Na het verwerken van het volgende commando:
sh ./DownloadVBoxExtPack
Komt deze terug met de volgende foutmelding….
Verbinding maken met dlc.sun.com.edgesuite.net|92.123.65.41|:80…. verbonden
HTTP-verzoek is verzonden; wachten op antwoord… 404 not Found
2011-06-30 21:27;20 fOUT 404: Not Found
Ik kom niet verder…..wat doe ik fout?
Piet, ja ik heb er wel beeld ij dat het moeizaam gaat. Je hebt alleen de commandoregel.
De foutmelding duidt erop dat het bestand wat je wilt downloaden niet gevonden wordt/is. Dat kan de volgende oorzaken hebben:
1) De server is niet beschikbaar. Dit kunnen we uitsluiten omdat er een melding komt dat er wel een verbinding met de server tot stand is gekomen (:80…verbonden)
2) Een typefout. Ik ga hier niet van uit daar ik denk dat je dat wel gecontroleerd hebt.
3) Dan blijft alleen nog over dat je VirtualBox 4.0.8 geïnstalleerd hebt en een paar dagen later het Extension Pack gedownload hebt wat inmiddels op versie 4.0.10 zit. Om dit te controleren voer je het volgende commando uit:
VBoxManage -vAls hier versie 4.0.10 uitkomt dan heb je toch ergens een typefout gemaakt.
Als hier versie 4.08 uitkomt dan moet je eerst even VirtualBox upgraden: sudo apt-get update && sudo apt-get upgrade
Daarna kan je sh ./DownloadVBoxExtPack opnieuw uitvoeren.
Ik hoor het wel of je er uitkomt.
Beste Leo,
Heb gedaan wat je me geadviseerd hebt…
Na het commando VBoxManage -v komt hij terug met 4.0.10r72479
Dus waarschijnlijk ergens toch een type fout gemaakt!!
Alleen na alles meerdere keren gecontroleerd te hebben niks kunnen ontdekken.
Om nu toch verder te kunnen gaan…is het dan ook mogelijk om mijn virtualbox die geinstalleerd is..te verwijderen???
Dit zou mij dan op een simpele manier de mogelijkheid geven om nogmaals alles opnieuw te installeren.
Hierna komt voor mij nog een hele lange weg…maar dan zie ik wel waar ik vastloop.
Voorlopig wil ik door gaan…lol
Groeten piet
Got it: de Extension Pack versie komt niet overeen met de versie van VirtualBox. Tot nu toe liepen die twee synchroon, maar nu niet meer.
In plaats van het script kan je het Extension Pack ook binnen halen met het volgende commando:
wget http://download.virtualbox.org/virtualbox/4.0.10/Oracle_VM_VirtualBox_Extension_Pack-4.0.10-72436.vbox-extpackDaarna kan je gewoon verder met artikel waar je gebleven bent.
Ik zal morgen mijn artikel hierop aanpassen.
PS artikel is inmiddels aangepast.
Hallo Leo,
Interessante site heb je.
Ik heb ondertussen zelf ook al de nodige ervaring met Ubuntu en VirtualBox.
Bevalt opzich goed, alleen blijft het oppassen met het maken van een backup als je deze ook wilt kunnen restoren op een andere machine.
Je loopt dan tegen problemen met het MAC-address aan, dit schijnt een typisch Ubuntu / Debian issue te zijn.
Veel succes met je blog,
Flanux
Dank je.
Je hebt gelijk, maar elke computer heeft zijn eigen MAC-adressen. Zie hier voor de oplossing: http://www.virtualbox.org/ticket/660
Goed geschreven, vanmorgen uitgevoerd zoals er staat, alles is gelukt. (Het opstart scriptje werkte in eerste instantie niet, door dat ik geen Vi gebruiker ben, maar Nano heb gebruikt, nano veranderd de ‘ en ” naar een .)
Misschien is het leuk om een vervolg te schrijven over het inrichten van een mail server. En de beveiliging daarvan?
Ik hoop binnenkort weer iets leuks tegen te komen op deze website.
Goed bezig, ga zo door! :)
Dank je en dat is inderdaad een bekend probleem van nano, maar ook andere editors kennen dit probleem.
Mailserver: goed idee, maar wel een lastige omdat meerdere wegen naar Rome leiden.
Eerst komt er nog een beschrijving van een download server (bittorrent).
Prima tutorial. Eén suggestie: Nadat een USB apparaat is toegevoegd dient deze nog aangekoppeld te worden. Dit kan met het volgende commando: VBoxManage controlvm “VM-name” usbattach . Het UUID is op te vragen via bovenstaand commando: VBoxManage list usbhost
Het is mij overigens niet bekend of na iedere reboot dit opnieuw uitgevoerd dient te worden.
Ja dat kan ook en hierbij hoef je geen usbfilters te creëren. Je kan met controlvm usbattach on-the-fly een usb aankoppelen zonder de vm te beïnvloeden of te herstarten. M.a.w. dit is niet permanent en moet je telkens opnieuw doen als je een USB aankoppelt.
De manier zoals ik beschreven heb is wel permanent. Als je eenmaal de usb-filter (per USB apparaat) hebt aangemaakt, dan hoef je alleen een USB apparaat in de poort te steken en hij is zichtbaar in de vm.
Wanneer de host (Debian 6.0.2 headless) herstart, wordt in de gast de USB printer (HP Color Laserjet CP1215) niet automatisch aangekoppeld. De USB filter heb ik aangemaakt en user is toegevoegd aan groep ‘vboxusers’. Wat ik graag zou willen is dat bij een herstart van de host de USB printer automatisch (zonder kabel af en aan te koppelen) zichtbaar is in de gast.
Okay, volg mijn handleiding Ubuntu: de perfecte server – VirtualBox printserver en dan zijn al je problemen opgelost.
De handleiding had ik inmiddels ook al aandachtig doorgenomen. Echter om gebruik te maken van de volledige functionaliteiten van de HP CLJ CP1215 is de gast Windows 7. Voor de printer zijn geen (native) drivers te krijgen. Ik heb CUPS i.c.m. deze printer op de host al functionerend gehad, vanwaar ook mijn overstap.
In jouw handleiding wordt gesproken over het toevoegen van een USB-filter. Ook dit had ik al eerder gedaan. Ik moet iedere keer via ‘vboxmanage controlvm XYZ usbattach ‘ de printer na een reboot activeren. Daarnaast valt het mij op dat na iedere herstart alle items een ander UUID hebben gekregen (dus niet alleen mijn printer). Nu heb ik op internet wel gelezen over enkele aanpassingen in ‘udev’. Dit is mij echter niet geheel duidelijk wat te doen.
Martijn, was mij nog niet opgevallen, maar je hebt inderdaad gelijk de UUID wijzigt inderdaad spontaan. UUID kunnen echter alleen wijzigen indien de eigenschappen van het device wijzigen. Zover ik nu kan zien, doet VB dit zelf, omdat deze zelf de UUID voor de USB devices maakt (on the fly). Zie /etc/udev/rules.d/10-vboxdrv.rules. Dit zou niet mogen. Eigenlijk zou er steeds dezelfde UUID moeten uitkomen. Het kan zijn dat een andere rule de rule van VB wijzigt, maar dat moet ik nog uitzoeken.
Maar….je hebt de UUID niet nodig als je een usbfilter aanmaakt.
Verder heb je het commando ‘vboxmanage controlvm XYZ usbattach’ niet nodig. Als je mijn beschrijving volgt dan moet bij elke reboot en bij elke aansluiting van de printer op de USB poort de printer beschikbaar komen. Daar is nou juist de usbfilter voor. Deze maakt gebruik van de eigenschappen van het device die nooit wijzigen.
Dat doet het bij mij en zou het bij jou ook moeten doen.
Echter hoe dit onder Windows 7 werkt weet ik niet zo 1 2 3 en ik begrijp dat je gast Windows 7 is.
PS Wil je meer weten over udev: Ubuntu: partities mounten met udev.
Leo, bedankt voor je uitgebreide antwoord. Inmiddels heb ik de USB-filter verwijderd en opnieuw aangemaakt op index 1 i.p.v. eerdere index 0. Voor het aanmaken heb ik het commando uit jouw tutorial, aangepast met mijn parameters, gebruikt. VBoxManage showvminfo toont het volgende:
USB Device Filters:
Index: 0
Active: yes
Name: HP CP1215
VendorId: 03f0
ProductId: 4717
Revision: 0100
Manufacturer: HP
Product:
Remote:
Serial Number: LJ1F2A1
Aangemaakt met:
VBoxManage usbfilter add 1 –target “WIN7ULTIMATE” –name “HP CP1215″ –action hold –active yes –vendorid 03F0 –productid 4717 –revision 0100 –manufacturer HP –product “Color LaserJet CP1215″ –serialnumber LJ1F2A1
Na een reboot van host (voorafgaand hieraan poweroff gast) wordt de printer niet automatisch aangekoppeld in de gast Windows 7. Printer heeft status Offline. Kortom het opnieuw aanmaken van de USB-filter biedt geen solaas. Of is het echt noodzakelijk om na een reboot de kabel fysiek één keer af- en aan te koppelen? Dit is wat ik namelijk niet wil, vanwege headless server.
Een niet zo charmante oplossing is gedurende de startup van de host een script uit te voeren waarin VboxManage controlvm usbattach uitgevoerd wordt op basis van UUID van printer. Mijn idee is om dit op te zoeken o.b.v. het serialnumber te zoeken: vboxmanage list usbhost | grep -B6 LJ1F2A1 | grep UUID | awk ‘{print $NF}’
Wellicht heb jij nog andere ideeën. Alvast bedankt.
Martijn, volgens mij ben je op de goede weg. De uitvoer van VBoxManage showvminfo laat een leeg ‘Product:’ zien. Als VBoxManage list usbhost dit ook laat zien, dan moet je in het usbfilter de optie -product even weglaten of leeg laten. De usbfilter werkt nu waarschijnlijk niet omdat de eigenschappen niet overeenkomen.
Wat me verder opvalt is dat in de uitvoer het serialnumber LJ1F2A1 is en jij in een script B6 LJ1F2A1 wilt gebruiken. Let er op dat je in de usbfilter het correcte serienummer gebruikt. Ik ga er even vanuit dat de uitvoer het correcte serienummer weergeeft. zo niet dan moet je deze in het volgende (onderstaande) VBoxManage commando nog toevoegen.
Wijzig de usbfilter met:
VBoxManage usbfilter modify 1 --target WIN7ULTIMATE --product ""Om de usbfilter te activeren moet je de virtuele machine herstarten.
Als de usbfilter op index 0 nog steeds bestaat dan moet je deze even verwijderen met:
VBoxManage usbfilter remove 0 --target WIN7ULTIMATENogmaals: je hoeft de printer niet te ontkoppelen en opnieuw te koppelen. Je kan deze gewoon aangekoppeld laten. Het moet gewoon werken als alles correct is ingesteld. Ook het aan en uitzetten van de printer moet gewoon werken.
Nou ik ben benieuwd.
Leo bedankt voor je aanwijzing. Ik heb nog eens goed naar de output van ‘VBoxManage list usbhosts’ gekeken. Op basis van deze waarden en jouw aanwijzing heb ik een tweetal waarden gewijzigd in: –manufacturer “Hewlett-Packard” –product “HP Color LaserJet CP1215″.
Overigens blijft “Product” bij showvminfo leeg. Maar goed na een reboot functioneert de printer nu direct!
Voor wat betreft script: “grep -B6 LJ1F2A1″ zorgt er voor dat er 6 regels boven serialnumber gekeken wordt. Hiermee heb ik zeker het UUID van de printer met dit serialnumber. Maar goed dit scriptje is niet meer nodig.
Bedankt voor je aanwijzingen. Ik blijf je blog en tutorials met interesse volgen.
Yes! Eindelijk. Ik ben blij dat het nu werkt. Oh ja natuurlijk -B6 hoort bij het grep commando. Had ik kunnen weten.
Hallo allemaal…
Door waarschijnlijk gebrek aan kennis m.b.t tot linux is het mij niet gelukt om de Virtualbox in de minimale server te installeren.
Ook de ouderdom van mijn PC zal waarschijnlijk ook wel een rol spelen…
Maar goed er zijn zoveel artikelen verschenen gooi je oude PC niet weg gebruik hem om een Linux server.b.v te installeren.
Dat ik toch een poging heb gewaagd..helaas zonder succes.
Ik spring graag in het diepe en probeer op deze manier dingen uit te proberen..
Wat gaat er goed en wat gaat er fout……
Ten eerste draadloos netwerk zonder problemen.
Tot het punt …..VBoxHeadless –startvm “” …geen probleem VRDE server luisterd op poort 3389.
Aanloggen via Terminal server client op IP-adres 192.168.1.100:3389 …geen probleem.
Installeren van de virtuele machine met gebruik van de beschrijving “de perfecte server- Minimale server installeren” gaat ogenschijnlijk goed.
Toch denk ik dat ik hier ergens de mist in ga…..hier ontbreekt echt mijn kennis.
Na installatie gaat deze rebooten….het aanlog scherm van de Virtualbox verschijnt….en dan kapt hij er mee.
De volgende stap is dan dat het server installatie scherm weer verschijnt….
Verder kom ik helaas niet…
Zijn er nog tips geven die mij weer terug op het spoor brengen…..of is mijn PC niet geschikt?
Hallo Piet, Dat na de reboot het installatiescherm weer verschijnt komt omdat de installatie-CD nog aangekoppeld is. Waarschijnlijk is deze niet automatisch afgekoppeld. De CD kan je in de gastheer afkoppelen met het commando
VBoxManage storageattach "" --storagectl "" --port 1 --device 0 --type dvddrive --medium emptydrive. Start daarna de virtuele machine weer. Als het goed is komt nu Ubuntu te voorschijn.Je PC zal wel geschikt zijn. Wat voor processor (CPU) zit er in?
Ik hoor het wel als het nog steeds niet lukt en je nog hulp nodig hebt.
Hallo leo…dank voor je reactie…door het mooie weer gaat het hier allemaal niet meer zo snel….
Maar na het loskoppelen komt hij met deze meldingen….(verkorte weergave)
Gave up waiting for root device
– Boot arg
– check root delay (did system wait lang enough?)
– check root ( did system wait for the right device?)
– Missing modules. (cat/proc/modules; ls /dev)
Alert /dev/disk/by-uuid xxxxxxxxxxxxx (not exist)
(initramfs) -
Zit de fout die ik maak in de laatste regel van de installatie?
Kies Ja om de Grub-opstartlader in het MBR te installeren…..?
Ik weet niet wat je gedaan hebt, maar de Grub-opstartlader moet tijdens de installatie geïnstalleerd worden, anders start Ubuntu niet op. Op de laatste regel van de installatie moet je dus Ja antwoorden.
Leo..Ik heb alles volgens de procedure geïnstalleerd….dus ja op Grub-opstartlader.
Ook de opmerking om “Begeleid – benut gehele schijf” heb ik opgevolgd.
Okay, toch is er iets fout gegaan tijdens de installatie. Laten we maar eens zien of we dat kunnen herstellen.
Je kan twee dingen doen. Of opnieuw installeren of proberen te repareren met de volgende stappen:
(waarschijnlijk heb je een probleem met de UUID)
- Download het iso-bestand van een Ubuntu Desktop CD (Live-CD). Let er op dat je de correcte 32- of 64-bit download.
- Koppel dit iso-bestand aan VirtualBox (zie hoofdstuk Gast installeren in dit artikel).
- Start VirtualBox.
- Ga naar een desktop machine en open een Terminal Server Client.
- Maak een connectie naar de virtuele machine. Er moet nu een deskop verschijnen.
- Installeer NIETS, maar open een terminalvenster en voer de volgende commando’s uit:
1)sudo mkdir /media/temp
2) sudo mount /dev/sda2 /media/temp (vervang /dev/sda2 door jouw eigen partitie; dit is de partitie met een * bij de uitvoer van fdisk -l (de l van list))
3) sudo chroot /media/temp su
4) Open /media/temp/etc/default/grub en haal het hekje aan het bgeinvan de regel GRUB_DISABLE_LINUX_UUID=true weg
5) update-grub
6) reboot
Ik hoor het wel of het lukt.
Hoi Leo,
Mooie duidelijke uitleg.
Ik heb wel een vraagje echter:
Als ik meerdere virtuele machines aanmaak, de ene als zarafa mailserver, de andere als Samba fileserver en dnla mediaserver, eentje als mysql en webserver… Gaat dit dan erg ten koste van mijn overall performance? Ik kan mail en file natuurlijk ook prima in één vm doen, maar als ik ze apart doe, heb ik als voordeel dat ik mijn mailserver bijvoorbeeld makkelijk kan backuppen en evt los kan verplaatsen naar een andere vb host server.
Ter info, heb 2.4 ghz Dual core en 8 GB ram.
Wat zou jij doen?
Richard, dat ligt er aan. Overall performance is relatief. Het hangt van heel veel factoren af. Hoe veel gebruikers, hoe vms echt actief zijn, aantal CPU’s, geheugen (maar 8GB is voldoende), aantal schijven, de techniek/software die je gebruikt. Als alle virtuele machines (vms) actief zijn dan gaat dat inderdaad ten koste van performance. Je hebt een dual core waar je minimaal al 3 vms op hebt draaien. Met actief zijn bedoel ik meer dan alleen maar luisteren. Ze staan dus daadwerkelijk iets te processen/verwerken. Als er twee actief zijn en er luistert er een dan is dat niet een heel groot probleem. Zeker niet als je de optie ‘Gebruik gastheer I/O cache’ uitgevinkt hebt en ballooning gebruikt. Hoe meer vms actief zijn hoe meer deze wedijveren voor de 2 CPU’s. Als je meerdere schijven hebt, dan zou je de vms ook over de schijven kunnen verdelen. Hoe minder bottlenecks hoe beter.
Je hebt gelijk wat het aantal vms betreft. Daar zijn ze voor.
Ik zou niet meer dan 4 vms in deze server aanmaken en kijken of het werkt. De mailserver en fileserver zullen niet veel performance vergen, daar deze de meeste tijd idle zijn. Ik verwacht dat het wel zal meevallen.
Ik hoor graag van je wat je ervaringen zijn. Wellicht kan ik je dan nog helpen als je echt performance problemen krijgt.