Hyper-V 无法通过 Get-vm -ExpandProperty NetworkAdapters 从 powershell 提供 Ubuntu Guest 的 IP

Hyper-V 无法通过 Get-vm -ExpandProperty NetworkAdapters 从 powershell 提供 Ubuntu Guest 的 IP

在 Windows 10 Pro PC(Win10ProPC#1)中,我有一个 Ubuntu 18.04.02 LTS VM,创建于很久以前。从那时起,我也一直在使用以下命令作为脚本的一部分。因此,在 Win10ProPC#1 中运行以下命令

Get-vm -Name Ubuntu18.04.2LTS | Select -ExpandProperty NetworkAdapters

返回

VMName           IPAddresses
------           ----------- 
Ubuntu18.04.2LTS {172.17.199.244, ffff::ffff:ffff:ffff:ffff}

我最近在另一台具有类似规格的 PC 上重新创建了相同的环境(Win10ProPC#2)。有一个小变化,Ubuntu VM 现在是 Ubuntu18.04.3LTS。但是在 Win10ProPC#2 中运行以下命令

Get-vm -Name Ubuntu18.04.3LTS | Select -ExpandProperty NetworkAdapters

返回

VMName           IPAddresses
------           ----------- 
Ubuntu18.04.3LTS {}

在这两种情况下,虚拟机 (Guest) 都可以访问互联网,我可以从客户操作系统内部找到 IP 地址。 (虽然这证实了有一个 IP,但这不是我想要的。我需要从上面的命令中获取 IP。)

问题是 Win10ProPC#2 中的网络适配器中没有报告 IP 地址,而 Win10ProPC#1 中有一些。我需要让 Win10ProPC#2 能够获取虚拟机的 IP 地址。

两台计算机均使用最新的 Windows 10 Pro 版本(64 位)。此外,两台虚拟机均具有动态 IP 并使用“默认交换机”网络配置。在两种情况下,脚本均由 Powershell“以管理员身份”运行。

我担心我遗漏了某个设置或配置,但我已经仔细检查了 HyperV 的所有设置,发现它们完全相同。有什么想法吗?

答案1

要充分利用 Hyper-V,请安装适当的 linux-tools 和 linux-cloud-tools 包来安装可与您的 Ubuntu 虚拟机一起使用的工具和守护程序。

sudo apt-get update 
sudo apt-get install linux-image-virtual linux-tools-virtual linux-cloud-tools-virtual
sudo reboot now

负责hv-kvp-daemon将 IP 信息从客户机共享给虚拟机管理程序,因此请确保它正在运行

sudo systemctl status hv-kvp-daemon

本文提供有关检查 状态的信息hv-kvp-daemon。尝试确定 是否hv-kvp-daemon正在运行。有可能 已linux-image-virtual linux-tools-virtual linux-cloud-tools-virtual安装但服务未处于活动状态。例如,当尝试启动 时,hv-kvp-daemon我收到以下响应。

ubuntu@LinuxVM:~$ sudo hv_kvp_daemon
WARNING: hv_kvp_daemon not found for kernel 5.0.0-36

  You may need to install the following packages for this specific kernel:
    linux-tools-5.0.0-36-generic
    linux-cloud-tools-5.0.0-36-generic

  You may also want to install one of the following packages to keep up to date:
    linux-tools-generic
    linux-cloud-tools-generic

安装正确的版本解决了我的问题。

$ sudo apt-get install linux-tools-5.0.0-36-generic linux-cloud-tools-5.0.0-36-generic linux-tools-generic linux-cloud-tools-generic

之后就可以hv_kvp_daemon按如下方式启动。

sudo hv_kvp_daemon

之后可以从 powershell 中获取 IP。

相关内容