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
    • 最新
    • 标签
主页 / unix / 问题

问题[qemu](unix)

Martin Hope
elbarna
Asked: 2025-03-31 04:33:53 +0800 CST

是否可以调整 qemu/libvirt 映像的大小并保持虚拟大小同时不丢失数据?

  • 5

是否可以调整 qemu/libvirt 映像的大小,同时保持虚拟大小,并且不丢失数据?我解释得更好:

当您创建虚拟磁盘时

qemu-img create -f qcow2 debian-GEN.qcow2 60G

虚拟机看到60G的磁盘,但是使用的空间是虚拟机已经使用过的空间(此例子是在安装了一些软件之后)

qemu-img info debian-GEN.qcow2 
image: debian-GEN.qcow2
file format: qcow2
virtual size: 60 GiB (64424509440 bytes)
disk size: 3.1 GiB
cluster_size: 65536
Format specific information:
    compat: 1.1
    compression type: zlib
    lazy refcounts: false
    refcount bits: 16
    corrupt: false
    extended l2: false
Child node '/file':
    filename: debian-GEN.qcow2
    protocol type: file
    file length: 4.61 GiB (4948164608 bytes)
    disk size: 3.1 GiB

现在问题来了。假设我写入了 20GB 的额外数据,磁盘大小变为 23GB(3.1+20),假设我删除了 20GB 的数据(使用 rm -fr 甚至 shred),磁盘大小仍然是 23GB!我的问题是:有没有办法从虚拟磁盘中删除 20GB 未使用的数据?那么镜像返回 3.1GB(但虚拟机仍然看到 60GB 空间)?

qemu
  • 1 个回答
  • 10 Views
Martin Hope
ajgringo619
Asked: 2024-11-18 10:56:47 +0800 CST

切换网络后无法设置 NFS 权限

  • 5

(EndeavourOS 主机,运行 nfsv4-server.service)

我有一个 QEMU/KVM VM 网络,我正尝试将其切换到 VMware。在大多数情况下,这是一个简单的过程,即使不是很耗时。我唯一真正遇到的问题是 NFSv4 共享权限。

以下是我/etc/exports在 QEMU 设置中的工作:

/media/host/shared-files      192.168.122.0/24(rw,sync,insecure,no_root_squash,no_subtree_check,crossmnt,fsid=0)

当我切换到 VMware 时,NAT 网络更改为 172.16.105.0,因此我认为只需在 中进行该更改/etc/exports,然后重新导出,就可以了。但是,我唯一能让它工作的方式是删除 IP 网络/子网掩码限制。

这不是防火墙问题,因为我可以从来宾那里正常查看/使用共享。我对 TCP/IP 网络的了解并不如自己想象的那么熟练,所以我不确定这里的问题是什么。

有什么想法吗?

qemu
  • 1 个回答
  • 18 Views
Martin Hope
mathbekunkus
Asked: 2024-09-22 06:41:20 +0800 CST

使用 qemu-system-x86_64 运行通过 virt-manager 创建的 qcow2 映像

  • 5

我的 qemu 版本是QEMU emulator version 9.0.2 (Debian 1:9.0.2+ds-2+b1)。

我使用 创建了一个 FreeBSD 14 VM virt-manager。它的驱动器是一个 qcow2 映像:

-rwxr-xr-x 1 libvirt-qemu libvirt-qemu 8.1G 20240916 20:26:09.201 bsdie.qcow2

我是相应群组的成员:

groups
localuser cdrom floppy sudo audio dip video plugdev kvm netdev bluetooth scanner lpadmin libvirt libvirt-qemu

但是,当我尝试使用 CLI 运行此机器时出现权限错误:

qemu-system-x86_64 -cpu host -enable-kvm -m 1G -drive file=bsdie.qcow2  -net nic,vlan=0,macaddr=52:54:00:81:b6:cc -net user 
qemu-system-x86_64: -drive file=bsdie.qcow2: Could not open 'bsdie.qcow2': Permission denied

我错过了什么?

