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++
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