我只是想运行多个虚拟机(不是同时运行)。我希望将它们存储在另一个分区(安装在此处/run/media/shark/VM
)中,而不是默认存储池中/var/lib/libvirt/images/default
。
无论我使用 virsh 还是 qemu-kvm、virtlib 还是 qemu、CLI 还是 GUI,我只希望我的虚拟机能够运行:)
我按如下方式安装 KVM:
- 启动 YaST 并选择“虚拟化”>“安装虚拟机管理程序和工具”。
- 选择 KVM 并确认“接受”。
- 使用安装确认要安装的软件包列表。
- 单击“是”表示同意设置网桥。
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.conf
:unix_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
;请改用std
或qxl
:https://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/
答案3
有些人可能希望在“BIOS”中的 CPU 选项中启用虚拟化。