我下载了Android x86_64 5.1-rc1作为可启动img
安装映像。
我想将其安装到使用 QEMU/KVM 和 virt-manager 作为图形前端的 Ubuntu 16.04 64 位 UEFI 上运行的虚拟机。
OVMF 已安装,并且虚拟机管理程序应正确配置,因为带有 UEFI 的 Ubuntu 测试虚拟机(其虚拟磁盘文件和安装程序映像位于同一位置)工作正常。
但是,当我使用下面转储的设置启动新创建的 VM 并将下载的 Android-x86 映像安装到虚拟 CD 驱动器中时,它不会启动,但会显示 EFI Shell:
我在这里做错了什么?如何在 QEMU/KVM 中安装 Android-x86?
$ virsh dumpxml android-x86_64-5.1rc1
<domain type='kvm' id='2'>
<name>android-x86_64-5.1rc1</name>
<uuid>599615a7-aaad-499a-84b4-0d894080dd95</uuid>
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>
<vcpu placement='static'>1</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-i440fx-wily'>hvm</type>
<loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
<nvram>/var/lib/libvirt/qemu/nvram/android-x86_64-5.1rc1_VARS.fd</nvram>
</os>
<features>
<acpi/>
<apic/>
</features>
<cpu mode='custom' match='exact'>
<model fallback='allow'>Broadwell-noTSX</model>
</cpu>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer …
Run Code Online (Sandbox Code Playgroud) 我一直在尝试 ZFS + DRBD + 实时迁移(我想充分理解它,以便在再次开始使用之前编写自己的自动化脚本ganeti
,然后是 openstack cinder
)。我的 ZFS + DRBD(双主模式)适用于共享存储。
然而,实时迁移只发挥了部分作用。
我有两台主机,具有相同的 libvirt 和 drbd 配置,甚至具有相同的 VM ZVOL 专用“卷”池(均为 2x1TB 镜像池 - 重新使用旧备份池中的一些旧磁盘),以及相同的 VM 配置(名为“d测试”)
“indra”是配备 16GB RAM 的 AMD FX-8150,搭载 ASUS Sabertooth 990FX m/b
fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf eagerfpu pni pclmulqdq monitor …
我正在尝试使用lm_sensors
来检测 KVM 来宾中的主机 CPU 温度。
在主机中,插入x86_pkg_temp_ Thermal 内核模块后,sysfs 接口/sys/class/thermal/thermal_zone*/temp
会公开所需的信息。
这是主机上sensors-detect
脚本的输出:lm-sensors
$ sudo sensors-detect
# sensors-detect revision 6284 (2015-05-31 14:00:33 +0200)
# System: LENOVO 20C60065TW [ThinkPad Edge E540] (laptop)
# Kernel: 4.8.8-200.fc24.x86_64 x86_64
# Processor: Intel(R) Core(TM) i7-4702MQ CPU @ 2.20GHz (6/60/3)
This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all …
Run Code Online (Sandbox Code Playgroud) 系统运行时是否可以(任何方法)在显卡之间切换?与禁用的卡绑定到 KVM/QEMU 相比?
我有一个台式机。
我有 2 个 GPU(1 个 Intel HD 4600 和 1 个 NVIDIA GeForce 1060)
我想要使用带有 GPU 直通功能的 KVM 来虚拟 Windows 7。
适用于 Linux 的英特尔显卡(主机) 适用于 Windows 7 的 NVIDIA(客机)
我知道我必须为 NVIDIA 设置存根。
我想要主 GPU Intel Graphics,有时使用 Bumblebee (nvidia optimus) 的 NVIDIA 卡。
但问题是我无法将 NVIDIA 卡绑定到虚拟机。系统运行时可以解除驱动绑定吗?我不认为这是问题,因为 X 服务器使用主 iGPU(英特尔显卡,而不是 NVIDIA)
我正在运行 Deepin 15.3 x64,并且我有一个带有 EXT4 文件系统的外部硬盘。我在哪里存储诸如虚拟机映像之类的东西。Oracle VM VirtualBox 和 VMware Workstation Player 在此配置下工作得很好,但 KVM 无法从中读取文件。我尝试在整个驱动器上 chown 文件、容器目录甚至 chmod -R 0777 。但KVM仍然抱怨无法访问该目录。不过,KVM 可以在那里创建映像,但映像文件创建后 KVM 将无法访问该文件。这是一个视频(如果有不清楚的地方)。请注意,我无法将图像移动到 /var/lib/libvirt/images,因为我的 SSD 上没有足够的空间来容纳它们。
我正在 Ubuntu 16.04 上尝试使用 Qemu 外部快照进行 KVM(因为它们太快了!),并进行以下设置:
head.qcow2
符号链接始终指向顶部“head”qcow2 图像。这样我就不必不断更新虚拟机配置。(维尔什编辑)。base.qcow2
我使用以下脚本拍摄快照(创建一个新的 qcow2 图像并将其设为头部)。该脚本仅在来宾未运行时执行。
#!/bin/bash
UNIX_TIMESTAMP=$(date +%s)
CURRENT_BACKING_FILE=`readlink head.qcow2`
NEW_HEAD_FILE="`pwd`/`echo $UNIX_TIMESTAMP`.qcow2"
# Create the new "head" disk image where all future changes are made.
sudo qemu-img create \
-f qcow2 \
-b $CURRENT_BACKING_FILE \
$NEW_HEAD_FILE
# Update the symlink
rm head.qcow2
ln -s $NEW_HEAD_FILE head.qcow2
Run Code Online (Sandbox Code Playgroud)
当 head.qcow2 指向 base.qcow2 时,这将正常工作,或者我运行脚本一次,因此只有一个支持文件。但是,如果存在一系列备份文件(例如,一个备份文件也有一个备份文件),那么我将收到以下错误:
error: Failed to start domain template-ubuntu-docker2
error: internal error: early end of file from …
Run Code Online (Sandbox Code Playgroud) 我正在使用 QEMU(和 KVM)在 Debian 9 上设置虚拟机。我目前正在尝试使其通过桥接网络工作,我已经使用 等设置了该ip link
网络ip tuntap
;这是输出brctl show
:
bridge name bridge id STP enabled interfaces
br0 8000.107b444f55d6 no enp4s0
tap0
docker0 8000.0242d4c18983 no
Run Code Online (Sandbox Code Playgroud)
这是输出ip a
:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP …
Run Code Online (Sandbox Code Playgroud) 我的电脑上安装了完整的系统。(笔记本电脑上的 Arch Linux)
我需要以安全的方式测试、编辑、调整这个系统(也包括引导加载程序),因为它是我的工作站。
有没有一种方法可以轻松**将当前系统克隆/复制到虚拟机中(我通常使用,gnome-boxes
但使用的软件并不重要)
**简单的方法:将物理安装转换为虚拟安装所需的时间少于从头开始安装虚拟机所需的时间
编辑:正如我猜测和@Terence 所说,我需要将整个磁盘复制到某个地方。源磁盘是 256GB SSD,但我没有任何其他足够大的介质来完全克隆它。
有没有办法只克隆大约 50GB 的强制分区(在我的例子中: boot/EFI 和 root)和bootloader,而留下剩余的 200GB 其他分区(home 和 swap)?
在这种情况下,我将直接将它们克隆到我的$HOME中!
我使用 virt-manager 创建了一个虚拟机,我可以使用 virsh edit 编辑该 xml,但我想问您是否有方法将 libvirt xml 转换为 qemu 命令行。我发现不久前也有人提出了同样的问题:
https://www.reddit.com/r/VFIO/comments/dh9iyo/convert_libvirt_xml_into_qemu_command_line_and/
用户 jkhsjdhjs 说:
要将 libvirt xml 转换为 qemu 命令行,您只需使用 libvirt 启动虚拟机即可。libvirt 将使用大量命令行参数启动 qemu 进程,然后您可以保存这些参数。由于 libvirt 只是启动一个 qemu 进程,因此它们应该执行完全相同的操作。
好吧,但是怎么样?我想了解如何使用 libvirt 启动虚拟机,以便我可以看到 qemu 命令中包含的每个选项。
我尝试过:
virsh dumpxml win10
virsh domxml-to-native qemu-argv win10.xml
error: internal error: invalid PCI passthrough type 'default'
Run Code Online (Sandbox Code Playgroud) 我无法通过主机上的虚拟 Tap 设备将虚拟机连接到 IPv6 互联网。即,我无法 ping ipv6.google.com 或公共 IPv6 主机全局主接口地址。前任:
-bash-4.2$ ping6 ipv6.google.com
PING ipv6.google.com(sea15s11-in-x0e.1e100.net) 56 data bytes
From 2600:1f14:680:xxxx:66a3:79d5:6c1d:14c icmp_seq=1 Destination unreachable: Address unreachable
From 2600:1f14:680:xxxx:66a3:79d5:6c1d:14c icmp_seq=2 Destination unreachable: Address unreachable
From 2600:1f14:680:xxxx:66a3:79d5:6c1d:14c icmp_seq=3 Destination unreachable: Address unreachable
^C
--- ipv6.google.com ping statistics ---
4 packets transmitted, 0
received, +3 errors, 100% packet loss, time 3082ms
Run Code Online (Sandbox Code Playgroud)
或者到主机的全局 ipv6 地址,我得到同样的错误。
简单拓扑:
router -----(eth0)----- host ----(tap device)---- vm
Run Code Online (Sandbox Code Playgroud)
主机上的邻居发现似乎存在一些问题,当我从主机的 tap 端点对 tap 接口进行 tcpdump 时,我收到了请求消息,但没有返回任何内容:
[user ~]$ …
Run Code Online (Sandbox Code Playgroud) kvm ×10
qemu ×6
amazon-linux ×1
android ×1
apparmor ×1
bridge ×1
disk-image ×1
drbd ×1
drivers ×1
external-hdd ×1
graphics ×1
ipv6 ×1
libvirt ×1
linux ×1
migration ×1
networking ×1
nvidia ×1
snapshot ×1
tap ×1
temperature ×1
ubuntu ×1
uefi ×1
virtualbox ×1
zfs ×1