我在 Windows 7 上的 VMWare 上运行了一个 Fedora 12 客户机。我主要将它用于偶尔的 Linux 开发。每当我重新启动客户机时,网络工作正常。但是,如果我关闭 VMware 播放器并保存状态,下次启动映像时,网络将被禁用(网络图标上出现红色 x。消息说网络已禁用)。我似乎找不到恢复网络的方法。我必须重新启动客户机才能重新获得网络访问权限。我的 Ubuntu 映像没有这个问题。我可以关闭播放器,当我重新运行映像时,我可以从上次中断的地方继续,所有打开的 Firefox 窗口和应用程序窗口都和我上次中断时一样。Fedora 保存状态,但似乎没有启用网络。
我看到过一个相关警告“SELinux 正在阻止 /sbin/ifconfig 对 /var/run/vmware-active-nics 的“读取”访问。” 但我不知道如何解决它。
我知道 Fedora 并未得到 VMware 的官方支持,但除了这个小问题之外,它似乎在大多数情况下运行良好并能满足我的需求。
任何帮助将非常感激。
答案1
您是否尝试过通过网络图标“禁用”然后“启用”网络?
答案2
您是否在 Fedora VM 上安装了 vmware tools?请先安装并尝试一下。
我使用 SELinux 的经验是它给我带来的问题比它解决的问题还多。我在新机器上执行的第一步就是禁用它。
答案3
尝试setenforce 0
在保存状态之前以 root 身份运行,并setenforce 1
在恢复后运行。如果可行,请阅读Fedora SELinux 指南。
答案4
我在 CentOS 6.2 上遇到了相同或类似的问题。在 Mac OSX 10.6 主机上运行的 VMWare virt。
启动后,网络一切正常。暂停并恢复后,routed 显示无路由,ifconfig 仅显示 lo 设备,重新启动网络时,表现为没有 eth0 设备。SELinux 抱怨 ifconfig 曾尝试读取 /var/run/vmware-active-nics,但此时不存在这样的文件。
如果我重新启动,一切都很好,但该文件不存在。如果我触摸该文件,然后对该文件运行 restorecon -v,然后暂停并恢复,一切都很好……除了在重新启动或暂停并恢复后,该文件再次消失,下次我暂停并恢复时,我再次收到网络故障和 SELinux 投诉。
启动和恢复时发生的一些事情是取消链接该文件。vmware-tools-distrib 已安装。我尝试重新安装它,但没有任何影响。
在暂停之前运行 setenforce 0 似乎没有任何影响,但我仍然收到 SELinux 投诉。
我运行相同的设置时没有遇到这些问题,只是 SELinux 被禁用,并且我运行的是 Centos 5.8。
编辑-通过如下修改 SElinux 策略解决了此问题:
grep ifconfig /var/log/audit/audit.log | audit2allow -M mypol semodule -i mypol.pp
在运行 semodule 之前,我查看了生成的 mypol.te 文件:
模块 mypol 1.0;
需要{类型ifconfig_t;类型initrc_var_run_t;类文件读取;}
#============= ifconfig_t ===============
允许 ifconfig_t initrc_var_run_t:文件读取;
(有点像黑客行为,使用这个策略模块名称,但是。我想,这是一个中断修复措施,直到 vmware-tools 做得更好。如果我必须为其他事情做出政策更改,我会重新审视这个名字。)
编辑#2-毕竟没有修复,需要进行更多调整:
我本以为它能正常工作,但今天早上我恢复时,eth0 却无法启动。我编辑了 /etc/vmware-tools/resume-vm-default,并注释掉了删除 /var/run/vmware-active-nics 文件的行。这似乎一开始有帮助,但在多次暂停-恢复后,却没有帮助。或者可能是在关闭 vmware 后没有帮助。无论如何,这样做在恢复后会有所帮助,该文件仍然存在,因此我可以手动运行该脚本并查看其输出,然后我发现它说 eth0 不受 NetworkManager 管理。不确定这是怎么回事,但重新启动 NetworkManager 服务可以解决这个问题,直到我下次恢复。所以我在 resume-vm-default 中添加了一行,内容是
服务 NetworkManager 重启
现在我可以暂停 virt,完全关闭 VMWare,重新启动它,然后恢复 virt,然后 eth0 就会连接起来。