更一般地说,我想知道是否有一种方法可以通过virt-manager使用 Qemu cmd.line 来运行定义的机器;由于可以在中找到 XML 配置文件/etc/libvirt/qemu,我想知道是否有一种方法可以将 XML 参数“翻译”为 Qemu 命令行参数。

谢谢!

qemu
  • 1 个回答
  • 12 Views
Martin Hope
twowheeler
Asked: 2024-08-26 20:14:43 +0800 CST

QEMU VM 装入盒子

  • 5

我是一名长期使用 Linux 的用户(ubuntu-budgie 24.04),最近在尝试使用虚拟机。我按照此方法创建了一个运行 GhostBSD 24.04.2 的 QEMU 虚拟机。使用 qemu-system-x86_64 在命令行中运行效果很好。如何让这个虚拟机显示在 gnome-boxes 中?

qemu
  • 1 个回答
  • 10 Views
Martin Hope
Folaht
Asked: 2024-08-02 17:50:04 +0800 CST

主机:Manjaro,客户机:Artix Linux,问题:虚拟机上没有 virtio 互联网/NAT 连接

  • 5

正如标题所述,无论出于什么原因,我的虚拟机都无法再连接到主机/互联网。e1000e
连接确实有效。
那么问题似乎出在 virtio 上?

在主机上:

知识产权

...
4: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 52:54:00:8c:9c:74 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
9: vnet4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master virbr0 state UNKNOWN group default qlen 1000
    link/ether fe:54:00:8d:cd:66 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fe8d:cd66/64 scope link proto kernel_ll 
       valid_lft forever preferred_lft forever

sudo virsh net-dumpxml 默认值

<network connections='1'>
  <name>default</name>
  <uuid>b728bff2-6215-4472-8d38-a5a797d328aa</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:8c:9c:74'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>

关于客人:

xml 中的 virt-manager 连接配置

<network connections="1">
  <name>default</name>
  <uuid>b728bff2-6215-4472-8d38-a5a797d328aa</uuid>
  <forward mode="nat">
    <nat>
      <port start="1024" end="65535"/>
    </nat>
  </forward>
  <bridge name="virbr0" stp="on" delay="0"/>
  <mac address="52:54:00:8c:9c:74"/>
  <ip address="192.168.122.1" netmask="255.255.255.0">
    <dhcp>
      <range start="192.168.122.2" end="192.168.122.254"/>
    </dhcp>
  </ip>
</network>

知识产权 在此处输入图片描述

网络设备

<interface type="network">
  <mac address="52:54:00:8d:cd:66"/>
  <source network="default" portid="94cebc1a-2b7b-41ba-91a4-22958fe3aef4" bridge="virbr0"/>
  <target dev="vnet4"/>
  <model type="virtio"/>
  <alias name="net0"/>
  <address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
</interface>
qemu
  • 2 个回答
  • 33 Views
Martin Hope
Binarus
Asked: 2023-08-03 06:13:13 +0800 CST

这两个 blockdev 声明有什么区别?

  • 5

在 Debian bullseye 中,我通过命令行使用 QEMU / KVM 启动虚拟机(即,没有virsh或其他帮助器 / 包装器)。其中一个虚拟机从声明如下的块设备启动:

-blockdev driver=file,node-name=q1,filename=/dev/loop0 \

就在今天,我无意中注意到 QEMU 在启动该 VM 时发出以下警告:

Opening a block device as a file using the 'file' driver is deprecated

一些研究表明这个警告是已知的,并且有解决方案,例如@Stephen Kitt在这里接受的答案提出了以下blockdev声明:

-blockdev node-name=q1,driver=raw,file.driver=host_device,file.filename=/dev/loop0 \

这个解决方案无疑是有效的,但我找不到任何有关file.driver=host_device. 因此,我测试了一些其他选项,并得出了以下似乎也有效的解决方案:

-blockdev driver=host_device,node-name=q1,filename=/dev/loop0 \

有人可以简单解释一下这两个声明之间的区别吗?值得注意的是,其中一个在延迟或吞吐量方面是否会优于另一个?

