cdrom 장치를 kvm / qemu 도메인에 연결하는 방법 (명령 줄 도구 사용)?


22

Ubuntu 랩톱에서 Windows XP를 실행하는 가상 컴퓨터를 설정했습니다. virt-managerGUI 응용 프로그램을 사용하여 드라이브에 CD를 넣고 Details → IDE CDROM 1로 이동하여 Connect버튼을 클릭 할 수 있습니다. 그런 다음 가상 머신에서 CD를 사용할 수있게됩니다.

커맨드 라인을 통해 어떻게 똑같이 할 수 있습니까? 분명히, 나는 명령 줄에서도 연결을 끊고 싶습니다.

참고 : 명령 줄에서 virsh start testbed(도메인 / VM의 이름 인 테스트 베드)를 사용하여 VM을 시작할 수 있습니다 .

답변:


23

가상 머신을 작성할 때 CDROM을 정의하지 않은 경우 다음 명령을 실행하여 디바이스를 실행중인 도메인 (가상 머신)에도 연결할 수 있습니다.

virsh attach-disk testbed /dev/sr0 hdc --type cdrom

CDROM을 이미 정의했지만 ISO 이미지를 가리키는 경우에도 동일한 명령을 실행할 수 있습니다. hdc부분은 당신이에있는 블록 장치와 일치해야합니다 testbed가상 머신을.

ISO 이미지를 다시 가리 키려면 /dev/sr0호스트의 파일 이름 (예 :

virsh attach-disk testbed ~/virtio-win-0.1-22.iso hdc --type cdrom

이 문서에서는을 사용 virsh update-device하는 것이 좋지만 다음과 같은 XML 정의를 만드는 것이 더 많은 노력입니다.

<disk type='block' device='cdrom'>
  <driver name='qemu' type='raw'/>
  <source dev='/dev/sr0'/>
  <target dev='hdc' bus='ide'/>
  <readonly/>
</disk>

이런 식으로 들어가면 파일에 파일과 같은 것을 저장 ~/cdrom-real.xml한 다음 실행하십시오.

virsh update-device testbed ~/cdrom-real.xml

이것은 내가 원하는 것 같습니다. 최대한 빨리 확인하겠습니다 (현재는 할 수 없음). 어쨌든 감사합니다.
ΤΖΩΤΖΙΟΥ

그렇습니다. 장치를 분리하는 방법도 알고 있습니까? 나는 시도 virsh detach-disk testbed hdc했지만 알았다 error: unsupported configuration: This type of device cannot be hot unplugged.
ΤΖΩΤΖΙΟΥ

IDE 장치는 실제로 핫 플러그 ​​가능하지 않습니다. detach-disk중지 된 가상 머신에는 작동하지 않습니다. CD를 모두 제거하려면 virsh edit testbed시스템이 중지 된 상태에서 사용 disk하고 cdrom에 정의 된 요소를 삭제 해야합니다. vi편집 전문가 가 아닌 경우 export EDITOR=nano편집 명령을 실행 하기 전에 실행하십시오.
wigy

그건 그렇고, 내 대답이 도움이되었다고 생각되면 대답으로 받아 들여주십시오.
wigy

나는 당신의 대답을 받아 들일 것입니다. 문제는 장치가 테스트 베드 VM에 연결되어 있고 디스크를 넣지 않고 테스트 베드를 시작하면 테스트 베드가 나타나지 않으며 가상 관리자 GUI를 열고 장치를 먼저 분리해야합니다. 그래서 제 질문에 장치 연결을 끊는 방법을 원한다고 말했습니다.
ΤΖΩΤΖΙΟΥ

4

virsh의 qemu-monitor-command를 사용하여 eject 및 change 명령을 qemu로 전달하십시오.

먼저 "info block"을 사용하여 CDROM의 qemu 장치 이름을 가져옵니다.

virsh # qemu-monitor-command mirage --hmp --cmd "info block"
drive-virtio-disk0: type=hd removable=0 file=/home/daoist/mirage/mirage.qcow2 ro=0 drv=raw encrypted=0
drive-ide0-0-0: type=cdrom removable=1 locked=0 file=/home/daoist/iso/en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso ro=1 drv=raw encrypted=0

그래서 제 경우에는 drive-ide0-0-0에 관심이 있습니다 . 디스크를 변경하려면 다음과 같이하십시오 :

virsh # qemu-monitor-command mirage --hmp --cmd "eject drive-ide0-0-0"
virsh # qemu-monitor-command mirage --hmp --cmd "change drive-ide0-0-0 /path/to/new.iso"
virsh #

"info block"명령으로 인해 오류가 발생했습니다. "오류 : 내부 오류가 json 정보 블록을 구문 분석 할 수 없습니다. 어휘 오류 : json 텍스트의 유효하지 않은 문자입니다."
cg.

구문이 저 밑에서 바뀌었을 것 같습니다. 내가 썼을 때 효과가 있다고 맹세합니다. Joe Huss의 답변에서 제안한 구문을 사용해 보았으며 현재 작동합니다. 내 답변을 업데이트했습니다.
Keith Twombley

1

위의 "info block"명령과 관련하여 올바른 호출 방법은 다음과 같습니다.

 virsh qemu-monitor-command <domain> --hmp --cmd "info block"

 virsh qemu-monitor-command windows44407 --hmp --cmd "info block"

0

다른 방법으로 통과하지 않으면 제대로 작동하지 않는 BluRay 플레이어를 통과했습니다. 이 기사를 기반으로 한 방법입니다.

https://lime-technology.com/forums/topic/33851-blu-ray-dvd-rom-passthrough/

SCSI 번호 찾기 :

lsscsi

[root@kvmatrix ~]# lsscsi
[#:0:0:0]    cd/dvd  HL-DT-ST BD-RE  WH14NS40  1.03  /dev/sr0

도메인 XML을 편집하고 다음을 추가하십시오.

참고 : scsi_host #를 lssci에있는 #으로 바꾸십시오.

<controller type='scsi' index='0' model='virtio-scsi'/>
    <hostdev mode='subsystem' type='scsi'>
      <source>
        <adapter name='scsi_host#'/>
        <address type='scsi' bus='0' target='0' unit='0'/>
      </source>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </hostdev>

virsh edit에서 오류가 발생하여 XML을 강제로 수락해야했습니다 .i를 누른 다음 vm을 재부팅하여 테스트하십시오.


-6

마운트 -t iso9660 / dev / sr0 / media

/ dev 디렉토리에서 cdrom에 설정된 모든 장치를 사용할 수 있습니다. 또한 / dev / cdrom은 대부분의 Linux 시스템에서 적절한 장치에 대한 링크입니다. -t는 마운트 할 장치 유형이며 iso9660은 cdrom 매체의 범용 유형입니다.

마운트 지점은 분명히 원하는 것이 될 수 있습니다. 마운트 지점이 있는지 확인하십시오.


음 그것이 호스트에서 CD를 마운트하는 방법입니다. 알았어 내 실수 야 “cdrom 장치를 kvm / qemu 도메인 / VM에 연결하는 방법은 무엇입니까?”이 답변은 완전히 도움이되지 않으므로 편집하거나 삭제해야합니다.
ΤΖΩΤΖΙΟΥ
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.