AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题

问题[qemu](ubuntu)

Martin Hope
Tyrelius
Asked: 2020-12-10 01:44:40 +0800 CST

树莓派 4 上 Ubuntu 20.04 上的 KVM 桥接器

  • 0

我无法在来宾 VM 内建立网络以在运行官方 Ubuntu 20.04 映像的 Raspberry Pi 4 8​​GB 上使用 KVM。据我所知,我的网络配置正确。而且我真的希望有人会告诉我我做错了什么,并可以为我指出更好的文档。我已经阅读了 netplan 的文档、十几个关于 KVM 设置的不同教程,甚至还查看了一些与 CPU 配置相关的 QEMU 文档,因为我发现 QEMU 对 aarch64 的构建不如对 x86_64 的构建好。

我通过与在十几个教程中找到的相同方式安装 KVM:

$ sudo apt install qemu qemu-kvm libvirt-clients libvirt-daemon-system virtinst bridge-utils
$ sudo systemctl enable libvirtd
$ sudo systemctl start libvirtd

这是我的网络计划:

$ cat /etc/netplan/01-netcfg.yaml 
network:
    ethernets:
        eth0:
            dhcp4: false
            dhcp6: false
            optional: true
            nameservers:
                addresses: [1.1.1.1, 1.0.0.1]
    wifis:
        wlan0:
            dhcp4: true
            dhcp6: false
            optional: true
            access-points:
                "censored":
                    password: "censored"
    bridges:
        br0:
            interfaces: [eth0]
            nameservers:
                addresses: [1.1.1.1, 1.0.0.1]
            parameters:
                stp: true
                forward-delay: 4
            dhcp4: true
            dhcp6: false
    version: 2
    renderer: networkd

然后我为 KVM 域定义了它:

$ sudo mkdir -p /opt/kvm
$ sudo nano /opt/kvm/host-bridge.xml

<network>
    <name>host-bridge</name>
    <forward mode="bridge"/>
    <bridge name="br0"/>
</network>

$ virsh net-define /opt/kvm/host-bridge.xml
$ virsh net-start host-bridge
$ virsh net-autostart host-bridge

然后我检查了它是否确实存在并且配置正确:

$ virsh net-list --all
 Name          State      Autostart   Persistent
--------------------------------------------------
 default       inactive   no          yes
 host-bridge   active     yes         yes

开始创建 VM 后,我检查了它的 vnet0 是否已正确添加到网桥:

$ sudo virt-install --name Test-VM --ram=2048 --vcpus=2 --cpu max --hvm --disk path=/opt/vhd/test-vhd,size=16 --cdrom /opt/iso/ubuntu-20.04.1-live-server-arm64.iso --network bridge=br0 --graphics vnc
$ virsh domiflist Test-VM
 Interface   Type     Source   Model    MAC
-----------------------------------------------------------
 vnet0       bridge   br0      virtio   52:54:00:64:58:9e
$ brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.dca632b43f5b       yes             eth0
                                                        vnet0
docker0         8000.0242aa58079a       no
docker1         8000.024296884d89       no              veth239b4dd
                                                        veth76e81fc
                                                        vethdffe7c7
                                                        vethef20e5a

然而,在这一切之后,我的客人内部的网络似乎不起作用。它只是不停地试图获得一个 IP 地址,但它永远不会得到一个。有什么我错过的吗?

我还检查了虚拟机实际上正在使用桥接接口,它似乎是:

$ virsh edit Test-VM
...
    <interface type='bridge'>
      <mac address='52:54:00:64:58:9e'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>
...

这是客人正在旋转的屏幕。如您所见,我通过主机上的桥接接口具有完整的网络能力,可以通过 VNC 连接到 KVM。 截屏

virtualization kvm qemu network-bridge raspberrypi
  • 1 个回答
  • 1330 Views
Martin Hope
MisterX
Asked: 2020-12-03 09:23:26 +0800 CST

QEMU/libvirt:来宾 VM 未正确关闭

  • 0

自从我最近从 ubuntu 18.04 升级到 20.04 后,我的来宾虚拟机无法正常关闭。之前使用ubuntu 18.04,没有遇到这些问题。

我有两个来宾虚拟机——一个运行 ubuntu 18.04 的“标准”来宾,一个运行 Windows 10 的具有 GPU 直通和实际物理 SSD(而不是磁盘映像文件)的来宾。

当我尝试从 geust VM 中关闭它们时,两者都不会正确关闭。我的 ubuntu VM 启动关机 - 我可以在关机期间看到正常消息。我看到的最后一条消息是

[OK] Stopped target Local File Systems (Pre).
[OK] Stopped Remount Root and Kernel File Systems.
[OK] Stopped Create Static Device Nodes in /dev.
[OK] Reached target Shutdown.
[OK] Reached target Final Step.
Starting Power-Off...
[44.540351] systemd-shutdown[1]: Failed to wait for process: Protocol error

然后来宾虚拟机就这样卡住了,我的虚拟机管理器中的状态显示“正在关闭”

如果我尝试使用该virsh destroy命令强制关机,我会收到错误消息

error: Failed to destroy domain ubuntu18.04
error: Failed to terminate process 4736 with SIGTERM: permission denied

我的 Windows VM 也发生了类似的事情。Windows 开始关闭,连接到直通 GPU 的屏幕变黑,我又回到了我的主机系统。但是,我的虚拟机管理器中的状态卡在“正在关闭”。

在将我的主机系统从 ubuntu 18.04 升级到 20.04 期间,有人问我是否要替换一些配置文件或保留我手动调整的旧配置文件。我记得如果我手动调整了旧的配置文件,我会保留它们,因为我不想丢失我的自定义设置/配置。保留旧的配置文件已经导致我遇到https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1833040我通过手动编辑 apparmor 抽象文件中的一行来解决,如错误修复中所述.

因此,我怀疑 ubuntu 18.04 中的一些旧配置文件在升级过程中没有更新,这导致了我的问题。你同意这一点,还是更有可能?如果旧的配置文件是最可能的原因,我如何获得新的更新的 ubuntu 20.04 配置文件?

shutdown virtualization qemu
  • 1 个回答
  • 1734 Views
Martin Hope
Betty Von Schmartenhausen
Asked: 2020-11-26 01:12:12 +0800 CST

在 20.10 中无法验证 KVM/QEMU 快照的 XML

  • 1

尝试使用virsh snapshot-create-as --domain vm --name vm-snap --disk-only --diskspec "sdc,snapshot=internal,file=/var/lib/libvirt/images/vm.qcow2,,new"获取 KVM 快照时,出现错误:

error: XML document failed to validate against schema: 
 Unable to validate doc against /usr/share/libvirt/schemas/domainsnapshot.rng  
Extra element disks in interleave  
Element domainsnapshot failed to validate content

然而,XML 可以很好地验证使用visrh edit vm.xml,但这里有些东西没有验证。

  • 操作系统:Ubuntu 20.10
  • qemu: 1:5.0-5ubuntu9.1
  • libvirt:6.6.0-1ubuntu3.1
virtualization kvm qemu
  • 1 个回答
  • 728 Views
Martin Hope
HTV04
Asked: 2020-11-19 17:11:34 +0800 CST

帮助使用 QEMU/KVM 设置 Windows VM

  • 0

我完全迷失了这一点。

我使用本指南帮助我设置 VM 环境(也安装了 virt-manager):https ://help.ubuntu.com/community/KVM/Installation

然后,我使用 Windows 10 ISO 设置了一个带有 virt-manager 的 VM,除了 RAM 分配、要使用的 CPU 核心数和 HDD 大小之外,我没有被提示更改任何内容。当我第一次加载 VM 时,我注意到视频非常滞后,但我认为这只是 Windows 安装程序的一个奇怪的副作用。但这在 Windows 完全安装后仍然发生。分辨率也没有自动改变,我不得不手动改变它。虚拟机的视频感觉非常慢。

我不知道我做错了什么,我一直在到处寻找答案。我怎样才能解决这个问题?我正在尝试制作一个感觉像本机安装的虚拟机。

windows virtualization kvm qemu
  • 1 个回答
  • 1819 Views
Martin Hope
Marecky
Asked: 2020-08-12 12:05:41 +0800 CST

如何使在 qemu/kvm 上运行的 Windows 客户机从具有 DHCP 服务器的物理路由器获取 IP 地址?

  • 5

我在带有 qemu/kvm 的 Ubuntu 18.04 LTS 上以访客身份运行 Windows XP。
我想使用这个 Windows 实例来管理我使用 ActiveX 小程序的 CCTV IP 摄像机。

我需要这个 Windows XP 从与 IP 摄像机相同的子网获取 IP。
如何使用 Virtual Machine Manager 配置此虚拟机?

我使用笔记本电脑,所以我的主要连接是 WiFi(接口名称 wlp2s0)。

在/etc/netplan/01-network-manager-all.yaml我有

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

如果我编辑我的内容,我/etc/network/interfaces将无法连接到互联网(笔记本电脑无法启动 WiFi 连接)

我尝试了本教程但没有成功

然后我尝试了这个。这里说“然后将以太网接口添加为网桥中的端口......”我注意到nmcli命令可以传递type参数。我阅读了有关该参数的帮助,并设法传递wifi ssid MYSSID参数以使用我的 WiFi 连接配置该网桥。

所以我设法拉出这些命令:

sudo nmcli conn add type bridge con-name br0 ifname br0
sudo nmcli conn add type wifi ssid MYSSID slave-type bridge con-name bridge-br0 ifname enp1s0 master br0

在第二个中,我将以太网更改为 wifi ssid

sudo nmcli conn show --active
sudo nmcli conn up br0

然后教程说我需要关闭以太网连接 - 所以我认为在我的情况下我需要关闭 wifi 连接。

这怎么会起作用?我希望我的笔记本电脑有一个连接,而我的桥接虚拟客户操作系统也有一个。

当我发出ip abr0 连接时,没有来自 DHCP 的 IP 地址。

如果我打开 WiFi 连接,桥接接口上不会出现新的 IP 地址 ( ip a)

networking qemu dhcp windows-xp
  • 3 个回答
  • 8024 Views
Martin Hope
Richardds
Asked: 2020-07-17 03:58:05 +0800 CST

使用 GitLab 运行器在 x64 docker 容器中构建 aarch64 NVIDIA Jetson Nano 映像

  • 0

我正在尝试在 Docker 容器(运行 Ubuntu 20.04 x64)内构建自定义 NVIDIA Jetson Nano 映像(aarch64 架构)。我跳过了 NVIDIA 工具部分,因为在创建证明时我被困在第一部分。我正在使用以下命令:

apt-get update
apt-get install --no-install-recommends -q -y ca-certificates curl dialog apt-utils bzip2 python gdisk binfmt-support qemu qemu-user-static debootstrap
mkdir -p rootfs
qemu-debootstrap --arch=arm64 --variant=minbase --keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg focal rootfs

我也试过

debootstrap --arch=arm64 --foreign --variant=minbase --keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg focal rootfs
chroot rootfs qemu-aarch64-static /bin/bash -c '/debootstrap/debootstrap --second-stage'

但是在使用 GitLab CI 执行此操作时,我总是会收到以下错误。

I: Running command: chroot test /debootstrap/debootstrap --second-stage
chroot: failed to run command '/debootstrap/debootstrap': Exec format error
ERROR: Job failed: exit code 1

当我在 WSL 甚至本地 Docker 容器中本地运行它时,它可以工作。

我还尝试了 Ubuntu 18.04.4 或完全跳过“自定义 rootfs”部分。但是,无论如何我都需要仿真部分,因为 NVIDIA 工具无论如何都在执行 aarch64 二进制文件。

Installing BSP Debian packages in /builds/richardds/jetson-nano-image/build/rootfs
chroot: failed to run command 'dpkg': Exec format error
ERROR: Job failed: exit code 1

您能否推荐我如何修复它或在 GitLab-CI 环境(运行 Docker 容器)中创建自定义 aarch64 rootfs 的任何其他工作方式?

qemu disk-image debootstrap chroot arm64
  • 1 个回答
  • 1480 Views
Martin Hope
DavidF
Asked: 2020-07-01 01:45:54 +0800 CST

Virt-Manager gui 缺少“灯泡”

  • 1

我在我的 20.04 桌面上安装了“virt-manager”2.2.1 并在其中创建了一个 VM。我发现许多设置都需要单击工具栏上的“灯泡”——但我的没有!

virt-manager 窗口截图

我错过了安装我需要的组件吗?

kvm qemu virt-manager
  • 1 个回答
  • 397 Views
Martin Hope
Akaoni
Asked: 2020-05-24 07:30:07 +0800 CST

QEMU-KVM、GPU 直通、Windows 10 - 崩溃

  • 2

在过去的几年里,我一直很高兴地在 QEMU-KVM 上使用 GPU Passthrough 运行几个 Windows 10 虚拟机,几乎没有问题。然而,几天前(2020 年 5 月 21 日)我的两个虚拟机在启动时都开始崩溃。

如果我以安全模式启动 Windows - 它可以工作。如果我在禁用 Windows GPU 驱动程序的情况下启动 - 它可以工作。一旦安装或启用驱动程序,它就会崩溃(空白屏幕,VM 使用 100% CPU,无法切换键盘上的 num lock),几秒钟后 VM 重新启动。

任何人都有类似的问题或知道如何进一步排除故障?


硬件

  • MB:GA-X99P-SLI
  • CPU:i7-6850K
  • 内存:32GB
  • 主机 GPU:Nvidia Geforce 9400 GT
  • 访客 GPU x2:Nvidia GTX GeForce 1060 6GB
  • 磁盘:三星 950 PRO NVMe 512GB

软件

  • Ubuntu 服务器 18.04/20.04
  • qemu-kvm 2.11/4.2
  • 视窗 10 x64 1909

我尝试过的事情

  • 虽然不太可能,因为两个虚拟机同时开始崩溃,我回滚了几个 Windows 更新
  • 尝试过旧驱动程序、Windows 更新驱动程序和最新的 Nvidia 驱动程序
  • 这恰逢适当的升级,所以我尝试回滚,但我不能(轻松)因为我清理了我的缓存(d'oh!!)并且包不可用
  • Windows 事件中没有错误或警告
  • /var/log/libvirt/qemu 中没有错误或警告
  • 所有 GPU 在裸机上一起运行良好
  • 使用最新的 LTS 版本的 Ubuntu (20.04) 和相关的 qemu-kvm (4.2) 重建一切
  • 将虚拟机从 i440 切换到 Q35
nvidia kvm graphics qemu windows-10
  • 2 个回答
  • 5253 Views
Martin Hope
C0D3 M4513R
Asked: 2020-04-01 06:09:28 +0800 CST

qemu 无法附加只读驱动器

  • 2

我正在运行 Ubuntu 19.10 安装 ( 5.3.0-42-generic #34-Ubuntu SMP Fri Feb 28 05:49:40 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux) 并尝试启动真正的本地 Windows 10 安装。第一步(我认为)是附加 EFI 分区。我正在尝试这个: sudo qemu-system-x86_64 -drive file=fat:/boot/efi/,format=raw,readonly 输出: qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5] qemu-system-x86_64: Initialization of device ide-hd failed: Block node is read-only /boot/efi 如下 /dev/nvme0n1p2 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

virtualization qemu
  • 1 个回答
  • 2797 Views
Martin Hope
lucidbrot
Asked: 2020-03-25 07:22:59 +0800 CST

如何在 ubuntu 18.04 上为 qemu windows 10 来宾设置动态屏幕大小?

  • 11

我的笔记本电脑上有一个双引导设置:Ubuntu 18.04 和 Windows 10。在 ubuntu 中,我可以在本指南的帮助下使用 qemu 引导到我现有的 Windows 分区。我正在使用的命令是这样的:

sudo qemu-system-x86_64 --enable-kvm -cpu host -smp 8 -m 8192 \
-drive format=raw,file=/dev/nvme0n1,index=1 \
-bios /usr/share/ovmf/OVMF.fd \
-display sdl -vga qxl \
-device qemu-xhci,id=xhci \
-netdev user,id=vmnic,smb=/home/generic/Downloads \
-device virtio-net,netdev=vmnic -cdrom ~/Downloads/virtio-win-0.1.171.iso

最后一行只是安装virtio 驱动程序,所以我很确定我不需要每次都需要它。
第二行确定分区/dev/nvme0n1p1。

该指南提到了 SPICE,这显然对

动态屏幕调整大小,来宾/主机之间的剪贴板等。

我想让虚拟屏幕在调整窗口大小时改变它的大小并调整分辨率。我尝试按照https://www.linux-kvm.org/page/SPICE上的指南进行操作,并意识到这spicec不再是一回事 - 这意味着我无法使用spicec -h 127.0.0.1 -p 5900. Spice 用户手册同意
:

推荐的客户端是 remote-viewer(随 virt-viewer 提供)。
GNOME Boxes 也可以用作 Spice 客户端。
spicec 是一个过时的遗留客户端,spicy 只是一个测试应用程序。

所以我尝试添加-spice port=5900,addr=127.0.0.1,disable-ticketing到我的qemu命令并remote-viewer在spice://127.0.0.1:5009. 这实际上打开了一个香料窗口——所以现在我有两个窗口可以显示我的 win10 客户机。
Spice 窗口在调整大小时反应更好,但它保持相同的分辨率,并在必要时添加白色边框。

问题

如何获得能够很好地适应调整大小的访客系统的无边界视图?
如果这不是一个完全不同的问题:我怎么能只有一个窗口,而不是 qemu 和 spice 窗口?


更多详细信息

当我连接remote-viewer时,它的控制台窗口显示

** (remote-viewer:3066): CRITICAL **: 15:54:52.441: virt_viewer_util_extract_host: assertion 'uri != NULL' failed

qemu输出显示

main_channel_link: add main channel client
main_channel_client_handle_pong: net test: latency 0.110000 ms, bitrate 34711864406 bps (33103.813559 Mbps)
inputs_connect: inputs channel client create
red_qxl_set_cursor_peer:
virtualization qemu spice
  • 2 个回答
  • 13743 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve