QEMU-KVM 가상 머신의 부팅 장치 변경


8

VM의 부팅 장치를 변경하려고합니다. VM의 XML 파일 in으로 이동 /etc/libvirt/qemu하여 설정 <boot dev='cdrom' />합니다. 그래도 cdrom 대신 하드 드라이브에서 부팅을 시도합니다.

CD-ROM 가상 장치에 ISO 이미지가로드되어 있음을 알고 있습니다.

이 작업을 올바르게 수행하고 있지 않습니까? VM을 완전히 종료하고 다시 시작하여 아무 소용이 없었습니다. 어쨌든 설정을 다시로드해야합니까?

편집하다:

@Selivanov의 요청에 의해 :

$ libvirtd --version
libvirtd (libvirt) 0.8.7

그리고 XML 파일 :

<domain type='kvm'>
  <name>nimmy.example.com</name>
  <uuid>(SNIP)</uuid>
  <memory>524288</memory>
  <currentMemory>524288</currentMemory>
  <vcpu>1</vcpu>
  <os>
    <type arch='x86_64' machine='rhel6.1.0'>hvm</type>
    <boot dev='cdrom'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='none'/>
      <source file='/var/lib/libvirt/images/nimmy.img'/>
      <target dev='hda' bus='ide'/>
      <address type='drive' controller='0' bus='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/home/nimmy/CentOS-6.0-x86_64-netinstall.iso'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='1' unit='0'/>
    </disk>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <interface type='network'>
      <mac address='(SNIP)'/>
      <source network='default'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='-1' autoport='yes'/>
    <sound model='ac97'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </sound>
    <video>
      <model type='cirrus' vram='9216' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
</domain>

답변:


8

libvirt가 시작 / 중지시 VM 설정을 다시로드하지 않으면 virsh edit명령이 도움이 될 수 있습니다. 그리고 전체 XML 파일과 libvirt 버전을 작성하십시오

흠 ... 다 괜찮아 보인다. 추가해보십시오

<boot dev='hd'/>
<boot dev='cdrom'/>
<bootmenu enable='yes'/>

<os> 섹션으로 이동하여 부팅 메뉴에 cdrom이 나타나는지 확인하십시오. 또한 <os>에서 모든 <boot> 레코드를 제거하고 추가하십시오.

<boot order='1'/>

<disk> 섹션으로


분명히 virt-manager설정을 다시로드 하기 위해 닫아야 했습니다. 이것이 일반적인 경우입니까? 설정을 다시로드하는 방법이 있습니까? 또한 설정이 왜 수행 virt-manager되지 않는지 혼란 스럽습니다 .
Belmin Fernandez

1
배포판의 init 스크립트가이를 지원하는 경우 (예 : ubuntu :) libvirt-bin 서비스를 다시로드 할 수 있습니다 sudo reload libvirt-bin. 외부 편집기로 xml 파일을 편집 한 경우 이는 정상입니다. virsh editvirt-manager에서 설정 을 사용 하거나 변경 한 경우 이는 버그입니다.
Selivanov Pavel

XML 파일을 편집하는 경우 업데이트를 적용하려면 VM을 다시로드해야합니다. /etc/init.d/libvirt-bin reload

1

VM이 다운 된 경우 / var / lib / libvirt / qemu / save에서 저장된 저장된 이미지를 찾으십시오. 이는 virsh edit를 통해 변경 한 내용에도 불구하고 기존 매개 변수를 유지합니다. 존재하지 않는 네트워크 인터페이스를 계속 찾은 (이로 인해 부팅에 실패한) 비슷한 경우에 이러한 이미지를 삭제했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.