标签: qemu

如何使用 QEMU 从主机到访客 SSH?

如何使用 qemu 设置从主机到来宾的 ssh?我可以在没有任何特殊参数的情况下启动 VM 时使用端口重定向,如下所示:

/usr/bin/qemu-system-x86_64 -hda ubuntu1204 -m 512 -redir tcp:7777::8001
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用以下内容启动时:

/usr/bin/qemu-system-x86_64 \
-m 1024 \
-name vserialtest \
-hda ubuntu1204 \
-chardev socket,host=localhost,port=7777,server,nowait,id=port1-char \
-device virtio-serial \
-device virtserialport,id=port1,chardev=port1-char,name=org.fedoraproject.port.0 \
-net user,hostfwd=tcp:7777::8001
Run Code Online (Sandbox Code Playgroud)

我收到以下错误并且 VM 无法启动:

qemu-system-x86_64: -net user,hostfwd=tcp:7777::8001: invalid host
forwarding rule 'tcp:7777::8001'
qemu-system-x86_64: -net user,hostfwd=tcp:7777::8001: Device 'user'
could not be initialized
Run Code Online (Sandbox Code Playgroud)

请注意,我可以在没有-net参数的情况下启动 VM,没有任何问题,但是,我想设置从主机到来宾的 ssh。从来宾到主机的 ssh 按预期工作正常。

编辑

我试过使用

-net user,hostfwd=tcp::7777-:8001
Run Code Online (Sandbox Code Playgroud)

-net user,hostfwd=tcp::7777:8001
Run Code Online (Sandbox Code Playgroud)

但错误仍然存​​在并且虚拟机无法启动。

networking ssh qemu

51
推荐指数
3
解决办法
13万
查看次数

如何 chroot 到具有不同架构的文件系统?

我试图chroot进入的Arch LinuxARM的文件系统x86_64

我已经看到可以qemu通过将二进制文件复制到 chroot 系统来使用静态:

$ cp /usr/bin/qemu-arm archarm-chroot/usr/bin    
Run Code Online (Sandbox Code Playgroud)

但尽管如此,我总是收到以下错误:

chroot: failed to run command ‘/bin/bash’: Exec format error
Run Code Online (Sandbox Code Playgroud)

我知道这意味着架构不同。难道我做错了什么?

chroot qemu arch-arm

47
推荐指数
6
解决办法
7万
查看次数

如何从 QEMU/KVM 取回鼠标?

我正在使用以下命令在 Debian 测试 x64 上运行 QEMU/KVM:

kvm -m 1024 -hda win7.img -cdrom win7x86.iso -boot d -net user
Run Code Online (Sandbox Code Playgroud)

但是当我在虚拟机内部单击时,QEMU 会捕获我的鼠标并且不会放开它。我认为释放鼠标的组合键是Right Ctrl,但按下它时没有任何反应。我也尝试附加-usbdevice tablet-usbdevice mouse选项:

kvm -m 1024 -hda win7.img -cdrom win7x86.iso -boot d -net user -usbdevice tablet
Run Code Online (Sandbox Code Playgroud)

或者

kvm -m 1024 -hda win7.img -cdrom win7x86.iso -boot d -net user -usbdevice mouse
Run Code Online (Sandbox Code Playgroud)

但情况是一样的。我正在使用 QEMU 模拟器版本 1.7.0(Debian 1.7.0+dfsg-2)。

kvm x11 mouse qemu

46
推荐指数
1
解决办法
12万
查看次数

如何使用 QEMU (kvm) 启动 EFI 内核?

我正在尝试使用 QEMU (kmv) 模拟 EFI 环境;使用 archboot 在 EFI 模式下启动 virtualbox 需要 15 分钟。

使用传统 BIOS 模式,我可以使用以下命令启动:

root@citsnmaiko-deb:/home/maiko/uefi/ovmf# qemu-system-x86_64 -kernel  ../bzImage -initrd ../rootfs.gz -append "rw root=/dev/ram0  ramdisk_size=40960"
Run Code Online (Sandbox Code Playgroud)

它适用于我的自定义内核和文件系统。

file ../bzImage 
../bzImage: Linux kernel x86 boot executable bzImage, version 3.6.1 (root@citsnmaiko-deb) #4 , RO-rootFS, swap_dev 0x3, Normal VGA
Run Code Online (Sandbox Code Playgroud)

它也有 EFI 支持。

我正在尝试对从此处下载的 EFI 文件执行相同操作

wget http://ufpr.dl.sourceforge.net/project/edk2/OVMF/OVMF-X64-r11337-alpha.zip -P ovmf
cd ovmf/
unzip -x OVMF-X64-r11337-alpha.zip
# rename the files for QEMU find them
mv OVMF.fd bios.bin
mv CirrusLogic5446.rom vgabios-cirrus.bin
# start QEMU
root@citsnmaiko-deb:/home/maiko/uefi/ovmf# …
Run Code Online (Sandbox Code Playgroud)

