OVMF ja QEMU kasutamine operatsioonisüsteemiga Debian

Allikas: Imre kasutab arvutit
Redaktsioon seisuga 16. aprill 2022, kell 22:05 kasutajalt Imre (arutelu | kaastöö)
Mine navigeerimisribaleMine otsikasti

Sissejuhatus

Virtuaalse arvuti kasutamisel tekib küsimus, millist nn BIOS'i kasutada (või kas üldse). Üks virtuaalne BIOS on OVMF. Kuna ta nö toetab UEFI'it, siis on ehk õigem teda ettekujutada kui virtuaalset UEFI võimelist riistvara, sealhulgas nn Setup keskkonda. Alternatiiv oleks nt SeaBIOS. OVMF sobib kasutada kõige tavalisema virtuaalse arvuti pidamiseks, kuid tavaliselt kasutatakse OVMF'i UEFI võimelise virtuaalse arvuti pidamiseks, kus saab uurida midagi UEFI spetsiifilist, nt Secure Boot teemat.

Tööpõhimõte

Paigaldamine

QEMU ja OVMF saab nt 2016 sügisel Debian v. 9 Stretch paketihaldusest

# apt-get install ovmf qemu-system-x86 xterm

kus

  • xterm - kui töökohaarvuti on üks ja arvuti, kus katsetatakse ovmf + qemu teine, siis paigaldatake xterm tagajärjel piisvalt X'i, et üle võrgu saada värviline pilt ette

Tulemusena tekib failisüsteemi muu hulgas

-rw-r--r-- 1 root root 1966080 Dec  9 10:09 /usr/share/OVMF/OVMF_CODE.fd
-rw-r--r-- 1 root root 131072  Dec  9 10:09 /usr/share/OVMF/OVMF_VARS.fd
-rw-r--r-- 1 root root 2097152 Dec  9 10:09 /usr/share/ovmf/OVMF.fd

kus

  • OVMF.fd - kõik-ühes tõmmis
  • OVMF_CODE.fd ja OVMF_VARS.fd - BIOS kood ja konf on eraldi

Kõige lihtsamal juhul sobib käivitamise testiks öelda

Käivitamiseks sobib öelda

# qemu-system-x86_64 -enable-kvm -pflash /var/tmp/o/OVMF.fd

ja pistab selline pilt

Fail:Ovmf-qemu-1.gif

kus

  • saab jõuda EFI Shelli (fs0: jt käsud)
  • saab sättida Secure Boot PK, KEK, DB jt võtmeid

Kui efi shellis öelda 'exit' ning jõutakse Setup keskkonda.

EFI võimelise operatsioonisüsteemi paigaldamine

# cat run.sh 
qemu-system-x86_64 --enable-kvm -m 1536 \
  -drive file=/dev/deb8-vg/root_fedora25,if=ide \
  -net nic -net tap,ifname=tap0,script=no,downscript=no \
  -drive file=/srv/video/20161224/OVMF_CODE-fedora.fd,if=pflash,format=raw,readonly \
  -drive file=/srv/video/20161224/OVMF_VARS-fedora.fd,if=pflash,format=raw \
  -drive file=/srv/video/20161224/Fedora-Server-dvd-x86_64-25-1.3.iso,if=ide,media=cdrom

Selleks, et nii käivitatud arvutis töötaks võrk sobib host peal öelda

# brctl addbr br0
# brctl addif br0 eth0
# brctl addif br0 tap0
# ifconfig br0 192.168.10.8
# route add default gw 192.168.10.254

kus

  • TODO

UEFI seisukohalt virtuaalses arvutis või olla asjakohane selline tarkvara

  • efibootmgr

Misc

Tundub, et redhat keskkonnas on huvitav pakett edk2-ovmf

# dnf install edk2-ovmf
# rpm -ql edk2-ovmf
/usr/share/doc/edk2-ovmf
/usr/share/doc/edk2-ovmf/README
/usr/share/edk2
/usr/share/edk2/ovmf
/usr/share/edk2/ovmf/EnrollDefaultKeys.efi
/usr/share/edk2/ovmf/OVMF_CODE.fd
/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd
/usr/share/edk2/ovmf/OVMF_VARS.fd
/usr/share/edk2/ovmf/Shell.efi
/usr/share/edk2/ovmf/UefiShell.iso
/usr/share/licenses/edk2-ovmf
/usr/share/licenses/edk2-ovmf/LICENSE.openssl
/usr/share/licenses/edk2-ovmf/License.txt

QMP - QEMU Machine Protocol

Proxmox KVM guestiga suhtlemine

root@ceph-pm71-1:~# socat - unix-connect:/var/run/qemu-server/3011.qmp
{"QMP": {"version": {"qemu": {"micro": 0, "minor": 2, "major": 6}, "package": "pve-qemu-kvm_6.2.0"}, "capabilities": []}}

{"execute":"qmp_capabilities"}
{"return": {}}

{ "execute": "query-version" }
{"return": {"qemu": {"micro": 0, "minor": 2, "major": 6}, "package": "pve-qemu-kvm_6.2.0"}}

{ "execute": "quit" }         
{"return": {}}

{"timestamp": {"seconds": 1650139458, "microseconds": 385606}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}

Kasulikud lisamaterjalid

Kasulikud lisamaterjalid