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 / 问题

问题[virtualization](ubuntu)

Martin Hope
minjs
Asked: 2024-09-28 22:07:15 +0800 CST

在 Ubuntu 上设置启用了虚拟机管理程序和虚拟机平台的 Windows 10 VM 的最佳方法是什么?

  • 3

我有一台 Ubuntu 24.04 LTS 设备。我想安装 Windows 10 并启用 Windows 虚拟机管理程序平台/Hyper-V 和虚拟机平台。实现此目标的最佳解决方案是什么?

注意:
我不想设置双启动。它应该像 virtualbox 一样易于使用(使用 ubuntu 时可随时打开和关闭)
我对 CPU 或 RAM 容量没有问题。
我希望 Windows 10 虚拟机中的硬件性能良好,并且没有滞后或图形问题。
我不需要知道如何安装 Windows 10 或启用 Windows 虚拟机管理程序平台和虚拟机平台。
1 https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v#enable-the-hyper-v-role-through-settings
2 https://support.microsoft.com/en-us/windows/enable-virtualization-on-windows-c5578302-6e43-4b4b-a449-8ced115f58e1

如果有人好奇我为什么要这样做:
(a)我想启用并测试适用于 Android 的 Windows 子系统。 (如果您想在 Linux 上使用 Android 应用程序。 我建议您使用https://waydro.id/。 或者,您可以在 KVM、virtualbox 或 vmware 上安装(信用:@raj 评论)Android x86、BlissOS 或其他。
(b)我想使用 Onenote。 我找不到通过 Ubuntu 上的 Wine 成功安装它的方法。 我也知道https://snapcraft.io/onenote-desktop https://github.com/patrikx3/onenote但它是基于云的。 我知道其他流行的 Onenote 替代品,但我并不满意。 所以我把它作为二合一解决方案来做。

virtualization
  • 1 个回答
  • 113 Views
Martin Hope
Milch1998
Asked: 2024-08-12 04:41:54 +0800 CST

24.04 上的单 GPU 直通:启动虚拟机时什么也没有发生

  • 5

我对这一切都很陌生,并尝试设置具有单 GPU 直通功能的虚拟机。我的主机正在运行 Ubuntu 24.04,我正在尝试在 Virt-Manager 中设置 Windows 11 虚拟机。

我主要遵循 Youtube 上 SomeOrdinaryGamers 的教程并结合一些指南来使其适应 Ubuntu。

我已经在虚拟机中成功安装了 Win11,并设置了所有挂钩,但是,设置挂钩后,每当我尝试启动虚拟机时,什么都没有发生(没有错误消息,没有窗口出现并立即重新出现,也没有显示器变黑)。但是,下次我尝试重新启动或关闭主机时,它不会先关闭,而是先将我带到用户的登录屏幕(如果我登录,它会显示我的桌面,但没有打开任何程序)。几秒钟后,无论我是否登录,它都会进入典型的 ubuntu 关闭屏幕,并且无法真正关闭。它只是进入黑屏,然后我不得不按下机箱上的重置按钮。

尝试了一次后,我的机器就无法再启动了(只显示所有已启动服务的屏幕,旁边有一个“确定”),我不得不重新安装 Ubuntu(没问题 - 反正都是全新安装)

当我单独运行启动脚本时,它成功断开了我的监视器的连接。

如果效果更好的话,我也不反对尝试使用 Windows 10,但是我宁愿不要再花 6 个小时等待 Windows 在 VM 中安装,而只是为了得到相同的结果。

我的电脑有 Ryzen 9 3900X 和 RTX 3080 以及 32GB RAM,我正在单独硬盘上的 3TB 分区中安装 Windows。

我的脚本目前如下:

/etc/libvirt/hooks/kvm.conf

VIRSH_GPU_VIDEO=pci_0000_09_00_0
VIRSH_GPU_AUDIO=pci_0000_09_00_1 

/etc/libvirt/钩子/qemu

#!/usr/bin/env bash
#
# Author: SharkWipf
#
# Copy this file to /etc/libvirt/hooks, make sure it's called "qemu".
# After this file is installed, restart libvirt.
# From now on, you can easily add per-guest qemu hooks.
# Add your hooks in /etc/libvirt/hooks/qemu.d/vm_name/hook_name/state_name.
# For a list of available hooks, please refer to https://www.libvirt.org/hooks.html
#

GUEST_NAME="$1"
HOOK_NAME="$2"
STATE_NAME="$3"
MISC="${@:4}"

BASEDIR="$(dirname $0)"

HOOKPATH="$BASEDIR/qemu.d/$GUEST_NAME/$HOOK_NAME/$STATE_NAME"

set -e # If a script exits with an error, we should as well.

# check if it's a non-empty executable file
if [ -f "$HOOKPATH" ] && [ -s "$HOOKPATH" ] && [ -x "$HOOKPATH" ]; then
    eval \"$HOOKPATH\" "$@"
elif [ -d "$HOOKPATH" ]; then
    while read file; do
        # check for null string
        if [ ! -z "$file" ]; then
          eval \"$file\" "$@"
        fi
    done <<< "$(find -L "$HOOKPATH" -maxdepth 1 -type f -executable -print;)"
fi

/etc/libvirt/hooks/qemu.d/win11/prepare/begin/start.sh

#!/bin/bash
# Helpful to read output when debugging
set -x

# load variables
source "/etc/libvirt/hooks/kvm.conf"

# Stop display manager
systemctl stop display-manager.service
# Uncomment the following line if you use GDM
killall gdm-x-session

# Unbind VTconsoles
echo 0 > /sys/class/vtconsole/vtcon0/bind
echo 0 > /sys/class/vtconsole/vtcon1/bind

# Unbind EFI-Framebuffer
echo efi-framebuffer.0 > /sys/bus/platform/drivers/efi-framebuffer/unbind

# Avoid a Race condition by waiting 2 seconds. This can be calibrated to be shorter or longer if required for your system
sleep 5

# Unload Nvidia
modprobe -r nvidia_drm
modprobe -r nvidia_modeset
modprobe -r drm_kms_helper
modprobe -r nvidia
modprobe -r i2c_nvidia_gpu
modprobe -r drm
modprobe -r nvidia_uvm

# Unbind the GPU from display driver
virsh nodedev-detach $VIRSH_GPU_VIDEO
virsh nodedev-detach $VIRSH_GPU_AUDIO

# Load VFIO Kernel Module
# not sure if these are with a - or an _ since i found both in different guides, so i tried using both
modprobe vfio
modprobe vfio-pci 
modprobe vfio_pci
modprobe vfio_iommu_type1
modprobe vfio-iommu-type1

/etc/libvirt/hooks/qemu.d/win11/release/end/revert.sh

#!/bin/bash
set -x

# Load variables
source "/etc/libvirt/hooks/kvm.conf"

# Attach GPU devices to host
# Use your GPU and HDMI Audio PCI host device
virsh nodedev-reattach $VIRSH_GPU_VIDEO
virsh nodedev-reattach $VIRSH_GPU_AUDIO

# Unload vfio module
# not sure if these are with a - or an _ since i found both in different guides, so i tried using both
modprobe -r vfio
modprobe -r vfio-pci
modprobe -r vfio_pci
modprobe -r vfio-iommu-type1
modprobe -r vfio_iommu_type1

# Load AMD kernel module
#modprobe amdgpu

# Rebind framebuffer to host
echo "efi-framebuffer.0" > /sys/bus/platform/drivers/efi-framebuffer/bind

# Load NVIDIA kernel modules
modprobe nvidia_drm
modprobe nvidia_modeset
modprobe nvidia_uvm
modprobe nvidia
modprobe drm
modprobe drm_kms_helper

# Bind VTconsoles: might not be needed
echo 1 > /sys/class/vtconsole/vtcon0/bind
echo 1 > /sys/class/vtconsole/vtcon1/bind

# Restart Display Manager
systemctl start display-manager

最后是 virt-manager 中的 XML:

<domain type="kvm">
  <name>win11</name>
  <uuid>d2bfd573-8485-43c9-88a8-957bfdfe88aa</uuid>
  <metadata>
    <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
      <libosinfo:os id="http://microsoft.com/win/11"/>
    </libosinfo:libosinfo>
  </metadata>
  <memory unit="KiB">28672000</memory>
  <currentMemory unit="KiB">28672000</currentMemory>
  <vcpu placement="static">20</vcpu>
  <os firmware="efi">
    <type arch="x86_64" machine="pc-q35-8.2">hvm</type>
    <firmware>
      <feature enabled="yes" name="enrolled-keys"/>
      <feature enabled="yes" name="secure-boot"/>
    </firmware>
    <loader readonly="yes" secure="yes" type="pflash">/usr/share/OVMF/OVMF_CODE_4M.ms.fd</loader>
    <nvram template="/usr/share/OVMF/OVMF_VARS_4M.ms.fd">/var/lib/libvirt/qemu/nvram/win11_VARS.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv mode="custom">
      <relaxed state="on"/>
      <vapic state="on"/>
      <spinlocks state="on" retries="8191"/>
      <vendor_id state="on" value="buttplug"/>
    </hyperv>
    <kvm>
      <hidden state="on"/>
    </kvm>
    <vmport state="off"/>
    <smm state="on"/>
  </features>
  <cpu mode="host-passthrough" check="none" migratable="on">
    <topology sockets="1" dies="1" cores="10" threads="2"/>
  </cpu>
  <clock offset="localtime">
    <timer name="rtc" tickpolicy="catchup"/>
    <timer name="pit" tickpolicy="delay"/>
    <timer name="hpet" present="no"/>
    <timer name="hypervclock" present="yes"/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <pm>
    <suspend-to-mem enabled="no"/>
    <suspend-to-disk enabled="no"/>
  </pm>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type="file" device="disk">
      <driver name="qemu" type="raw"/>
      <source file="/mnt/06a918ae-9833-4158-866d-f49b6587c64f/win11.img"/>
      <target dev="sda" bus="sata"/>
      <boot order="1"/>
      <address type="drive" controller="0" bus="0" target="0" unit="0"/>
    </disk>
    <disk type="file" device="cdrom">
      <driver name="qemu" type="raw"/>
      <source file="/mnt/06a918ae-9833-4158-866d-f49b6587c64f/Win11_23H2_English_x64v2.iso"/>
      <target dev="sdb" bus="sata"/>
      <readonly/>
      <boot order="2"/>
      <address type="drive" controller="0" bus="0" target="0" unit="1"/>
    </disk>
    <controller type="usb" index="0" model="qemu-xhci" ports="15">
      <address type="pci" domain="0x0000" bus="0x02" slot="0x00" function="0x0"/>
    </controller>
    <controller type="pci" index="0" model="pcie-root"/>
    <controller type="pci" index="1" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="1" port="0x10"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0" multifunction="on"/>
    </controller>
    <controller type="pci" index="2" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="2" port="0x11"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x1"/>
    </controller>
    <controller type="pci" index="3" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="3" port="0x12"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x2"/>
    </controller>
    <controller type="pci" index="4" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="4" port="0x13"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x3"/>
    </controller>
    <controller type="pci" index="5" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="5" port="0x14"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x4"/>
    </controller>
    <controller type="pci" index="6" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="6" port="0x15"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x5"/>
    </controller>
    <controller type="pci" index="7" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="7" port="0x16"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x6"/>
    </controller>
    <controller type="pci" index="8" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="8" port="0x17"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x7"/>
    </controller>
    <controller type="pci" index="9" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="9" port="0x18"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x0" multifunction="on"/>
    </controller>
    <controller type="pci" index="10" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="10" port="0x19"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x1"/>
    </controller>
    <controller type="pci" index="11" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="11" port="0x1a"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x2"/>
    </controller>
    <controller type="pci" index="12" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="12" port="0x1b"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x3"/>
    </controller>
    <controller type="pci" index="13" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="13" port="0x1c"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x4"/>
    </controller>
    <controller type="pci" index="14" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="14" port="0x1d"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x5"/>
    </controller>
    <controller type="sata" index="0">
      <address type="pci" domain="0x0000" bus="0x00" slot="0x1f" function="0x2"/>
    </controller>
    <controller type="virtio-serial" index="0">
      <address type="pci" domain="0x0000" bus="0x03" slot="0x00" function="0x0"/>
    </controller>
    <interface type="network">
      <mac address="52:54:00:c0:59:8a"/>
      <source network="default"/>
      <model type="e1000e"/>
      <address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
    </interface>
    <serial type="pty">
      <target type="isa-serial" port="0">
        <model name="isa-serial"/>
      </target>
    </serial>
    <console type="pty">
      <target type="serial" port="0"/>
    </console>
    <channel type="spicevmc">
      <target type="virtio" name="com.redhat.spice.0"/>
      <address type="virtio-serial" controller="0" bus="0" port="1"/>
    </channel>
    <input type="tablet" bus="usb">
      <address type="usb" bus="0" port="1"/>
    </input>
    <input type="mouse" bus="ps2"/>
    <input type="keyboard" bus="ps2"/>
    <tpm model="tpm-crb">
      <backend type="emulator" version="2.0"/>
    </tpm>
    <graphics type="spice" autoport="yes">
      <listen type="address"/>
      <image compression="off"/>
    </graphics>
    <sound model="ich9">
      <address type="pci" domain="0x0000" bus="0x00" slot="0x1b" function="0x0"/>
    </sound>
    <audio id="1" type="spice"/>
    <video>
      <model type="qxl" ram="65536" vram="65536" vgamem="16384" heads="1" primary="yes"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/>
    </video>
    <hostdev mode="subsystem" type="usb" managed="yes">
      <source>
        <vendor id="0x046d"/>
        <product id="0xc07d"/>
      </source>
      <address type="usb" bus="0" port="4"/>
    </hostdev>
    <hostdev mode="subsystem" type="usb" managed="yes">
      <source>
        <vendor id="0x046d"/>
        <product id="0xc33e"/>
      </source>
      <address type="usb" bus="0" port="5"/>
    </hostdev>
    <hostdev mode="subsystem" type="usb" managed="yes">
      <source>
        <vendor id="0x1397"/>
        <product id="0x0507"/>
      </source>
      <address type="usb" bus="0" port="6"/>
    </hostdev>
    <hostdev mode="subsystem" type="pci" managed="yes">
      <source>
        <address domain="0x0000" bus="0x09" slot="0x00" function="0x0"/>
      </source>
      <rom file="/usr/share/vgabios/vbios.rom"/>
      <address type="pci" domain="0x0000" bus="0x05" slot="0x00" function="0x0"/>
    </hostdev>
    <hostdev mode="subsystem" type="pci" managed="yes">
      <source>
        <address domain="0x0000" bus="0x09" slot="0x00" function="0x1"/>
      </source>
      <rom file="/usr/share/vgabios/vbios.rom"/>
      <address type="pci" domain="0x0000" bus="0x06" slot="0x00" function="0x0"/>
    </hostdev>
    <redirdev bus="usb" type="spicevmc">
      <address type="usb" bus="0" port="2"/>
    </redirdev>
    <redirdev bus="usb" type="spicevmc">
      <address type="usb" bus="0" port="3"/>
    </redirdev>
    <watchdog model="itco" action="reset"/>
    <memballoon model="virtio">
      <address type="pci" domain="0x0000" bus="0x04" slot="0x00" function="0x0"/>
    </memballoon>
  </devices>
</domain>

我希望这是发布此问题的正确地方,并且有比我更有经验的人可以帮助我找到我的问题

virtualization
  • 2 个回答
  • 100 Views
Martin Hope
SpacemanSanchez
Asked: 2024-04-10 00:12:03 +0800 CST

在不重新启动的情况下,无法根据需要正确地将 GPU 从 nvidia 绑定/取消绑定到 vfio-pci (Ubuntu 22 QEMU KVM OVMF)

  • 4

我遇到了一个奇怪的问题。我一直在努力让 GPU 直通在 Windows 11 虚拟机上正常工作,我终于找到了一些可行的方法,但它并不像我希望的那么理想。本质上,如果我在启动时将 VFIO 绑定添加到/etc/modprobe.d/vfio.conf我的 PCI id 中options vfio-pci ids=10de:2684,10de:22ba ,我就可以将它用于 GPU 直通。但是,如果我随后尝试将 GPU 重新连接到 nvidia 驱动程序,我似乎无法将其与 pytorch 一起使用(尽管nvidia-smi工作正常)。

如果我删除该 vfio.conf 文件并重新启动,GPU 会绑定到 nvidia,并且 torch 工作得很好,但是当我尝试从 nvidia 取消绑定并绑定到 vfio-pci 时,当我启动 VM 时,我在 Nvidia 驱动程序上收到错误代码 43 libvirt 日志中出现以下错误:

2024-04-09T15:38:49.796258Z qemu-system-x86_64: -device vfio-pci,host=0000:01:00.0,id=hostdev0,bus=pci.5,addr=0x0: Failed to mmap 0000:01:00.0 BAR 1. Performance may be slow
2024-04-09T15:39:07.971124Z qemu-system-x86_64: vfio_region_write(0000:01:00.0:region1+0x8c, 0x1,4) failed: Cannot allocate memory

这真的很奇怪,因为从我所有的检查来看,GPU似乎被正确隔离,但如果没有显式绑定到 vfio via ,我似乎无法将其传递到GPU /etc/modprobe.d/vfio.conf,并且当我这样做时,我似乎无法正确绑定它回到英伟达。再次,当我将其重新绑定到 nvidia 时,一切看起来都很好,但 torch 无法再检测到 GPU。有任何想法吗?

我的解决方法目前可以​​正常工作,但如果我想启动虚拟机,则需要重新启动。理想情况下,当我想在主机上使用它与在 Windows 11 虚拟机中使用它之间进行切换时,我希望能够按需绑定/取消绑定我的 nvidia GPU。绑定到 VFIO 脚本的示例:

#!/bin/bash
set -x

# Stop display manager
systemctl stop display-manager

# Unbind VTconsoles: might not be needed
echo 0 > /sys/class/vtconsole/vtcon0/bind
echo 0 > /sys/class/vtconsole/vtcon1/bind

# Unload NVIDIA kernel modules
modprobe -r nvidia_drm 
modprobe -r nvidia_modeset
modprobe -r nvidia_uvm 
modprobe -r nvidia

# Detach GPU devices from host
# Use your GPU and HDMI Audio PCI host device
sudo virsh nodedev-detach pci_0000_01_00_0
sudo virsh nodedev-detach pci_0000_01_00_1

# Load vfio module
modprobe vfio-pci

如果我跑

lspci -nnk -d 10de:2684
lspci -nnk -d 10de:22ba

它看起来正确绑定到 vfio-pci:

01:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:2684] (rev a1)
        Subsystem: Gigabyte Technology Co., Ltd Device [1458:40e5]
        Kernel driver in use: vfio-pci
        Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
01:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:22ba] (rev a1)
        Subsystem: Gigabyte Technology Co., Ltd Device [1458:40e5]
        Kernel driver in use: vfio-pci
        Kernel modules: snd_hda_intel

如果我在应用 vfio.conf 的情况下重新启动并检查内容,它看起来相同,但在启动 Windows 11 VM 时却奇怪地工作:

01:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:2684] (rev a1)
        Subsystem: Gigabyte Technology Co., Ltd Device [1458:40e5]
        Kernel driver in use: vfio-pci
        Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
01:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:22ba] (rev a1)
        Subsystem: Gigabyte Technology Co., Ltd Device [1458:40e5]
        Kernel driver in use: vfio-pci
        Kernel modules: snd_hda_intel

但如果我随后从 vfio 解除绑定并绑定到 nvidia:

#!/bin/bash
set -x

# Attach GPU devices to host
# Use your GPU and HDMI Audio PCI host device
sudo virsh nodedev-reattach pci_0000_01_00_0
sudo virsh nodedev-reattach pci_0000_01_00_1

# Unload vfio module
modprobe -r vfio-pci

#stop race condition
sleep 2

# Load NVIDIA kernel modules
modprobe nvidia
modprobe nvidia_modeset
modprobe nvidia_uvm
modprobe nvidia_drm

