libvirtd에 대한 osx guest qemu 매개변수를 변환하는 방법

libvirtd에 대한 osx guest qemu 매개변수를 변환하는 방법

다음 명령을 사용하여 qemu에서 osx 게스트를 실행했습니다.

// create the virtual image
$ qemu-img create -f qcow2 mac_hdd.img 35G
// .. install osx ...
// start the guest
$ qemu-system-x86_64 -enable-kvm -m 2048 -cpu core2duo   -machine q35  \
 -usb -device usb-kbd -device usb-mouse  \
 -device isa-applesmc,osk="XXXXXXXXredactedXXXXXXXX"  \
 -kernel ./chameleon_svn2360_boot -smbios type=2 \
 -device ide-drive,bus=ide.2,drive=MacHDD  -drive id=MacD,if=none,index=2,file=mac_hdd.img \
 -netdev user,id=hub0port0 -device e1000-82545em,netdev=hub0port0,id=mac_vnet0 \
 -monitor stdio

게스트는 잘 돌아가고 있었지만 virt-manager에서도 이를 제어할 수 있기를 원했기 때문에 다음과 같이 변환 도구를 실행했습니다.

$ cat > mac_hdd.args <<EOF
// herestring of the arguments
EOF
$ virsh  domxml-from-native qemu-argv mac_hdd.args > osx10.8.3.xml
// as root
# virsh define osx10.8.3.xml

그러면 다음 구성이 생성됩니다.

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>unnamed</name>
  <uuid>7872c6ca-8c58-4eee-801b-b070a2b06abb</uuid>
  <memory unit='KiB'>2097152</memory>
  <currentMemory unit='KiB'>2097152</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <os>
    <type arch='x86_64' machine='q35'>hvm</type>
    <kernel>./chameleon_svn2360_boot</kernel>
  </os>
  <features>
    <acpi/>
  </features>
  <cpu mode='custom' match='exact'>
    <model fallback='allow'>core2duo</model>
  </cpu>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='./mac_hdd.img'/>
      <target dev='hdc' bus='ide'/>
      <address type='drive' controller='0' bus='1' target='0' unit='0'/>
    </disk>
    <controller type='usb' index='0'/>
    <controller type='ide' index='0'/>
    <controller type='sata' index='0'/>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='dmi-to-pci-bridge'/>
    <controller type='pci' index='2' model='pci-bridge'/>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <graphics type='sdl'/>
    <video>
      <model type='cirrus' vram='9216' heads='1'/>
    </video>
    <memballoon model='none'/>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-kbd'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-mouse'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='isa-applesmc,osk=&quot;XXXXXXredactedXXXXXXXquot;'/>
    <qemu:arg value='-smbios'/>
    <qemu:arg value='type=2'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='ide-drive,bus=ide.2,drive=MacHDD'/>
    <qemu:arg value='-netdev'/>
    <qemu:arg value='user,id=hub0port0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='e1000-82545em,netdev=hub0port0,id=mac_vnet0'/>
  </qemu:commandline>
</domain>

불행히도 이것은 작동하지 않았습니다. (상대 경로는 신경쓰지 마세요. 수정했습니다.) 가상 머신을 시작하자마자 오류가 발생했습니다. 그런 다음 정의에 추가하려고 cannot find drive MacHDD시도했지만 여전히 동일한 오류가 발생했습니다.<alias>MacHDD</alias><disk>

삭제하는 경우:

  <qemu:arg value='-device'/>
  <qemu:arg value='ide-drive,bus=ide.2,drive=MacHDD'/>

정의에 따르면 가상 머신은 부팅되지만 BIOS 화면에서는 부팅에 실패합니다.

이를 수행할 수 있는 방법이 있습니까? Fedora 21에서 libvirt-1.2.9.2를 사용하고 있습니다.

관련 정보