Virtual Machine opties
- KVM voor Intel VT of AMD-V
- Virtualbox
- QEMU
- Het installeren van een andere distributie naar een image
De onderstaande voorbeelden gebruiken aptosid, vervang simpelweg aptosid met de distributie naar jouw keuze.
Het installeren van een andere distributie naar een VM image
Nota: Wanneer je naar een VM image wil installeren, zullen de meeste Linux distributies enkel 12G nodig hebben. Wanneer je echter MS Windows in een VM will installeren, dan zul je 30G moeten voorzien. Alle VM image plaats zal uiteindelijk afhankelijk zijn van je eisen.
In het algemeen zal een image allocatie geen bijkomende ruimte op de harde schijf innemen tot de data word geinstalleerd. Zelfs dan zal het de ruimte dynamisch opnemen, aansluitend op de reeds gebruikte data, die uitbreidt of vermindert op het image. Dit is door de compressie ratio's van qcow2.
Starten van een KVM Virtual Machine
KVM is een volledige virtualisatie oplossing voor Linux voor x86 hardware welke beschikken over de virtualiseringstechnologie extensions (Intel VT of AMD-V).
Vereisten
Om zeker te weten dat je hardware KVM ondersteund, moet je zeker weten dat KVM is aangezet in de BIOS (in sommige gevallen wordt het niet duidelijk aangegeven op een Intel VT of AMD-V systeem, daarom gaan we uit dat het in KVM mode staat). De manier om dit te controleren doen we in een console en voeren dan het volgende uit:
cat /proc/cpuinfo | egrep --color=always 'vmx|svm'
Indien je svm of vmx ziet in de cpu flags veld, dan ondersteunt je systeem KVM. (anders moet je terug naar de BIOS als je zeker weet dat je systeem het ondersteunt, of doorzoek het internet naar waar de KVM 'enable' optie in de BIOS menu zou moeten staan).
Indien je BIOS geen KVM ondersteunt kijk dan naar Virtualbox of QEMU
Om KVM te installeren en starten, moet je eerst zeker weten dat er geen Virtualbox modules geladen zijn, (--purge ze is de beste optie), en dan voer je het volgende uit:
apt-get install qemu-system-x86 qemu-utils
Wanneer je jouw systeem start zullen de qemu-system-x86 initscripts zorgen voor het laden van de modules.
Gebruik KVM om op te starten van een aptosid-*.iso
Voor 64-bit als user:
$ QEMU_AUDIO_DRV=alsa qemu-system-x86_64 -machine accel=kvm:tcg -net nic,model=virtio -net user -soundhw hda -m 1024 -monitor stdio -cdrom <aptosid.iso>
Voor 32-bit vervang qemu-system-x86_64 met qemu-system-i386.
Installeer een aptosid-*.iso naar een KVM image
Creeer eerst een hard disk image, (deze image zal minimaal zijn en alleen groeien indien dit nodig is, dankzij qcow2 compressie ratios):
$ qemu-img create -f qcow2 aptosid-2010-*-.img 12G
Start de aptosid-*.iso op met de volgende parameters om KVM in te schakelen en te laten herkennen dat er een QEMU hard disk image beschikbaar is:
$ QEMU_AUDIO_DRV=alsa qemu-system-x86_64 -machine accel=kvm:tcg -net nic,model=virtio -net user -soundhw hda -m 1024 -monitor stdio -cdrom </path/to/aptosid-*.iso> -boot d </path/to/aptosid-VM.img>
Voor 32-bit vervang qemu-system-x86_64 met qemu-system-i386.
Zodra de cdrom is opgestart klik op de aptosid installer icoon om de installer te activeren, (of gebruik het menu). Klik op de tab voor het partitioneren en start jouw voorkeur. Voor het partitioneren kan je de instructies volgen van Partitioneren van de harde schijf - Traditioneel, GPT en LVM (Vergeet geen swap partitie toe te voegen als je maar een beperkt geheugen hebt). Het formatteren zal een tijdje in beslag nemen, wees dus geduldig.
Je hebt nu een VM klaar voor gebruik:
$ QEMU_AUDIO_DRV=alsa qemu-system-x86_64 -machine accel=kvm:tcg -net nic,model=virtio -net user -soundhw hda -m 1024 -monitor stdio -drive if=virtio,boot=on,file=<path/to/aptosid-VM.img>
Sommige gasten ondersteunen virtio niet, je moet daarvoor een andere optie gebruiken bij het starten van KVM, bijvoorbeeld:
$ QEMU_AUDIO_DRV=alsa qemu-system-x86_64 -machine accel=kvm:tcg -net nic, -net user -soundhw hda -m 1024 -monitor stdio -hda </path/to/your_guest.img > -cdrom your_other.iso -boot d
of
$ QEMU_AUDIO_DRV=alsa qemu-system-x86_64 -machine accel=kvm:tcg -net nic, -net user -soundhw hda -m 1024 -monitor stdio -hda </path/to/your_guest.img>
Zie ook: KVM documentatie.
Beheren van je KVM virtuele machine installaties
apt-get install aqemu
Wanneer je AQEMU gebruikt, wees er dan zeker van om de KVM mode te kiezen uit de drop down box bij 'Emulator Type' in de 'General' tab. (Documentatie voor AQEMU is eigenlijk niet beschikbaar, daarom zullen een aantal 'trials by error' nodig zijn om deze makkelijk te gebruiken interface te doorgronden, het is echter een goede start om eerst te kijken naar het 'VM' menu gevolgd door het 'General' tab.
Booten en installeren van een VirtualBox Virtuele Machine
De Stappen:
- 1. creeer een harddisk image voor VirtualBox
- 2. start de ISO op met VirtualBox
- 3. installeren op de harddisk image
Vereisten
Aanbevolen RAM: 1 GB : Ideaal zou zijn 512 MB voor het gast os en 512 MB voor de host. (het kan op minder draaien, maar verwacht dan geen enorme performance).
Hard disk ruimte: VirtualBox zelf heeft niet veel nodig, bij een normale installatie ongeveer 30 MB harddisk ruimte. De virtual machines zullen echter veel grotere bestanden op de harddisk opeisen, deze ziet de virtual machine dan als zijn eigen harddisk. Dus, om bijvoorbeeld MS Windows XP (TM) te installeren, zul je een bestand nodig hebben van meerdere GBs! Voor aptosid in een VirtualBox is ca. 5 GB ruimte nodig voor je image en een swap allocation.
Installatie:
apt-get update apt-get install virtualbox-ose-qt virtualbox-source dmakms module-assistant
Bereid de module voor:
m-a prepare m-a a-i virtualbox-source
Activeer dan de Dynamic Module-Assistant Kernel Module Support voor virtualbox, zodat de volgende keer de Linux kernel geupdate wordt zodat de virtualbox module ook voorbereid wordt, zonder handmatige acties. Omdit te doen, voer je toe virtualbox-source aan de /etc/default/dmakms configuratie bestand.
mcedit /etc/default/dmakms virtualbox-source
herstart hierna de computer.
Dit is een belangrijk leesstuk voor dmakms
Het installeren van aptosid in een virtual machine
Gebruik de virtualbox wizard om een nieuwe virtual machine voor aptosid te creëren. Volg dan de instructies voor een normale aptosid installatie.
VirtualBox heeft een goed gedocumenteerde PDF Help document, deze kun je vanaf hun site downloaden.
>Booten en installeren van een QEMU Virtuele Machine
- 1. Creeer een harddiskimage voor qemu
- 2. Start de ISO op met qemu
- 3. Installeer op de image
Er is een QT GUI tool beschikbaar welke je helpt om QEMU te configureren:
apt-get install qtemu
Het creëren van de harddisk image
Om qemu op te starten heb je een harddisk image nodig. Dit is een bestand welke de inhoud van de geëmuleerde harddisk opslaat.
Gebruik het volgende commando:
qemu-img create -f qcow aptosid.qcow 3G
Om het image file genaamd "aptosid.qcow" te creëren. De "3G" parameter specificeerd de grote van de disk - in dit geval 3 GB. Je kunt de waarde M gebruiken voor megabytes (bijvoorbeeld "256M"). Je moet je geen zorgen maken over de disk grootte - het qcow formaat comprimeerd de image zo dat de lege ruimte niet aan de grootte van het bestand wordt toegevoegd.
Installeren van het besturingssysteem
Dit is de eerste keer dat je de emulator moet starten. Let op: wanneer je in het qemu venster klikt, wordt de muispointer gebruikt in dit venster. Om deze weer 'terug' te krijgen, moet je op Ctrl+Alt drukken.
Indien je een opstartdiskette nodig hebt, start dan Qemu als volgt op:
qemu -floppy aptosid.iso -net nic -net user -m 512 -boot d aptosid.qcow
Indien je CD-ROM opstartbaar is, start dan Qemu als volgt op:
qemu -cdrom aptosid.iso -net nic -net user -m 512 -boot d aptosid.qcow
Installeer nu aptosid alsof je een installatie uitvoert op een echte harddisk.
Het systeem starten
Om het systeem te starten voer je het volgende commando uit:
qemu [hd_image]
Het is een goed idee om overlay images te gebruiken. Op deze manier hoef je maar 1 keer een harddisk image te creëren en vertel je Qemu om wijzigingen op te slaan in een extern bestand. Zo kom je van alle instabiliteit af, omdat je altijd terug kunt naar de vorige systeem status.
Het creëeren van een overlay image, doe je als volgt:
qemu-img create -b [[base''image]] -f qcow [[overlay''image]]
Vervang de harddisk image = base_image door, in ons geval aptosid.qcow. Hierna start je qemu middels het commando:
qemu [overlay_image]
De originele image wordt hierdoor niet gebruikt. Een probleem, de base image kan niet hernoemd of verplaatst worden, want de overlay onthoudt het volledige pad naar de base image.
Gebruik maken van een echte partitie als een enkele primaire partitie voor de hard disk image
Soms wil je een systeem partitie gebruiken met qemu (Bijvoorbeeld, als je wilt opstarten van je echte systeem of om qemu een speciale partitie te laten gebruiken als zijn root partitie). Je kunt dit doen door gebruik te maken van software RAID in lineaire mode (je hebt de linear.ko kernel driver nodig) en een loopback device: de truck is dat je dynamisch een master boot record (MBR) append aan een echte partitie welke je aan de qemu raw disk image wilt koppelen.
Stel je voor dat je een unmounted /dev/sdaN partitie met een bestandssysteem hebt welke je deel wilt maken van een qemu disk image. Als eerste moet je een klein bestand aanmaken waarin de MBR komt te staan, dit doen we met het volgende commando:
dd if=/dev/zero of=/path/to/mbr count=32
Hier wordt een 16 KB (32 * 512 bytes) bestand aangemaakt. Het is belangrijk om het bestand niet te klein te maken (ook al heeft de MBR maar 512 bytes nodig), omdat hoe kleiner het bestand is, deze te kleiner moet de chunk size van de software RAID device zijn, wat weer invloed kan hebben op de performance. Hierna maak je een loopback device aan in de MBR bestand, middels:
losetup -f /path/to/mbr
Laten we aannemen dat het resulterende resultaat het device /dev/loop0 is, omdat we toch nog niet van een andere loopback devices gebruik maakten. De volgende stap is om de "merged" MBR + /dev/sdaN disk image te gebruiken als software RAID:
modprobe linear mdadm --build --verbose /dev/md0 --chunk=16 --level=linear --raid-devices=2 /dev/loop0 /dev/sdaN
De aangemaakte /dev/md0 is wat je gaat gebruiken als qemu raw disk image (vergeet niet om de rechten goed te zetten, zodat qemu bij het bestand kan). De laatste stap (een beetje moeilijke) is het zetten van de disk configuratie (disk geometry en partitie tabellen) zo dat de primary partitie start punt in de MBR overeenkomt met de /dev/sdaN in de /dev/md0 (een offset van precies 16 * 512 = 16384 bytes in dit voorbeeld). Doe dit door gebruik te maken van fdisk op de host machine, niet in de emulator: de standaard raw disc detectie routine van qemu resulteert vaak in een niet-kilobyte afgeronde offsets (zoals 31.5 KB, zoals weer gegeven in vorige sectie) dit kan niet gemanaged worden door de software RAID code. Doe het volgende vanaf het hostsysteem:
fdisk /dev/md0
Hier creëren we een enkele primaire partitie welke overeenkomt met /dev/sdaN, en spelen hier met de 's'ector commando van het 'x'pert menu totdat we de eerste cylinder (waar de eerste partitie start), overeenkomt met de grote van de MBR. Daarna doen we een , 'w'rite om het geheel op te slaan en je bent klaar. Je hebt nu een partitie die je direct kunt mounten vanaf je hostsysteem, en ook als onderdeel van je qemu disk image en wel als volgt:
qemu -hdc /dev/md0 [...]
Je kunt natuurlijk op een veilige manier elke bootloader op deze disk image zetten voor het gebruik met qemu, vooruitgesteld dat de originele /boot/sdaN partitie de benodigde tools bevat.