Linux Systeembeheer/VirtualBox

Inleiding

bewerken

VirtualBox is een vrij computerprogramma om besturingssystemen te draaien binnen een (ander) besturingssysteem. Dit gebeurt op basis van virtualisatie. VirtualBox is beschikbaar voor verscheidene besturingsystemen en verscheidene talen. VirtualBox komt in twee soorten: de complete versie onder de VirtualBox Personal Use and Evaluation License, en de open source editie onder de GPL-licentie. Hierbij moet worden opgemerkt dat in de open source editie enkele belangrijke mogelijkheden ontbreken, zoals USB- en SATA-ondersteuning.

Guest Additions

bewerken

Na de installatie van een OS in een VirtualBox VM is het een goed idee om ook de Guest Additions op het gast OS te installeren. De Guest Additions zijn ontworpen om de performantie en bruikbaarheid van het gast OS te optimaliseren. Zo voorzien zij onder andere het volgende:

Mouse pointer integratie
De Host Key wordt overbodig. Het is voldoende om de muis uit de VM te bewegen om terug naar de host keren.
Gedeeld klembord
Knippen en plakken tussen het gast en het host OS, en vice versa.
Betere video ondersteuning
De resolutie van het gast OS past zich automatisch aan aan de grootte van het venster waar het in draait. Ook 3D hardware acceleratie wordt ondersteund.
Gedeelde mappen
Bestanden delen tussen het gast en het host OS, en vice versa.
Seamless modus
Applicaties van het gast OS worden gemapt op de desktop van het host OS, net alsof de applicaties op de host zelf draaien.

Troubleshooting

bewerken

Installatie Guest Additions in Fedora 13 mislukt

bewerken
Probleem
Building the VirtualBox Guest Additions kernel modules [FAILED]
Oorzaak
De broncode van de kernel is niet beschikbaar op het systeem.
Oplossing
De pakketten gcc en kernel-devel installeren.
Procedure

Alvorens de installatie te beginnen, verzekeren we dat ons systeem up to date is.

$ yum update

Herstart de machine.

$ reboot

Klik in het menu van de VM op Devices -> Install Guest Additions....
Fedora koppelt de image niet automatisch aan het bestandssysteem. Dus mounten we de image manueel.

$ mkdir /media/VBoxGA
$ mount /dev/cdrom /media/VBoxGA

Installeer nu de GNU C Compiler en de broncode van de kernel.

$ yum install -y gcc kernel-devel

Voor Fedora 13 moest ik volgende packages installeren:

$ yum install kernel-devel kernel-headers dkms gcc gcc-c++
 Voorkom het breken van de kernel!
Let er op dat de broncode van de kernel overeenstemt met de juiste kernelversie.
Bij de installatie van het pakket kernel-devel controleert Fedora niet op welke kernel je werkt, maar installeert sowieso de broncode van de laatste kernelversie. Dat betekent dat als jij op een andere kernel werkt, de broncodes niet volledig correct zijn. De installatie van de Guest Additions zal schijnbaar probleemloos verlopen, maar wanneer je reboot zal de machine vastlopen.


Voer het installatiescript uit.

$ cd /media/VBoxGA
$ ./VBoxLinuxAdditions-x86.run   # 32 bit
$ ./VBoxLinuxAdditions-amd64.run # 64 bit

Herstart de machine.

$ reboot

CPU gebruik host nadert 100% als CentOS guest draait.

bewerken
Probleem
De core die de VM toewijst aan de CentOS guest draait constant aan 100%, terwijl CentOS zelf aangeeft idle te zijn.
Oorzaak
De CentOS kernel werkt op een frequentie van 1000Hz, de kernel van de host op een lagere snelheid.

We kunnen de kloksnelheid van de kernel als volgt verifiëren:

$ cat /boot/config-$(uname -r) | grep CONFIG_HZ
Oplossing
De CentOS kernel laten werken op 100Hz.
Procedure

Het aangekaarte probleem kan op twee manieren opgelost worden.
Een eerste oplossing is een custom kernel te builden, waarbij je de kloksnelheid verlaagt. Hier gaan we niet verder op in.
Een tweede, en vooral minder omslachtige methode, is om aan de kernel opties mee te geven. De optie die we nodig hebben is divider.
Kernel opties kunnen we vastleggen in de configuratie van de GRUB boot loader.

$ vi /boot/grub/menu.lst

Een regel beginnend met title komt overeen met een entry in het GRUB menu. Bijvoorbeeld:

  title CentOS (2.6.18-194.17.1.e15)
          root (hd0,0)
          kernel /vmlinuz-2.6.18-194.e15 ro root=/dev/VolGroup00/LogVol00
          initrd /initrd-2.6.18-194.e15.img

Een kernel optie kunnen we toevoegen op het einde van de regel beginnend met kernel. Zodoende:

  title CentOS (2.6.18-194.17.1.e15)
          root (hd0,0)
          kernel /vmlinuz-2.6.18-194.e15 ro root=/dev/VolGroup00/LogVol00 divider=10
          initrd /initrd-2.6.18-194.e15.img

De CentOS kernel zal nu zijn werk doen op 1000Hz/divider = 1000Hz/10 = 100Hz < 250Hz = kloksnelheid kernel host OS. Het spreekt vanzelf dat we de optie moeten toevoegen aan elke GRUB entry waar we de optie toegepast willen zien. Zodus, wanneer we ons systeem updaten met een nieuwe kernel, zullen we de optie terug moeten gaan toevoegen aan de nieuwe GRUB entry.
We herstarten de machine.

$ reboot

Bibliografie

bewerken
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.