Jump to content

Unraid..una alternativa "grafica" per la virtualizzazione!


fabiosun

Recommended Posts

  • Supervisor

In questi giorni , grazie a nuovi video presenti in rete, si riparla insistentemente di utilizzare per OSX un sistema virtuale.

Vediamo come costruire in poco tempo una valida alternativa a ProXmoX sfruttando un'interfaccia grafica e una distro linux chiamata Unraid Server OS.

 

Una guida in inglese di un nostro utente @Pavo e' stata fonte di ispirazione per produrre questo articolo:

Link guida Pavo-Unraid

 

Iniziamo....

Da questo link e' possibile scaricare il software:

https://unraid.net/download

Il software e' a pagamento, il costo base e' di 59 $ che sono una tantum, dopo l'installazione e' consentito un utilizzo gratuito per 30 giorni.

 

Requisiti necessari per una installazione base:

  1. Una penna USB per installare Unraid Server OS
  2. Un disco libero ad uso esclusivo di Unraid (di piccolissima taglia), viene chiamato disco array e si assegnerà ad Unraid durante la prima fase.
  3. Se utilizzate l'opzione Resize Bar nel bios e nel config della vostra EFi, la VM potrebbe non funzionare (disabilitate l'opzione dal Bios)

 

Prima di iniziare e' consigliabile programmare bene a livello teorico cosa vogliamo ottenere.

E' importante ad esempio assegnare il disco "array" e la penna usb ad un controller ad uso esclusivo di Unraid.

Che significa?

I controller usati per queste due periferiche non saranno  assegnabili alla nostra macchina virtuale, o meglio al sistema guest che andremo ad installare e saranno quindi "persi".

Questa e' una grossa pecca rispetto a Proxmox che invece consente di fare tutto con una unica periferica assegnata (disco o penna usb)

 

In questa guida non viene spiegata in dettaglio la completa installazione di Unraid (anche perché' e' abbastanza banale) tramite l'utility USB Flash Creator, unica informazione utile e' di attivare la modalità custom e selezionare l'opzione Allow UEFI Boot

Lasciare tutte le altre opzioni di default (utilizzare Unraid versione Stabile, ad oggi Unraid 6.9.2)

 

 

Dopo pochi minuti l'installer avrà completato la procedura di creazione della USB

Riavviare e partire dalla penna USB appena creata

Dopo poche righe di verbose inserire Username e password (root per entrambi)

 

Ora sarà necessario accedere da un altro computer utilizzando questo indirizzo:

http://tower.local/

 

 

1306052380_Screenshot2022-02-22at3_07_56PM.thumb.png.3387219d773232af9c32feeeae413107.png

 

e' possibile navigare tra i vari menu ma quelli interessanti per un uso basico sono:

 

MAIN

SETTINGS
VMS

TOOLS

 

Cliccare su MAIN e impostare il disco 1 con il disco array che si e' deciso di usare, cliccare su start e formattare il disco come da richiesta in popup.

Cliccare poi su Flash nella sezione Boot Device e aggiungere sotto la voce Unraid OS al posto di:

kernel /bzimage
append initrd=/bzroot

 

la seguente stringa

kernel /bzimage
append pcie_acs_override=downstream,multifunction video=efifb:off initrd=/bzroot 

 

Cliccare su apply e poi riavviare

 

68747470733a2f2f692e6962622e636f2f707963684b58442f30312e706e67.png.ef24063daca78c0addfd32b1ba6643ff.png

 

1179348370_Screenshot2022-02-22at4_28_25PM.thumb.png.dad275d800330917ed68d18d7dd0b0ca.png

 

Rientrare nella pagina di amministrazione di Unraid.

Cliccando su TOOLS si vedranno in dettaglio tutti i gruppi IOMMU della nostra macchina (come se lanciassimo da un terminale linux il comando lscpi -nkk)

Qui dovremmo iniziare a ragionare su quali periferiche passare e "linkare" a VFIO

E' consigliabile per iniziare passare pochi controller o devices

 

Di certo la scheda video se vogliamo avere una esperienza d'uso Bare Metal like!

Poi analizziamo le voci presenti, di solito sarà possibile passare con successo tutto quello che non e' legato alla porta usb o al disco che abbiamo riservato inizialmente come penna usb Unraid e disco array

Per iniziare "passare" il meno possibile!

Ad esempio se abbiamo un sistema OSX o Windows già installato su uno o più' dischi NVME, passare questi dischi e' una cosa utile per velocizzare la finalizzazione ed il successo della nostra VM.

Con una EFI appropriata e una macchina virtuale creata come vedremo, sarà possibile in pochi passi far partire il nostro disco "Bare Metal" ma da Unraid 🙂

 

Selezioniamo ora la voce SETTINGS e da questa VM MANAGER