# Bind VTconsoles: might not be needed
echo 1 > /sys/class/vtconsole/vtcon0/bind
echo 1 > /sys/class/vtconsole/vtcon1/bind

nvidia-smi工作正常:

+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.161.07             Driver Version: 535.161.07   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 4090        Off | 00000000:01:00.0 Off |                  Off |
|  0%   49C    P0              67W / 450W |      0MiB / 24564MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+

但是当我在 Docker 中运行使用 pytorch 的东西时:

RuntimeError: Torch is not able to use GPU

更糟糕的是,当我尝试重新绑定到 vfio 时,它就像我没有启用一样vfio.conf,并且在启动 Windows 11 VM 时遇到相同的错误:

2024-04-09T16:04:45.089687Z qemu-system-x86_64: -device vfio-pci,host=0000:01:00.0,id=hostdev0,bus=pci.5,addr=0x0: Failed to mmap 0000:01:00.0 BAR 1. Performance may be slow
2024-04-09T16:04:55.682373Z qemu-system-x86_64: vfio_region_write(0000:01:00.0:region1+0x8c, 0x1,4) failed: Cannot allocate memory

我感觉很清楚,尽管某些东西正在使用 vfio-pci 内核驱动程序并lsof /dev/nvidia0返回一个空字符串,但它仍然以某种方式使用 nvidia。有任何想法吗?我在这里有点疯狂!

