저는 kvm과 libvirt가 설치된 Debian Jessie 머신을 실행하고 있습니다. Linux 클라이언트는 잘 작동하지만 Windows 컴퓨터를 실행하는 데 몇 가지 문제가 있습니다. GUI가 설치되어 있지 않습니다. 따라서 virt-install을 통해 설정이 완료됩니다.
게스트를 생성하는 명령은 다음과 같습니다.
virt-install \
--name=win1 \
--memory 2048 \
--os-type=windows \
--os-variant=win2k8 \
--network bridge=br0 \
--disk pool=data,size=8 \
--cdrom /data/windows.iso \
--graphics vnc,password=testpw
vnc 세션을 시작할 수 있습니다. 또한 Windows Installer가 파일을 로드하는 것을 볼 수 있습니다. 그런데 부팅하고 나면 검은화면만 나오네요. 향신료로 시도해 보았지만 그것도 효과가 없습니다.
어쩌면 시뮬레이션 그래픽에 문제가 있는 걸까요?
문제가 있는 곳에 어떤 아이디어가 있습니까?
업데이트 날짜: 2016년 9월 30일
방금 virt-manager를 사용하여 Windows 게스트를 만들어 보았는데 모든 것이 잘 작동했습니다. 그래서 제가 직접 만든 virt-install 명령과 virt-manager가 실행한 명령의 차이점이 무엇인지 알고 싶습니다. 나는 다음 위치에 있는 방문자 로그 파일을 비교했습니다./var/log/libvirt/qemu/win1.log
CMD 양식 작성가상 관리자:
LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin QEMU_AUDIO_DRV=spice /usr/bin/kvm -name win2k8 -S -machine pc-i440fx-2.1,accel=kvm,usb=off -cpu Opteron_G4 -m 4096 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid 9fd58d92-1926-4df3-8ec5-c8f2d5ebe358 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/win2k8.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime,driftfix=slew -global kvm-pit.lost_tick_policy=discard -no-hpet -no-reboot -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x5.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x5 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x5.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x5.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x6 -drive file=/data/vserver/win2k8.qcow2,if=none,id=drive-ide0-0-0,format=qcow2 -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=2 -drive file=/data/windows.iso,if=none,id=drive-ide0-0-1,readonly=on,format=raw -device ide-cd,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1,bootindex=1 -netdev tap,fd=24,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:65:f8:d8,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -device usb-tablet,id=input0 -spice port=5900,addr=0.0.0.0,disable-ticketing,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x2 -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1 -chardev spicevmc,id=charredir2,name=usbredir -device usb-redir,chardev=charredir2,id=redir2 -chardev spicevmc,id=charredir3,name=usbredir -device usb-redir,chardev=charredir3,id=redir3 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7 -msg timestamp=on
CMD 양식 작성가상 설치:
LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin QEMU_AUDIO_DRV=spice /usr/bin/kvm -name win2k8 -S -machine pc-i440fx-2.1,accel=kvm,usb=off -cpu Opteron_G4 -m 4096 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 4513688e-f1ef-4bad-a0db-b7c0d3e0f6ea -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/win2k8.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime,driftfix=slew -global kvm-pit.lost_tick_policy=discard -no-hpet -no-reboot -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x5.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x5 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x5.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x5.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x6 -drive file=/data/vserver/win2k8.qcow2,if=none,id=drive-ide0-0-0,format=qcow2 -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=2 -drive file=/data/windows.iso,if=none,id=drive-ide0-0-1,readonly=on,format=raw -device ide-cd,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1,bootindex=1 -netdev tap,fd=25,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:d8:52:9d,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -device usb-tablet,id=input0 -spice port=5900,addr=0.0.0.0,disable-ticketing,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x2 -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1 -chardev spicevmc,id=charredir2,name=usbredir -device usb-redir,chardev=charredir2,id=redir2 -chardev spicevmc,id=charredir3,name=usbredir -device usb-redir,chardev=charredir3,id=redir3 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7 -msg timestamp=on
두 가지 차이점이 있습니다.
차이점 1:
virt-manager: -netdev tap,fd=24,id=hostnet0
virt-설치:-netdev tap,fd=25,id=hostnet0
차이점 2:
virt-manager: -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1
virt-install: (누락)
이 옵션은 무엇입니까?
답변1
Windows 드라이버 없이 virtio 장치를 사용하지 마십시오. 다음과 같이 부팅하여 해당 가상 머신에 Windows를 설치할 수 있습니다.
virt-install \
--name=win1 \
--memory 2048 \
--os-type=windows \
--os-variant=win2k8 \
--network bridge=br0,model=e1000 \
--disk pool=data,size=8,bus=ide \
--cdrom /data/windows.iso \
--video=vga \
--graphics vnc,password=testpw
virtio 장치에 VM을 설치하려고 시도할 수 있지만 Windows 설치 중에 virtio 드라이버를 Windows에 추가해야 합니다.
얻을 수 있는 드라이버http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers