QEMU - emulator PC

Qemu to emulator system PC. Dzięki niemu możemy np. bootować różne systemy operacyjne. QEMU dostępne jest w większości dystrybucji lecz warto również wyszukać pakiet "kqemu". kqemu to moduł kernela znacznie przyśpieszający qemu. W Gentoo wystarczy dodać odpowiednią USE Flagę by qemu zainstalowało moduł kqemu (w czasie pisania tego artykułu wersja z qemu była oznaczona jako ~x86, czyli trzeba odmaskować):
app-emulation/qemu-softmmu-0.7.1  +kqemu +sdl
Dla Archa na AUR szukamy ebuilda kqemu (jest to qemu+kqemu) i tworzymy z niego pakiet. W obu przypadkach moduł kqemu nie załaduje się automatycznie i albo będziemy go ręcznie ładować za pomocą modprobe kqemu albo dodamy go do listy automatycznie ładowanych modułów (/etc/rc.conf dla archa, /etc/modules.autoload.d/*plik_kernela* dla gentoo). Co do innych dystrybucji to być może będziemy musieli sięgnąć po źródła.
Qemu możemy uruchamiać jako root i jako zwykły użytkownik, tyle że ten ostatni może nie mieć uprawnień do wszystki opcji (ale jest to bezpieczniejsze rozwiązanie). Qemu też może stworzyć grupę "qemu", zależy to od sposobu instalacji/dystrybucji. Dodanie użytkownika do niej da mu pełne możliwości korzystania z emulatora.

Bootowanie obrazów oraz Płyt CD/DVD

Jeżeli mamy obraz ISO bootowalnej płyty lub samą płytę to możemy ją uruchomić (linuks, reactos, windows..) Wydajemy polecenie:
qemu -cdrom moje.iso
qemu -cdrom /dev/hdc
Gdzie pierwsza linijka to przykład bootowania obrazu iso a druga płyty włożonej (nie zamontowanej) do napędu. Nazwę odpowiedniego napędu pod KDE zobaczymy wpisując w Konquerorze adres: media:/ (lub też w zależności od ustawień ikona CD pojawi się na pulpicie). Podobnie w Gnome i innych środowiskach. Możemy też natrafić na komunikat typu:
You do not have enough space in '/dev/shm' for the 128 MB of QEMU virtual RAM.
To have more space available provided you have enough RAM and swap, do as root:
umount /dev/shm
mount -t tmpfs -o size=144m none /dev/shm
Czyli po prostu mamy za mało pamięci zamontowanej pod /dev/shm i jako root wykonujemy operacje podane w dwóch ostatnich wierszach i jako zwykły user ponownie wywołujemy qemu. Pojawi się okno w której ujżymy ekran powitalny dystrybucji znajdującej się na płycie/obrazie i możemy uruchomić go. Jeżeli klikniemy we wnętrzu okna to kursor myszy zostanie "uwięziony" w nim i będziemy mogli sterować myszą w bootowanym systemie by się uwolnić wciśnij CTRL+ALT.
Jeżeli chcemy mieć dostęp do sieci w emulowanym systemie do dodajemy obok -cdrom opcję -user-net.

Bootowanie systemów operacyjnych zainstalowanych na dysku

Jeżeli mamy zainstalowany więcej niż jeden system operacyjny to możemy uruchomić pozostałe za pomocą:
qemu -snapshot -hda /dev/hda
Parametr -snapshot oznacza, że wszelkie modyfikacje nie będą zapisywane na dysku lecz do pliku tymczasowego, co pozwala uniknąć konfliktów między systemami. Jeżeli mamy dużo RAMu (512 MB i więcej) to możemy zwiększyć limit pamięci dla emulowanego systemu za pomocą parametru -m:
qemu -snapshot -m 256 -hda /dev/hda


Instalowanie systemów operacyjnych

Możemy zainstalować też jakiś system do wirtualnej partycji qemu - pliku. Na początek tworzymy owy plik:
qemu-img create hda.img 2000M
Co utworzy 2000 megowy plik. Teraz potrzebujemy płytę/iso instalacyjne, które zainstalujemy do tego pliku za pomocą polecenia:
qemu -hda hda.img -cdrom linuks.iso -boot d
qemu -monitor stdio -hda hda.img -cdrom linuks.iso -boot d
Gdzie druga linijka to polecenie dla wielopłytowych instalacji. By np. przejść do iso drugiej płyty wydajemy polecenie:
qemu change cdrom cd2.iso
By rozpocząć właściwą emulację zainstalowanego systemu wykonujemy polecenie:
qemu hda.img


qemu_1
Archie LiveCD uruchomione z poziomu gentoo

qemu_2
Grub z MBR, rozpoczynamy emulację drugiego zainstalowanego systemu

qemu_3
Emulowany windowsME z "słabą" kartą grafiki.
RkBlog

Wprowadzenie do świata Linuksa, 14 July 2008

Comment article
Comment article RkBlog main page Search RSS Contact