virtualization
  • 1 个回答
  • 29 Views
Martin Hope
Wolf
Asked: 2023-12-28 11:18:35 +0800 CST

尝试与 QEMU/KVM 上的 Windows 10 客户机共享位于连接到我的计算机的另一个硬盘驱动器中的目录

  • 5

我使用的是 Ubuntu 23.10 和虚拟机管理器 4.1.0。

当我尝试在虚拟机管理器中添加位于另一个硬盘驱动器上的目录时,出现以下错误:“启动域时出错:操作失败:无法找到令人满意的 virtiofsd”。

我该如何解决这个问题?

在此输入图像描述

virtualization
  • 1 个回答
  • 24 Views
Martin Hope
SO_32
Asked: 2023-12-19 17:21:00 +0800 CST

ubuntu 上的 Dockerized pi-hole 导致连接无法使用,这是预期的吗?

  • 6

为了在 Ubuntu 22.04.3 LTS 上的容器中使用 pi-hole,我首先下载

docker pull pihole/pihole

然后我释放一些端口

sudo systemctl disable systemd-resolved.service && sudo systemctl stop systemd-resolved.service

然后,运行它,

docker run -d --name pihole-cont -it -p 53:53/tcp -p 53:53/udp -p 67:67/udp -p 80:80 -p 443:443 -v "${DOCKER_CONFIGS}/dnsmasq.d/:/etc/dnsmasq.d/" -e ServerIP=[my IP address] --restart=unless-stopped --cap-add=NET_ADMIN --dns=127.0.0.1 --dns=1.1.1.1 pihole/pihole:latest"

当我打开浏览器并输入

http://[docker's IP address]/admin

我确实进入了 pi-hole 登录页面,即使我不知道密码(我认为这是正常的),但是连接变得无法使用。浏览互联网变得不可能,网站确实开始加载,但需要很长时间,视频不会早于至少五分钟开始,这是我的耐心范围。我也在虚拟机中成功安装了pi-hole,结果相同。我认为问题可能是一个永无休止的循环:我的计算机发出请求,它通过 DNS 服务器,DNS 服务器在我的电脑上虚拟化,因此它向我的电脑发出请求,依此类推,即使它们有不同的IP。这很相似,不同的IP,无法使用的互联网。

我的猜测是正确还是错误?难道我做错了什么?是否有可能将pi-hole容器化,以便真正可以访问互联网?

先感谢您

编辑:因此,删除--dns=127.0.0.1会发出警告

WARNING: Localhost DNS setting (--dns=127.0.0.1) may fail in containers

离开。然而,简单地禁用systemd-resolved.service无论如何都会破坏我的互联网。如果我的docker stop [pi-hole ID]互联网仍然中断,即使我systemd-resolved.service再次启用。后者给出端口冲突警告。为了恢复我的互联网连接,我清除了所有图像和容器

docker system prune -a -f --volumes

(非常激烈但很快),重新启动systemd-resolved.service,我终于可以编辑这个问题了。

所以问题似乎是我禁用了systemd-resolved.service与容器有端口冲突的。我该如何解决?

再次感谢你

virtualization
  • 1 个回答
  • 146 Views
Martin Hope
ylluminate
Asked: 2022-04-28 16:24:58 +0800 CST

在 Parallels 的 macOS Apple Silicon (M1/Pro/Max) 上安装 Ubuntu Desktop 22.04 ARM64

  • 14

目前还没有直接下载 Ubuntu Desktop 22.04 for ARM64,如何安装?

virtualization
  • 4 个回答
  • 20527 Views
Martin Hope
Geoffrey Churchill
Asked: 2022-03-06 02:42:06 +0800 CST

如何在 Ubuntu 21.10 上安装 swtpm?

  • 2

我在机器上添加了虚拟 tpm2.0 但它一直给我这个错误?我正在使用 Ubuntu 21.10。

'无法在 $PATH 中找到 'swtpm' 二进制文件:没有这样的文件或目录'


现在是说

无法在 $PATH 中找到“swtpm_setup”二进制文件,没有这样的文件或目录

我sudo apt-get install swtpm_setup在终端做了,但只是给了我这个:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package swtpm_setup

我猜我可能需要一个具有 swtpm_setup 的 PPA;我不确定,

virtualization
  • 1 个回答
  • 1641 Views
Martin Hope
WGroleau
Asked: 2021-12-01 12:24:37 +0800 CST

多通道实例的详细信息

  • 0

“不带任何参数的多通道启动命令将创建并启动一个新实例”

我不清楚这实际上发生了什么。它是否在另一台计算机 x11/ssh/rlogin/etc 上运行 Ubuntu?还是创建本地虚拟机?

实例是持久的,还是在您完成后它(及其所有数据和历史记录)不再存在?

如果远程和持久,它是否使您成为唯一的用户,还是可能有其他登录帐户?

virtualization
  • 1 个回答
  • 162 Views
Martin Hope
Aaron Franke
Asked: 2021-11-23 20:37:04 +0800 CST

如何下载适用于 ARM 的 Ubuntu 21.10 桌面版?

  • 6

对于 Ubuntu 20.04,有这个页面,其中包含 x86_64 (amd64) 和 ARM64 的 Ubuntu 桌面链接。这安装得很好,但是我在安装库时遇到了问题,所以我要尝试另一个版本。

对于 Ubuntu 21.10,我发现此页面包含服务器映像的链接和 Raspberry Pi 版本的链接,但我没有使用 Raspberry Pi,我正在寻找用于安装在通用 ARM 设备上的 ISO,例如 20.04图片。

对于 Ubuntu 22.04,我发现此页面带有预览图像,但我猜它们对于通用用途来说不是很稳定。它看起来确实像我正在寻找的东西,但 Parallels 无法启动它。

有没有办法下载 Ubuntu 21.10 Impish Indri for ARM 的桌面版本?

virtualization
  • 1 个回答
  • 3472 Views
Martin Hope
Jags
Asked: 2021-09-04 09:10:12 +0800 CST

Ubuntu MATE:如何使用 virt-manager 中的组合键进入和退出全屏视图?

  • 1

当虚拟机正在运行并且它的窗口打开时,是否有一个组合键可以在 virt-manager 中进入和退出全屏视图?

显然我可以使用鼠标进入或退出:

进入:点击View>Fullscreen

退出:将鼠标悬停在顶部中心,然后单击Leave fullscreen图标。

我已经尝试过来自 AskUbuntu 线程的组合键:如何在 virt-manager 中取消最大化全屏视图?但他们不在 Ubuntu MATE 21.04 中工作。非常感谢。

操作系统:Ubuntu 伴侣 21.04

虚拟管理器:1:3.2.0-3

virtualization
  • 1 个回答
  • 278 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