(NOTA BENE: No sóc cap entès en aquest tema; ben al contrari, just acabo de començar a fer-hi algunes provatures. Aquest post té més de recordatori que no pas de howto.)
La virtualització és un conjunt de procediments que ens permeten instal·lar un sistema operatiu sobre una màquina que ja en té un i executar-la dins d’una finestra, com si fos una aplicació més. És dir, dins d’un màquina amb un sistema GNU/Linux, podríem virtualitzar una BSD o un Windows, o a l’inrevés; dins d’una Ubuntu podrem virtualitzar una Fedora, una Debian o qualsevol altra, i a l’inrevés.
És útil per provar una distro sense haver de dedicar-hi una partició, però també per utilitzar sistemes operatius que no volem tenir com a sistema principal (per exemple, en el cas de qui vol migrar a sistemes lliures però no pot prescindir d’alguns programes que només funcionen en sistemes de propietat).
Lògicament, per poder realitzar aquest aquest procés ens cal treballar sobre una màquina física força potent, ja que, en certa manera, haurà de «treballar doble» quan la màquina virtual estigui engegada (o les màquines virtuals).
Hi ha diversos programaris que en permeten realitzar la virtualtizació; jo he optat per QEmu i KVM perquè es troben sota llicències lliures i són fàcils d’instal·lar en Ubuntu. Per poder emprar-los, assegureu-vos de tenir instal·lats els següents paquets: qemu, qemu-common, qemu-kvm, qemu-utils, kvm, kvm-ipxe (són els que tinc instal·lats: és possible que algun d’ells sigui prescindible).
El procediment mínim constaria de tres passos:
- crear la imatge on instal·larem la màquina virtual; el resultat és un fitxer img;
- instal·lar el sistema operatiu desitjat en la imatge creada en el pas anterior (aquí acabaria el procediment d’instal·lació);
- executar la màquina virtual per utilitzar-la en qualsevol moment.
Obriríem un emulador de terminar i hi introduiríem les següents ordres:
Crear:
$ qemu-img create nomdelaimatge.img -f qcow2 gigesG
- On nomdelaimatge.img és el nom que tindrà el fitxer amb la imatge.
- On giges és la mida en giges (hi ha d’anar seguit de la lletra G); exemple: 8G .
El fitxer que creat no tindrà aquesta mida, sinó que serà molt més petit: la mida indicada funcionaria, més bé, com un límit màxim.
Instal·lar:
$ kvm -m 2047 -cdrom ~/isoautilitzarperferlainstal·lació.iso -boot d nomdelaimatge.img
- On -m 2047 indica la RAM en M que assignarem a la màquina virtual (aquest és el valor màxim; aneu amb compte si el reduïu, que no sigui inferior als valor recomanats per a la distro).
- On -cdrom ~/isoautilitzarperferlainstal·lació.iso indica el lloc i el nom de la iso que utilitzareu per fer la instal·lació (si, en compte d’una iso, voleu emprar una distro ja enregistrada en un CD, canvieu-ho per -cdrom /dev/cdrom).
- On nomdelaimatge.img indica el fitxer amb la màquina virtual on realitzarem la instal·lació (i que hem creat en el pas anterior).
Aquest procés obre una finestra que presenta tot allò que veuríem en la pantalla durant una instal·lació normal. En el cas d’estar utilitzant una Live, podrem triar entre provar-la (tal i com faríem amb el Live CD o amb el Live USB) o començar la instal·lació. Un cop acabada, podem sortir-ne (apagar la màquina virtual) i passar a executar-la tal i com es descriu en el següent pas.
Arrancar
$ kvm -daemonize -m 2047 nomdelaimatge.img
- On -daemonize ens assegura que, si tanquem l’emulador de terminal, no es tancarà la màquina virtual.
- On -m 2047 indica la RAM en M que assignarem a la màquina virtual.
- On nomdelaimatge.img indica el fitxer on es troba la màquina virtual.
Això obre una altra finestra, com en el pas anterior, que conté la nostra flamant màquina virtual. En aquest moment, és recomanable actualitzar els paquets (si la màquina hoste té connexió, la virtual hi té accés directe; sembla que, fins no fa gaire, això s’havia de configurar manualment) i, en acabar, sortir de la màquina virtual.
Si us proposeu fer-hi experiments «perillosos», després de l’actualització, podeu, des de la màquina principal, fer una còpia de seguretat de la màquina virtual:
$ cp nomdelaimatge.img nomdelaimatge.img.seguretat
Així, en cas de pífia, no cal repetir-ne la creació, sinó tornar a copiar-la amb el nom que interessi, com ara:
$ cp nomdelaimatge.img.seguretat nomdelaimatgerecuperada.img
(Crec que existeixen com a mínim un parell de procediments més, més elegants, per fer el mateix basats, l’un, en l’atribut -snapshot, i l’altre, en la creació una segona imatge superposada a la primera; no els he investigat encara.)
Com a exemple, aquestes són les ordres que he emprat per crear una màquina virtual amb la Beta 2 de la Lubuntu 12.04 Precise Pangolin:
$ qemu-img create lubuntu1204.img -f qcow2 10G
$ kvm -m 2047 -cdrom ~/Baixades/lubuntu-12.04-beta2-desktop-i386.iso -boot d lubuntu1204.img
$ kvm -daemonize -m 2047 lubuntu1204e17.img
La virtualització és un món extens i complex, i això només n’és un petit tast. Queden per resoldre temes importants, com ara l’accés de la màquina virtual a les particions de la màquina hoste, als USB, als CD, etc. Però, com he dit al principi, això és tot el que en sé, de moment, sobre aquest tema; si hi aprenc alguna cosa més, ja la deixaré apuntada per aquí.
Enllaços:
Ves per on ja veig qui m’ajudarà a fer la xerrada de kvm a la propera festa
Que t’ho creus tu això! 😀
Acabo de començar a tastar aquestes coses, home; el que sí que et puc assegurar és que no em perdré la teva xerrada per res del món.
Et decebrà, jo sols explicaré la manera gràfica i senzilla de fer-ho
Gràfica? Es pot fer de manera gràfica? Òndia, tu, i jo, fent-ho des del CLI… 😉
Fer-ho des del cli te la seva gracia. Per ejemple implementar un entorn gràfic a un servidor, però sense “enmerdar-lo” amb tots els fitxers que necesitaria l’entorn gràfic.