QEMU: Emulare si Virtualizare pe sisteme UNIX-like

luni, 17 mai 2010 · publicat de

( Voturi: 0 , Medie: 0,00 / 5 )
Încarc...
·4.363 afisari

QEMU

QEMU este un simulator care vă permite să încercați alte sisteme de operare folosind sistemul de operare curent, fără a mai fi nevoie să (re)partiționați, cu alte cuvinte, veți avea la dispoziție un mediu controlat pentru a testa diferite configurări și/sau medii de lucru.

La fel cum gamerii folosesc imagini virtuale pentru a simula unitățile optice, eliminând astfel uzura fizica și prelungindu-le durata de viață, QEMU folosește imagini virtuale pentru a simula alte sisteme de operare, însă fără să afecteze sistemul pe care este instalat.

EXEMPLU

mkdir ~/qemu
cd ~/qemu
dd if=/dev/cd0a of=cd.iso
qemu-img create -f raw disk.iso 2.5G
qemu -rtc base=localtime -m 256M -hda disk.iso -boot once=d -cdrom cd.iso
cp disk.iso disk.iso~
qemu -rtc base=localtime -m 256M -hda disk.iso -boot order=c -usb

NOTIȚE

După cum puteți observa în exemplul de mai sus, QEMU este ușor de folosit iar utilizarea lui nu necesită drepturi speciale. Practic, pentru a instala și utiliza un sistem de operare, nu trebuie decât să urmați pașii de mai jos:

  • Opțional. Creeați un director și folosiți-l ca spațiu de lucru;
  • Opțional. Creeați o imagine virtuala a mediului de instalare. Dacă intenționați să instalați direct de pe CD/DVD, puteți ignora acest pas, însă vă recomand să folosiți o imagine virtuală deoarece vă oferă un plus de viteză la instalare;
  • Creeați o imagine virtuală pentru noul sistem de operare. In exemplul de mai sus, această imagine va reprezenta un disk virtual de 2.5G și va fi folosită pentru/de noul sistem de operare. Formatul imaginii este „raw” deoarece acesta vă permite montarea sa via loopback;
  • Instalarea propriu-zisă. Parametrul „hda” specifică imaginea discului virtual iar parametrul „cdrom” specifică imaginea mediului de instalare. Dacă intenționați să instalați direct de pe CD/DVD, înlocuiți „cd.iso” cu „/dev/cd0a” sau cu device-ul care reprezintă mediul dumneavoastră de instalare. Parametrul „m” specifică ram-ul virtual iar parametrul „localtime” setează ceasul hardware din QEMU folosind ora locală (necesar pentru sistemele MS-like);
  • Opțional. Dacă instalarea a reușit, vă recomand să faceți un backup. Este bine să aveți la îndemână un sistem curat, gata instalat, pe care să îl (re)folosiți la nevoie;
  • Utilizarea propriu-zisă. Linia de comandă folosită pentru pornirea noului sistem de operare este similară cu cea folosită la instalare, mai exact, diferențele constau în modificarea secventei de inițializare (parametrul „boot”) și în activarea driver-ului USB.

CONCLUZIE

Am să închid acest articol cu un exemplu care să vă dea o idee despre cum poate fi particularizat QEMU, mai exact, în exemplul de mai jos a fost specificată o placă video, o placă de rețea și a fost activată conexiunea la internet.

qemu -rtc base=localtime -m 512M -sdl -vga cirrus -net nic,model=rtl8139,vlan=1 -net user,vlan=1 -usb -hda disk.iso -boot order=c

Opțiunile folosite la instalare sunt valabile și după instalare (la utilizarea propriu-zisă). Dacă doriți să „inserați” un CD/DVD sau un stick de memorie în sistemul virtualizat, nu trebuie decât să specificați device-ul pe linia de comandă folosind opțiunea sau opțiunile aferente (ex: -cdrom, -sd, -mtdblock).

RECOMANDARE

Pentru a simplifica și automatiza utilizarea QEMU, doresc să vă recomand o “scurtătură”, mai exact, un “shell script” care poate iniția sesiunile QEMU și care poate fi executat din bara de lucru sau prin intermediul managerului de fișiere.

Tot ceea ce trebuie să faceți este să salvați script-ul de mai jos în directorul în care se găsește imaginea virtuală aferentă sistemului de operare și să-l personalizați, mai exact, pe linia 3 trebuie specificat numele imaginii virtuale, fără extensie.

#!/bin/sh

qIO="xp"

qName=`dirname "$0"`
qName="${qName}/${qIO}.iso"
qName=`readlink -f "$qName"`

qLog="/tmp/`date '+%d%m%y%H%M%S'`.qemu.${qIO}"

qCall="qemu -rtc base=localtime -m 512M -soundhw pcspk,es1370 -sdl -vga cirrus -net nic,model=rtl8139,vlan=1 -net user,vlan=1 -usb -hda ${qName} -boot order=c"
qCall="${qCall} 1> ${qLog}.1 2> ${qLog}.2"
qCall="${qCall} &"

export QEMU_AUDIO_DRV=none

exec $qCall

PS: Dacă sistemul de operare pe care îl testați în QEMU se comportă ciudat, nu ezitați să verificați log-urile din directorul “/tmp”. Aceste log-uri sunt personalizate cu data utilizării, numele imaginii și tipul ieșirii (stdout/1 și stderr/2).