作为一个额外的问题,有人知道文档在哪里吗host_device?在上面链接的其他问题/答案中,有一个指向可能实现该驱动程序的提交的链接。但是,我也找不到该链接背后的任何文档。

qemu
  • 1 个回答
  • 21 Views
Martin Hope
R-Rothrock
Asked: 2023-07-13 03:55:43 +0800 CST

qemu-aarch64:无法打开“/lib/ld-linux-aarch64.so.1”:没有这样的文件或目录

  • 5

我确信这是一个愚蠢的问题,但我是 QEMU 的新手,所以请耐心等待。

└──╼ $ qemu-aarch64 ./a.out
qemu-aarch64: Could not open '/lib/ld-linux-aarch64.so.1': No such file or directory

我假设我只是未能安装某些东西,但我似乎无法弄清楚,所以可能会解决这个问题,所以我在这里。

提前致谢。

操作系统:Linux ParrotOS Arch:x86-64

qemu
  • 1 个回答
  • 34 Views
Martin Hope
po.pe
Asked: 2023-02-09 00:34:07 +0800 CST

Yocto QEMU 手臂图像

  • 6

我已经为树莓派模型 3 构建了一个 yocto 图像,我想在 Qemu 中运行它。构建过程运行core-image-minimal良好,如果我为机器构建它raspberry3-64而不是将qemuarm图像闪存到 SD 卡,我可以按预期启动到控制台。

build git:(dunfell) bitbake core-image-base   
WARNING: Host distribution "ubuntu-22.04" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
Loading cache: 100% |############################################| Time: 0:00:01
Loaded 3298 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION           = "1.46.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "arm-poky-linux-gnueab"
MACHINE              = "qemux86-64"
DISTRO               = "poky"
DISTRO_VERSION       = "3.1.22"
TUNE_FEATURES        = "arm armv7ve vfp thumb neon callconvention-hard"
TARGET_FPU           = "hard"
meta                 
meta-poky            
meta-yocto-bsp       = "dunfell:6b8a307b7843af23d189d7ffcecf32c05afac850"
meta-oe              
meta-python          
meta-multimedia      
meta-networking      = "dunfell:e707e9b7cf5c62bff4fee029965a87b22dd4ccba"
meta-raspberrypi     = "dunfell:2081e1bb9a44025db7297bfd5d024977d42191ed"

Initialising tasks: 100% |#######################################| Time: 0:00:02
Checking sstate mirror object availability: 100% |###############| Time: 0:04:40
Sstate summary: Wanted 836 Found 7 Missed 829 Current 355 (0% match, 30% complete)
NOTE: Executing Tasks
NOTE: Tasks Summary: Attempted 3162 tasks of which 1267 didn't need to be rerun and all succeeded.

Summary: There was 1 WARNING message shown.

但是当我尝试在 qemu 中运行这个图像时,它似乎不起作用......

➜  build git:(dunfell) runqemu core-image-base
runqemu - INFO - Running bitbake -e ...
runqemu - INFO - Continuing with the following parameters:
KERNEL: [/home/wtech/Workspace/rpi-yocto/poky-dunfell/build/tmp/deploy/images/qemuarm/bzImage]
MACHINE: [qemuarm]
FSTYPE: [ext4]
ROOTFS: [/home/wtech/Workspace/rpi-yocto/poky-dunfell/build/tmp/deploy/images/qemuarm/core-image-base-qemuarm.ext4]
CONFFILE: [/home/wtech/Workspace/rpi-yocto/poky-dunfell/build/tmp/deploy/images/qemuarm/core-image-base-qemuarm.qemuboot.conf]

runqemu - INFO - Setting up tap interface under sudo
[sudo] password for wtech: 
runqemu - INFO - Network configuration: ip=192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running /home/wtech/Workspace/rpi-yocto/poky-dunfell/build/tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin/qemu-system-arm -device virtio-net-device,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive id=disk0,file=/home/wtech/Workspace/rpi-yocto/poky-dunfell/build/tmp/deploy/images/qemuarm/core-image-base-qemuarm.ext4,if=none,format=raw -device virtio-blk-device,drive=disk0 -show-cursor -device VGA,edid=on -device qemu-xhci -device usb-tablet -device usb-kbd -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0  -machine virt,highmem=off -cpu cortex-a15 -m 256 -serial mon:vc -serial null -kernel /home/wtech/Workspace/rpi-yocto/poky-dunfell/build/tmp/deploy/images/qemuarm/zImage -append 'root=/dev/vda rw  mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 console=ttyAMA0 '

