我是 Linux 和 Ubuntu 的新手,过去 20 年来主要从事 Windows 开发。但是,我们一直在使用托管在 Ubuntu VM 上的 Redmine 来管理我们的开发工单。该 VM 由另一家公司托管,但最近我公司决定在内部接管 VM 的托管。
我想我们会在 Microsoft Azure 中托管虚拟机,所以我要求公司将他们的虚拟机导出为 VHD 文件,他们照做了。显然,它以前是 Citrix VM。
现在我有了 VHD,我能够在本地计算机上创建一个新的 Hyper-V VM 并将 VHD 附加到它。我可以启动机器并使用 Hyper-V 虚拟机连接应用程序登录到 Ubuntu。但是,一旦我这样做,我就无法访问网络(本地或互联网)。从我对 Linux 的了解来看,似乎 VM 无法识别网络硬件。
当我ifconfig
在盒子上执行此操作时,我得到以下信息:
# ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:225.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric: 1
RX packets:284 errors:0 dropped:0 overruns:0 frame:0
TX packets:284 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:108001 (108.0 KB) TX bytes:108001 (108.0 KB)
(如果有任何拼写错误,请原谅。从 VM 复制粘贴不起作用,所以我不得不手动输入)。
当我这样做时,lshw -class network
我没有得到任何结果。
当我这样做时,netstat -i
我得到以下信息:
Kernel Interface table
IFace MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
lo 16436 0 409 0 0 0 409 0 0 LRU
(再次对任何错别字表示歉意)。
所以在我看来,系统甚至看不到网络硬件。我已将虚拟机设置为使用与我的 Wifi 适配器关联的虚拟交换机。此设置适用于同一台计算机上的 Windows 虚拟机。
为了确保问题不是与 Ubuntu 不兼容,我创建了一个新的空白虚拟机,具有相同的硬件设置和一个空硬盘,并使用下载的 ISO 全新安装了 Ubuntu。在这台全新的 Ubuntu 机器上,网络和互联网访问正常。当我lshw -class network
在新机器上执行此操作时,我得到以下信息:
*-network
description: Ethernet interface
physical id: 1
logical name: eth0
serial: 00:15:5d:00:66:17
capabilities: ethernet physical
configuration: broadcast=yes driver=hv_netvsc firmware=N/A ip=172.17.0.253 link=yes multicast=yes
因此,我为虚拟机设置的 Wifi 虚拟交换机可以正常工作,至少在 Ubuntu 中可以正常工作。我需要弄清楚如何让我以前的 Citrix 虚拟机识别网络硬件。这两个操作系统之间存在版本差异。无网络虚拟机是 Ubuntu 10.04.4。在我的网络上运行的全新安装是 Ubuntu 14.04.1。
下面是 Hyper-V 管理器针对未连接的 Ubuntu 10.04.4 VM 的 VM 设置的屏幕截图。
我不知道该怎么做才能解决这个问题。非常感谢大家的帮助。谢谢。