我正在尝试慢慢从 Windows 切换到 Linux。所以我认为在 VM 上安装 Arch 是个好主意。自从我了解 VM 以来,我一直在使用 VirtualBox,但现在我想尝试 qemu,因为我在互联网上看到了比较,它告诉我 qemu 更快。我使用 QtEmu gui 安装了它(这样对我来说会更容易)。 这是我的虚拟机设置的图像。
现在的问题是,启动后我尝试检查是否有互联网连接ping 8.8.8.8
,ping wp.pl
但什么也没有显示。我的虚拟机是什么样的。
也许问题出在我选择的处理器类型上?我使用 Ryzen 7 2700x,首先我尝试了基础版 - 不起作用,然后尝试了 AMD Athlon - 不起作用,现在尝试了 kvm64,因为它可以工作。
有什么方法可以解决这个网络问题吗?我是新手,如果有人能向我解释为什么它不起作用,我会非常高兴。
答案1
我想尝试 qemu,因为我在互联网上看到了比较并且它显示 qemu 更快。
通过硬件虚拟化,实际上可能会不多区别。这两个程序确实模拟了不同的硬件和外围设备(例如不同的虚拟 GPU),但无论如何,“基本” CPU 虚拟化都外包给了您的物理 CPU。
但是,在您的屏幕截图中,Qemu 已设置没有硬件虚拟化——它只使用软件模拟(“微型代码生成器 (TCG)”模式)。这将是很多甚至比 VirtualBox 的 no-virt 模式还慢。
Windows 上的 Qemu 有两个硬件虚拟化选项:Intel HAXM(仅适用于 Intel CPU)或 Windows Hypervisor Platform(与 Hyper-V 使用的相同)。对于 AMD CPU,您无法使用 HAXM,因此您需要安装WHP 功能。
(HAXM 和 WHP 大致相当于 Linux 上的 KVM。)
请注意,安装 WHP(或 HAXM)还会阻止 VirtualBox 使用其自己的硬件虚拟化驱动程序。现在 VirtualBox 也可以使用 WHP,但它比原生 VirtualBox 内核驱动程序慢。(实际上,这几乎就像 VirtualBox 在使用 WHP 时故意运行得更慢一样……)
也许问题出在我选择的处理器类型上?我使用 Ryzen 7 2700x,首先我尝试了基础版 - 不起作用,然后尝试了 AMD Athlon - 不起作用,现在尝试了 kvm64,因为它可以工作。
这是非常这不太可能与网络有任何关系。
有什么方法可以解决这个网络问题吗?我是新手,如果有人能向我解释为什么它不起作用,我会非常高兴。
在确定问题之前,还有很多事情需要检查。
VM 是否检测到(虚拟)以太网卡?运行
ip link
并查找名为eth#
或 的接口en###
。如果没有,请尝试配置 Qemu 以模拟不同的卡。检查 VM 的dmesg -H
输出是否有任何错误消息可能会很有用。虚拟以太网卡连接到什么?Qemu 与 VirtualBox 一样,具有多种网络模式:它具有“SLIRP”或“用户”网络(相当于 VirtualBox 中的“NAT”),它具有“桥接”网络,并且它具有其他几种在 Windows 中可能无法使用的模式。
看一眼这一页。请注意,“用户”/SLIRP 网络模式虽然是最简单的一种,但可能根本无法使用
ping
。可能是其他一切都正常,只是您无法 ping 东西。显示的以太网卡已启用在客户操作系统中,也就是说,“ip link”
<UP>
旁边是否显示标志?内核不会自行激活网络接口;必须由程序来执行此操作。ArchISO 设置为通过“dhcpcd”自动执行此操作,但最好还是检查一下,而不是假设它“一定有效”。<LOWER_UP>
以太网卡是否认为物理链路正在工作?如果正在工作,则应显示相同的“ip link”输出,<NO_CARRIER>
否则。(当然,它是虚拟的,因此连接也是虚拟的 - 但例如 VirtualBox 有一个“假装电缆已连接”复选框...)以太网卡是否已分配 IP 地址?运行
ip addr
并查找地址以外“fe80::[...]” 一个。具体来说,您正在尝试 ping IPv4 地址,因此 VM 也需要一个 IPv4 地址。(再次强调,ArchISO 设置为通过 DHCP 自动获取地址,但不要只是假设它已经发生了。)