之后没有任何进展。我也尝试过构建,qemux86_64但结果是一样的。为了能够使用 qemu 模拟图像,我必须更改什么,这样我就不必为每次更改都刷新 SD 卡?

我的主机系统是虚拟化的 (VirtualBox) Ubutu 22.04

ps -la更新:如果它添加任何信息,这是挂起时的输出runqemu。

~ ps -la
F S   UID     PID    PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000    1097    1091  0  80   0 - 57920 do_pol tty2     00:00:00 gnome-session-b
0 S  1000    2338    1811  0  80   0 -  8634 do_wai pts/0    00:00:00 python3
2 R  1000    2399    2338 89  80   0 - 311794 -     pts/0    00:00:09 qemu-system-arm 
0 R  1000    2434    2081  0  80   0 -  5331 -      pts/1    00:00:00 ps

更新:

万一有人尝试过同样的事情。我无法在 yoctorunqemu环境中运行它。最终起作用的是手动安装qemu-system-aarch64并运行构建

qemu-system-aarch64 \
-M virt -cpu cortex-a57 \
-kernel tmp/deploy/images/qemuarm64/Image--5.4.228+gitAUTOINC+b00c12ce7a_2bd8ca7c09-r0-qemuarm64-20230208202924.bin \
-append "root=/dev/vda rw mem=512M earlyprintk console=ttyAMA0,115200" \
-drive id=disk0,file=tmp/deploy/images/qemuarm64/core-image-base-qemuarm64-20230215193657.rootfs.ext4,format=raw,if=none \
-smp 4 \ 
-device virtio-blk-device,drive=disk0 -device qemu-xhci \
-serial mon:vc -serial null \
-display sdl,gl=on \
-device virtio-rng-pci,rng=rng0 \
-object rng-random,filename=/dev/urandom,id=rng0
qemu
  • 1 个回答
  • 54 Views
Martin Hope
netrunner
Asked: 2022-07-03 00:19:00 +0800 CST

如何桥接运行 dhcp 服务器的以太网接口

  • 0

工作站具有eth0作为 dhcp 服务器运行的接口,具有以下设置

auto eth0
  iface eth0 inet static
  network 10.0.0.0
  address 10.0.0.1
  netmask 255.0.0.0
  gateway 10.0.0.1
  broadcast 0.255.255.255

/etc/dhcp/dhcpd.conf

default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;

  
subnet 10.0.0.0 netmask 255.0.0.0 {
    range 10.0.0.1 10.0.0.254;
    option time-servers 10.0.0.1;
    option broadcast-address 10.255.255.255;
    default-lease-time 600;
    max-lease-time 7200;
}

是否可以在不更改任何 DHCP 配置设置的情况下创建网桥,eth0以便在 QEMU 中创建的任何机器都在 DHCP 服务器给出的定义的 NIC 上分配一个 IP 地址

工作站连接到交换机,其他机器也连接到交换机,目标是能够通过使用 ip 地址从网络上的其他机器访问 vm10.0.0.X

qemu isc-dhcpd
  • 2 个回答
  • 231 Views
Martin Hope
Yetoo
Asked: 2022-06-27 04:01:54 +0800 CST

如何使用 virt-manager 模拟 usb-mtp 设备?

  • 0

我正在尝试使用 virt-manager 模拟 mtp 设备。我在https://qemu-project.gitlab.io/qemu/system/devices/usb.html看到 usb-mtp,rootdir=dir 与 -device usb-mtp,rootdir=dir 一样可用于执行此操作qem 如何配置 virt-manager 来执行此操作(欢迎自定义 xml)?

qemu configuration
  • 1 个回答
  • 35 Views

Sidebar

Stats

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

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve