KVM 尝试

KVM 尝试

我只是想运行多个虚拟机(不是同时运行)。我希望将它们存储在另一个分区(安装在此处/run/media/shark/VM)中,而不是默认存储池中/var/lib/libvirt/images/default

无论我使用 virsh 还是 qemu-kvm、virtlib 还是 qemu、CLI 还是 GUI,我只希望我的虚拟机能够运行:)

我按如下方式安装 KVM:

  1. 启动 YaST 并选择“虚拟化”>“安装虚拟机管理程序和工具”。
  2. 选择 KVM 并确认“接受”。
  3. 使用安装确认要安装的软件包列表。
  4. 单击“是”表示同意设置网桥。

KVM 尝试

我尝试了不同的方法:

使用 virtlib (vm-install)

我试过 :

 % vm-install --name "mageia5" \ 
--vcpus 2 --memory 1024 --max-memory 2048 \
--disk /run/media/shark/VM/VirtualMachines/mageia_raw_test,0,disk,w,8000,sparse=1 \
--disk /home/shark/Téléchargements/mageia_boot-nonfree.iso,1,cdrom \
--nic model=virtio \
--graphics cirrus --config-dir "/etc/libvirt/qemu"

提示操作系统:

4: Other operating system

然后 :

PXE Boot
(Y / N) [N] > N
Description > 

Virtual Disks:
  7.8 GB Hard Disk (file:/run/media/shark/VM/VirtualMachines/mageia_raw_test)
  0.1 GB CD-ROM or DVD (file:/home/shark/Téléchargements/mageia_boot-nonfree.iso)
Do you want to add another virtual disk?
(Y / N) [N] > N 

Network Adapters
  QEMU Virtualized NIC Card; Randomly generated MAC address
Do you want to add another virtual network adapter?
(Y / N) [N] > N

Specify the bootable virtual disk (often labeled as Disk 1) or the network
installation source URL.  Each CD, DVD, or ISO image required for installation
must be added as a virtual disk.
  1: Virtual Disk (0.1 GB CD-ROM or DVD (file:/home/shark/Téléchargements/mageia_boot-nonfree.iso))
[1] > 1

Preparing to start the installation...

Installing...

Failed to display the VM's console because DISPLAY is not set.  Please connect a VNC viewer to localhost:5900.

但我不知道如何运行 VNC 查看器(使用virt-viewer?)

使用 qemu

看起来qemu-kvm是网络问题+权限问题+显示问题

 % qemu-kvm -name "mageia 5" -M pc-0.12 -m 1024 \ VM/VirtualMachines linux-7o7a
-boot d \
-drive file=/run/media/shark/VM/VirtualMachines/mageia.qcow2,if=virtio,index=0,media=disk,format=qcow2 \
-drive file=/home/shark/Téléchargements/mageia_boot-nonfree.iso,index=1,media=cdrom \
-net nic,model=virtio,macaddr=52:54:00:05:11:11 \
-balloon virtio \
-vga cirrus
Warning: vlan 0 is not connected to host network
Unable to init server: Could not connect: Connection refused

(qemu-system-x86_64:7189): Gtk-WARNING **: cannot open display: 

使用 virt-manager

libvirt URI:qemu:///system

当我想完成安装时:

Impossible de terminer l'installation : « internal error: process exited while connecting to monitor: 2016-01-16T15:47:09.003883Z qemu-system-x86_64: -chardev pty,id=charserial0: Failed to create chardev
 »

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 89, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/create.py", line 1969, in do_install
    guest.start_install(meter=meter)
  File "/usr/share/virt-manager/virtinst/guest.py", line 442, in start_install
    noboot)
  File "/usr/share/virt-manager/virtinst/guest.py", line 506, in _create_guest
    dom = self.conn.createLinux(start_xml or final_xml, 0)
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3585, in createLinux
    if ret is None:raise libvirtError('virDomainCreateLinux() failed', conn=self)
libvirtError: internal error: process exited while connecting to monitor: 2016-01-16T15:47:09.003883Z qemu-system-x86_64: -chardev pty,id=charserial0: Failed to create chardev

什么是 chardev?连接至显示器:显示问题?

KVM 配置

我将尝试在这里说出所有需要的信息:

我在跑openSUSE Leap 42.1 64 位

我的 proc 是英特尔 i7 3610QM 2.3Ghz因此它允许虚拟化。当我运行 时% egrep '(vmx|svm)' /proc/cpuinfo,我得到了vmx

所以我跑了modprobe kvm-intel(我是否只需要跑一次或每次开始会话时都跑一次?)。

我需要做什么modprobe vhost-net

  • /etc/libvirt/qemu.conf默认:全部评论
  • /etc/libvirt/libvirt.conf默认:全部评论
  • /etc/libvirt/libvirtd.confunix_sock_group = "libvirt"++unix_sock_rw_perms = "0770"auth_unix_rw = "none"

我在 libvirt 组中添加了我的用户和 qemu 用户:

usermod -a -G libvirt qemu
usermod -a -G libvirt shark

/etc/libvirt/libvirtd.conf我按照上述方法更改了配置。

进而 :rclibvirtd restart

我想我必须配置我的 VNC 访问/etc/libvirt/qemu.conf但我不知道如何做。

问题

如何配置我的环境和 KVM 来运行我的虚拟机?正如我所说的:

无论我使用 virsh 还是 qemu-kvm、virtlib 还是 qemu、CLI 还是 GUI,我只希望我的虚拟机能够运行

PS:这是我第一次在 Linux 上尝试虚拟化,请多包涵。我是 StackEchange 社区的新手,所以也许我删掉了这个问题,请多包涵。我是法国人,所以我的英语不太流利,请多包涵。所以请多包涵放纵的:)


更新(2016年1月21日): 我还尝试使用 virt-manager 中的 vm-install GUI 安装虚拟机,并将其安装在默认存储池中/var/lib/libvirt/images/default

Impossible de terminer l'installation : « missing target information for device /var/lib/libvirt/images/default/generic.qcow2 »

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 89, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/create.py", line 1969, in do_install
    guest.start_install(meter=meter)
  File "/usr/share/virt-manager/virtinst/guest.py", line 442, in start_install
    noboot)
  File "/usr/share/virt-manager/virtinst/guest.py", line 506, in _create_guest
    dom = self.conn.createLinux(start_xml or final_xml, 0)
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3585, in createLinux
    if ret is None:raise libvirtError('virDomainCreateLinux() failed', conn=self)
libvirtError: missing target information for device /var/lib/libvirt/images/default/generic.qcow2

更新(2016年10月2日): 看来我退步了,现在我无法使用 virt-manager 连接到 QEMU/KVM (qemu:///system),我收到一条错误消息:

Impossible de se connecter à libvirt.
internal error: Cannot find suitable emulator for x86_64

看来我的 QEMU 太新了:

systemctl status libvirtd
libvirtd.service - Virtualization daemon
   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled)
   Active: active (running) since mer. 2016-02-10 18:37:24 CET; 52min ago
     Docs: man:libvirtd(8)
           http://libvirt.org
 Main PID: 1940 (libvirtd)
   CGroup: /system.slice/libvirtd.service
           └─1940 /usr/sbin/libvirtd --listen

févr. 10 19:23:52 linux-7o7a.site libvirtd[1940]: unsupported configuration: QEMU 2.3.1 is too new for help parsing
févr. 10 19:23:52 linux-7o7a.site libvirtd[1940]: Failed to probe capabilities for /usr/bin/qemu-system-i386: unsupported configuration: QEMU 2.3.1 is too new for help parsing
févr. 10 19:23:53 linux-7o7a.site libvirtd[1940]: unsupported configuration: QEMU 2.3.1 is too new for help parsing
févr. 10 19:23:53 linux-7o7a.site libvirtd[1940]: Failed to probe capabilities for /usr/bin/qemu-kvm: unsupported configuration: QEMU 2.3.1 is too new for help parsing
févr. 10 19:23:53 linux-7o7a.site libvirtd[1940]: unsupported configuration: QEMU 2.3.1 is too new for help parsing
févr. 10 19:23:53 linux-7o7a.site libvirtd[1940]: Failed to probe capabilities for /usr/bin/qemu-system-x86_64: unsupported configuration: QEMU 2.3.1 is too new for help parsing
févr. 10 19:23:53 linux-7o7a.site libvirtd[1940]: unsupported configuration: QEMU 2.3.1 is too new for help parsing
févr. 10 19:23:53 linux-7o7a.site libvirtd[1940]: Failed to probe capabilities for /usr/bin/qemu-kvm: unsupported configuration: QEMU 2.3.1 is too new for help parsing
févr. 10 19:23:53 linux-7o7a.site libvirtd[1940]: invalid argument: could not find capabilities for arch=x86_64 domaintype=qemu 
févr. 10 19:23:53 linux-7o7a.site libvirtd[1940]: internal error: Cannot find suitable emulator for x86_64

和 :

sudo qemu-system-x86_64
Warning: default mac address being used, creating potential for address conflict
Unable to init server: Impossible de se connecter : Connexion refusée

(qemu-system-x86_64:5610): Gtk-WARNING **: cannot open display: 

答案1

对我来说,这是 brlapi 的一次损坏安装。

为了调试它,我关闭了 libvirt,虚拟机管理器和 Gnome Boxes 的后端

sudo systemctl stop libvirtd

然后在终端中运行

sudo libvirtd

第一个错误暗示

internal error: Child process (LC_ALL=C PATH=/sbin:/bin:/usr/sbin:/usr/bin HOME=/root USER=Douglas LOGNAME=adams /bin/qemu-system-alpha -help) unexpected exit status 127: /bin/qemu-system-alpha: error while loading shared libraries: libbrlapi.so.0.6: cannot open shared object file: No such file or directory

然后为了找到提供 libbrlapi 的内容,我运行了

$ dnf provides --refresh "libbrlapi.so*"
brlapi-0.6.3-10.fc23.x86_64 : Application Programming Interface for BRLTTY

之后,快速重新安装解决了我的问题

sudo dnf reinstall brlapi

这可能是由于我在编译 brillo、php 和 app 引擎时进行的一些核心修改造成的。

希望这可以帮助!

答案2

我将尝试回答 QEMU 问题。

1)-net nic需要类似-net user功能网络的东西。

2)vm-install提示:您的$DISPLAY变量设置不正确。您需要配置它或使用 禁用 QEMU 的输出-display none

3)请不要使用cirrus;请改用stdqxlhttps://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/

答案3

有些人可能希望在“BIOS”中的 CPU 选项中启用虚拟化。

相关内容