1744635181_Screenshot2022-02-22at3_17_30PM.thumb.png.0de24fd4e1ff1b47cd7da2d8b1c7963e.png

 

Si attiva Enable VMs e si conferma cliccando su Apply

Sempre da SETTINGS/Disk Settings attiviamo Enable auto start e confermiamo sempre cliccando su apply

Questo ci consentirà di avere il disco "array" in partenza automatica ogni qualvolta decidiamo di lanciare Unraid dalla nostra penna USB

Facciamo un rapido riavvio di Unraid (menu MAIN/Reboot e poi selezioniamo la voce VMS.

Da qui si inizierà la creazione della nostra macchina virtuale che alla fine sarà un banale file XML

 

1488210894_Screenshot2022-02-22at3_22_23PM.thumb.png.aaf53bef76b897aa67572adca5c664a4.png

 

Quindi ADD VM e scegliamo nella categoria linux FreeBSD:

2129608991_Screenshot2022-02-22at3_23_38PM.thumb.png.7653ad1ea83807ad0572731d161314b9.png

 

Questa di seguito e' l'interfaccia base "form view"

cliccando sul pulsante in alto a destra avremo l'interfaccia testuale "XML view":

1868951111_Screenshot2022-02-22at3_24_13PM.thumb.png.393d3f62c596ce2298f2d8a6fd168d7d.png

ed assegnare le varie componenti che vorremo passare da Unraid alla nostra vm

Nel mio caso passero' tutte le CPU e 64 Gb di memoria:

Nota bene:

e' possibile che in alcuni casi estremi , passando tutte le cpu, ci siano dei crash di sistema, di solito e' consigliabile lasciare ad uso di Unraid almeno 2 Cpu . Qui non accadono problemi passandole tutte, ma va valutato caso per caso.

La memoria non va "passata" tutta e' consigliabile lasciarne una parte per Unraid. trovare il limite passabile per ill proprio sistema

Qui su 256 Gb posso passare 250

di seguito alcune schermate per completare la configurazione grafica della macchina virtuale:

66148066_Screenshot2022-02-22at3_31_00PM.thumb.png.7be6c3b79a9eafb16ece79ce89c562ba.png

 

486564813_Screenshot2022-02-22at3_31_57PM.thumb.png.95c666a4ae4bee22ff96e935fc04bc68.png

 

6474781_Screenshot2022-02-22at3_33_07PM.thumb.png.255a417810b0f9843e2eebb1aa1582e4.png

 

Importante passare tutte le voci della propria scheda grafica

in questo esempio il controller 23:00/1/2/3 (RX 6900xt)

Passati anche due dischi NVME Sabrent Rocket con Monterey 12.2.1 e Sabrent con Monterey 12.3.b3 (entrambi dischi installati in vanilla)

Creiamo quindi la macchina virtuale disabilitando prima di cliccare su create la voce Start VM after creation, questo e' necessario perché' dovremo intervenire a mano su alcuni punti del file XML per renderlo compatibile con OSX.

quindi clicchiamo sulla vm appena creata e selezioniamo edit, poi passiamo alla vista XML View

1354634005_Screenshot2022-02-22at3_38_25PM.thumb.png.6a38486da9e3091c3aa3882a9a361726.png

 

questo e' il cuore pulsante della nostro futuro successo

Ovviamente questa e' basata sulla macchina che stiamo provando e da voi sarà necessario andare a trovare le cose da modificare.

2000481961_Screenshot2022-02-22at3_39_55PM.thumb.png.0ce5f6197834e5559a07f5d159a42fd9.png

 

Nella parte finale del file XML prima di </domain aggiungere le seguenti righe:

<qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='isa-applesmc,osk=ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc'/>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='host,vendor=GenuineIntel'/>
  </qemu:commandline>

 

per ottenere:

 

278014582_Screenshot2022-02-22at3_41_39PM.thumb.png.a477faa50f22a299a3d15239c3f73130.png

poi andiamo a ricercare:

 <clock offset='UTC'>

e lo trasformiamo in :

 <clock offset='localtime'>

 

eliminiamo la riga:

<topology sockets='1' dies='1' cores='2' threads='2'/>

 

una parte importante e' anche questa relativa alle componenti della GPU che abbiamo passato:

    <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x23' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>

 

andrà modificata in questo modo:

 

    <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0' multifunction='on'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x23' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>

Per avere la scheda grafica passata come un unico "blocco"

 

Nota importantissima:

Se passiamo ora nella modalità form view e modifichiamo qualsiasi cosa e poi clicchiamo su update, le modifiche fatte poco sopra andranno perse.

Questo e' un problema noto, e si spera in futuri miglioramenti dalla casa produttrice.

 

A questo punto e' possibile provare a lanciare la propria macchina virtuale cliccando su start VM

 

Siate rapidi a premere il tasto esc alla comparsa del logo Tianocore della VM:

949623203_Screenshot2022-02-22at6_28_41PM.thumb.png.add9f2d849b0e5e961ae13108d9ee79b.png

 

comparirà il menu dal quale poter selezionare il disco con la nostra EFI preparata appositamente per la VM:

 

207606142_Screenshot2022-02-23at11_13_07AM.thumb.png.2dac40f0833a6b03c0b8249c879e5f1d.png

 

Nella foto sopra una macchina VM preparata per windows.

andiamo a definire l'ordine di partenza dei dischi, in questo caso e' stato assegnato a questa VM il disco nvme Samsung 960 pro che ha Windows 11 installato

 

2086223338_Screenshot2022-02-23at11_13_41AM.thumb.png.d9e63ff9aaa400fd3cef5509acf0959d.png

 

Si porta al primo posto premendo + e poi si conferma la scelta con invio:

 

2125654391_Screenshot2022-02-23at11_14_00AM.thumb.png.49326dadbe700c162b813cfac12c1b4c.png

 

si conferma la scelta dando commit e poi tasto ESC e continue..

 

dopo pochi attimi eccoci "inside" la nostra windows VM, eseguita attraverso una VM di OSX 🙂

 

1555284282_Screenshot2022-02-23at11_14_55AM.thumb.png.2e01d3988230ef852cceaccc5fc219cc.png

 

 

Questa guida offre una base minima per valutare un altro sistema per la virtualizzazione.

Rispetto all'altro che abbiamo utilizzato presenta alcune peculiarità che lo rendono più' semplice da configurare, come ad esempio la sua interfaccia grafica e il sistema per "passare" le periferiche

 

Presenta anche dei problemi in più', come ad esempio l'utilizzo di due periferiche per bootare e per avere le VM, e il bug del passaggio tra XML view e form view in fase di creazione ed editing della VM.

Il primo si puo' ovviare utilizzando ad esempio un banale HUB usb c..per il secondo ci deve pensare il produttore di UnRaid Server OS.

Altro lato negativo e' il costo una tantum del software..e' poco..ma sempre più' di 0! 🙂

 

Abbiate una buona esperienza d'uso!  🙂 🙂

 

 

 

 

 

 

  • Like 5
Link to comment
Share on other sites

  • Supervisor

VM (XML):

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' id='3' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>FreeBSD</name>
  <uuid>c2af5650-1315-90f2-6375-a3c8e7e8fea4</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="macOS" icon="freebsd.png" os="OSX"/>
  </metadata>
  <memory unit='KiB'>67108864</memory>
  <currentMemory unit='KiB'>67108864</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>64</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='32'/>
    <vcpupin vcpu='2' cpuset='1'/>
    <vcpupin vcpu='3' cpuset='33'/>
    <vcpupin vcpu='4' cpuset='2'/>
    <vcpupin vcpu='5' cpuset='34'/>
    <vcpupin vcpu='6' cpuset='3'/>
    <vcpupin vcpu='7' cpuset='35'/>
    <vcpupin vcpu='8' cpuset='4'/>
    <vcpupin vcpu='9' cpuset='36'/>
    <vcpupin vcpu='10' cpuset='5'/>
    <vcpupin vcpu='11' cpuset='37'/>
    <vcpupin vcpu='12' cpuset='6'/>
    <vcpupin vcpu='13' cpuset='38'/>
    <vcpupin vcpu='14' cpuset='7'/>
    <vcpupin vcpu='15' cpuset='39'/>
    <vcpupin vcpu='16' cpuset='8'/>
    <vcpupin vcpu='17' cpuset='40'/>
    <vcpupin vcpu='18' cpuset='9'/>
    <vcpupin vcpu='19' cpuset='41'/>
    <vcpupin vcpu='20' cpuset='10'/>
    <vcpupin vcpu='21' cpuset='42'/>
    <vcpupin vcpu='22' cpuset='11'/>
    <vcpupin vcpu='23' cpuset='43'/>
    <vcpupin vcpu='24' cpuset='12'/>
    <vcpupin vcpu='25' cpuset='44'/>
    <vcpupin vcpu='26' cpuset='13'/>
    <vcpupin vcpu='27' cpuset='45'/>
    <vcpupin vcpu='28' cpuset='14'/>
    <vcpupin vcpu='29' cpuset='46'/>
    <vcpupin vcpu='30' cpuset='15'/>
    <vcpupin vcpu='31' cpuset='47'/>
    <vcpupin vcpu='32' cpuset='16'/>
    <vcpupin vcpu='33' cpuset='48'/>
    <vcpupin vcpu='34' cpuset='17'/>
    <vcpupin vcpu='35' cpuset='49'/>
    <vcpupin vcpu='36' cpuset='18'/>
    <vcpupin vcpu='37' cpuset='50'/>
    <vcpupin vcpu='38' cpuset='19'/>
    <vcpupin vcpu='39' cpuset='51'/>
    <vcpupin vcpu='40' cpuset='20'/>
    <vcpupin vcpu='41' cpuset='52'/>
    <vcpupin vcpu='42' cpuset='21'/>
    <vcpupin vcpu='43' cpuset='53'/>
    <vcpupin vcpu='44' cpuset='22'/>
    <vcpupin vcpu='45' cpuset='54'/>
    <vcpupin vcpu='46' cpuset='23'/>
    <vcpupin vcpu='47' cpuset='55'/>
    <vcpupin vcpu='48' cpuset='24'/>
    <vcpupin vcpu='49' cpuset='56'/>
    <vcpupin vcpu='50' cpuset='25'/>
    <vcpupin vcpu='51' cpuset='57'/>
    <vcpupin vcpu='52' cpuset='26'/>
    <vcpupin vcpu='53' cpuset='58'/>
    <vcpupin vcpu='54' cpuset='27'/>
    <vcpupin vcpu='55' cpuset='59'/>
    <vcpupin vcpu='56' cpuset='28'/>
    <vcpupin vcpu='57' cpuset='60'/>
    <vcpupin vcpu='58' cpuset='29'/>
    <vcpupin vcpu='59' cpuset='61'/>
    <vcpupin vcpu='60' cpuset='30'/>
    <vcpupin vcpu='61' cpuset='62'/>
    <vcpupin vcpu='62' cpuset='31'/>
    <vcpupin vcpu='63' cpuset='63'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-5.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/c2af5650-1315-90f2-6375-a3c8e7e8fea4_VARS-pure-efi.fd</nvram>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough' check='none' migratable='on'>
    <cache mode='passthrough'/>
    <feature policy='require' name='topoext'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>
    <controller type='usb' index='0' model='qemu-xhci' ports='15'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'>
      <alias name='pcie.0'/>
    </controller>
    <controller type='pci' index='1' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='1' port='0x8'/>
      <alias name='pci.1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='2' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='2' port='0x9'/>
      <alias name='pci.2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='pci' index='3' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='3' port='0xa'/>
      <alias name='pci.3'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='4' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='4' port='0xb'/>
      <alias name='pci.4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3'/>
    </controller>
    <controller type='pci' index='5' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='5' port='0xc'/>
      <alias name='pci.5'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x4'/>
    </controller>
    <controller type='pci' index='6' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='6' port='0xd'/>
      <alias name='pci.6'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x5'/>
    </controller>
    <controller type='pci' index='7' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='7' port='0xe'/>
      <alias name='pci.7'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x6'/>
    </controller>
    <controller type='pci' index='8' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='8' port='0xf'/>
      <alias name='pci.8'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x7'/>
    </controller>
    <controller type='pci' index='9' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='9' port='0x10'/>
      <alias name='pci.9'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='10' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='10' port='0x11'/>
      <alias name='pci.10'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
    </controller>
    <controller type='pci' index='11' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='11' port='0x12'/>
      <alias name='pci.11'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
    </controller>
    <controller type='pci' index='12' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='12' port='0x13'/>
      <alias name='pci.12'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
    </controller>
    <controller type='sata' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:fa:dc:ab'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio-net'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/0'/>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/0'>
      <source path='/dev/pts/0'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-3-FreeBSD/org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='connected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='mouse' bus='ps2'>
      <alias name='input0'/>
    </input>
    <input type='keyboard' bus='ps2'>
      <alias name='input1'/>
    </input>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x23' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev0'/>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0' multifunction='on'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x23' slot='0x00' function='0x1'/>
      </source>
      <alias name='hostdev1'/>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x1'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev2'/>
      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev3'/>
      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x04' slot='0x00' function='0x3'/>
      </source>
      <alias name='hostdev4'/>
      <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x23' slot='0x00' function='0x2'/>
      </source>
      <alias name='hostdev5'/>
      <address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x23' slot='0x00' function='0x3'/>
      </source>
      <alias name='hostdev6'/>
      <address type='pci' domain='0x0000' bus='0x09' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x44' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev7'/>
      <address type='pci' domain='0x0000' bus='0x0a' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x47' slot='0x00' function='0x3'/>
      </source>
      <alias name='hostdev8'/>
      <address type='pci' domain='0x0000' bus='0x0b' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x4e' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev9'/>
      <address type='pci' domain='0x0000' bus='0x0c' slot='0x00' function='0x0'/>
    </hostdev>
    <memballoon model='none'/>
  </devices>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+0:+100</label>
    <imagelabel>+0:+100</imagelabel>
  </seclabel>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='isa-applesmc,osk=ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc'/>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='host,vendor=GenuineIntel'/>
  </qemu:commandline>
</domain>

 

EFI Vm:

EFI_VM.zip

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • There are no registered users currently online
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.