ubuntu qemu linux-kernel uefi

34
推荐指数
1
解决办法
10万
查看次数

在 QEMU 中启动原始磁盘映像

我有一个来自这里的磁盘映像文件;该页面说我可以使用 QEMU 和以下命令启动此映像:

$ qemu-system-x86_64  -m 4096  -ctrl-grab  -no-reboot  x86-64.img
Run Code Online (Sandbox Code Playgroud)

这给出了一个信息:

WARNING: Image format was not specified for 'x86-64.img' and probing guessed raw.
     Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
     Specify the 'raw' format explicitly to remove the restrictions.
Run Code Online (Sandbox Code Playgroud)

模拟器加载,但 PilOS 崩溃,这意味着我做错了什么:

(可能是因为 PilOS 想写入块 0 但不能)

raw命令行参数,据我所知,这意味着这样传递:

$ qemu-system-x86_64 -drive format=raw file=x86-64.img 
qemu-system-x86_64: -drive format=raw: drive with bus=0, unit=0 (index=0) exists
Run Code Online (Sandbox Code Playgroud)

这失败了(我认为),因为我的引导设备在/dev/sda总线 0 …

virtual-machine qemu disk-image

33
推荐指数
1
解决办法
14万
查看次数

如何使用 virsh 从头开始​​创建 VM?

除非您已经有一个可用的 XML 文件,否则您似乎无法使用 virsh 创建全新的 VM。

我刚刚安装了 QEMU-KVM 工作所需的所有位,现在需要创建我的第一个 VM。

如何?

提示:我没有图形!

kvm qemu virsh

32
推荐指数
1
解决办法
7万
查看次数

QEMU Windows 客户机和 Linux 主机之间的共享文件夹

过去我使用过 Virtual Box,它非常支持与 Windows 来宾共享主机上的文件夹。我正在为 QEMU 寻找类似的功能。

该文档建议公开运行在网络某处的 Samba 服务器,或使用-net user,smb=/path/to/folder来启动 samba 服务器。

-net user,smb对 QEMU的选择不走运。它所做的只是启动smbd(由于端口冲突,它与本地运行的另一个服务冲突)。可以说,这是无法使用的,尤其是考虑到多个客人时。(对于Linux,-virtfs(Plan 9)可用于轻松共享文件夹。)

Samba 的其他问题是它不仅限于文件夹共享,它还可以共享打印机、用户映射等等。我所需要的只是与 Windows 来宾共享一个(或多个?)文件夹。

是否存在适用于 Windows 客户机的 QEMU 的替代文件夹共享方法?

或者有没有办法配置 Samba 以将其自身限制为一组非常有限的功能并将其集成到 QEMU 中?这应该:

  • 并非网络中的每个人都应该能够访问该文件夹。
  • 包括本地用户(如果可行)。
  • 不提供其他功能(打印机共享)。
  • 用例:将一个git目录暴露给Windows,在Windows中编译并使用Linux进行分析。
  • 有一个可接受的速度,Windows 使用 virtio-scsi 和 virtio-net。
  • 能够与 Windows 7 来宾共享来自 Linux 主机的文件夹。

file-sharing samba windows qemu

31
推荐指数
2
解决办法
8万
查看次数

如何使用 qemu-kvm 从 liveusb 启动?

我正在尝试让 qemu-kvm 从我的实时 USB 记忆棒启动。这可能吗?

boot usb-drive qemu

30
推荐指数
3
解决办法
9万
查看次数

使用 qemu-kvm 模拟拔掉网线

[背景:我想实际测试如何在未连接时关闭静态网络接口?]

我正在使用 libvirt(通过virt-manager)设置 QEMU-KVM 虚拟机。我在上面放了两个网卡(都是 virtio)。它们桥接到主机上的物理 NIC。

我想测试当我“拔掉”一个 NetworkManager 时它会做什么。但是在 virt-manager 中没有按钮/复选框,也没有快速的谷歌搜索出现任何东西。

如何模拟拔掉网线?

networking kvm qemu virtualization libvirt

23
推荐指数
1
解决办法
1万
查看次数

KVM、QEMU 和 libvirt 之间有什么区别?

我试图了解 VM 生态系统的所有组件是如何组合在一起的。

有什么区别:

  • KVM
  • 动车组
  • 虚拟机

哪个由virsh和控制virt-install

这个评论说 libvirt 是 QEMU 之上的抽象,QEMU 是 KVM 之上的抽象。然而官方的 QEMU 文档说 QEMU 是一个处理器模拟器,这听起来像是最低级别的组件。

kvm qemu virsh libvirt

23
推荐指数
1
解决办法
1万
查看次数