colinux 新版(0.7.3以后)无法启动网络的问题

今天更新了CoLinux 为最新的稳定版0.7.5,在启动原先0.7.3建立的debian镜像文件时,出现

colinux:~# /etc/init.d/networking restart
>> Reconfiguring network interfaces…SIOCSIFADDR: No such device
>> eth0: ERROR while getting interface flags: No such device
>> SIOCSIFNETMASK: No such device
>> eth0: ERROR while getting interface flags: No such device
>> Failed to bring up eth0.

启动时也有相应的信息。

不管eth0是设置了什么网络,Slirp,tap,pcap或者ndis,都是一样的。

原因:

The problem is: Debian is *trying* to be smart.
Every time CoLinux starts up, it automatically generates a new MAC address
for each adapter, seen here in your log:
configured TAP at ” device as eth0
MAC address: auto generated
configured PCAP bridge at ” device as eth1
MAC address: auto generated
configured Slirp as eth2
MAC address: auto generated
Every time a new MAC address is generated, debian will rename your ethX
device.
Set a MAC address for each adapter in your CoLinux config file and clear
out debian’s previous failed network connections.

 

就是说,debian的智能化处理,每次启动时,为每个网卡自动生成一个新的mac地址,而debian就重新生成一个ethx的设备。

而udev系统有个规则,保存在"/etc/udev/rules.d/z25_persistent-net.rules",只允许里面记录的mac地址的网卡生成。所以导致了失败。

 

解决办法:

步骤1.

在CoLinux的配置文件里面,为网卡指定mac地址,即像:

eth0=pcap-bridge,"本地连接",0A:C0:71:65:08:00

其中,使用的是pcap,也可以使用ndis,不需另外安装驱动,其他同pcap一样。

步骤2.

清空"/etc/udev/rules.d/z25_persistent-net.rules"文件的内容。

然后,重启,就可以了。

ps:

经测试,在colinux0.7.5中,步骤1是多余的。

一般,清空上述的udev规则文件,让其重新生成,应该就可以了。

 

参考:Re: No network anmore?: msg#00005 linux.colinux.devel

http://sourceforge.net/tracker/?func=detail&aid=1861876&group_id=98788&atid=622063

colinux 新版(0.7.3以后)无法启动网络的问题》上有11个想法

  1. 你好,我安装了colinux之后,配置好网络,但是在colinux里无法连接主机,主机确能连接colinux,请问有没有遇到过这种问题?

    你能把你的虚拟网卡配置以及colinux里边的配置发出来看看吗?谢了!

    • 配置文件里面,网络配置就一句话,后面的“本地连接2”,是Windows连接名字

      eth0=ndis-bridge,”本地连接2″

      另外CoLinux里面,安装的是debian,配置了eth0从dhcp自动获取ip
      在/etc/network/interface

      # The primary network interface (slirp)
      auto eth0
      iface eth0 inet dhcp

      其中,pcap和ndis的bridge模式,虚拟机是当成独立主机的,就是说里面的ip设置,要跟你的Windows主机类似。

      • bridge是不是需要共享主机网卡?
        我使用的是tuntap,现在windows主机可以ping虚拟机,虚拟机不能ping通主机。
        不知道tuntap是不是有什么特殊设置。

        • 兄弟,请教一下。
          我主机设置:192.168.1.123,255.255.255.0,192.168.1.3,dns:61.139.2.69
          虚拟网卡:192.168.0.1,255.255.255.0,网关为空,dns:61.139.2.69
          colinux里边设置:eth0 static,192.168.0.40,255.255.255.0,网关:192.168.0.1.
          局域网路由器的地址是192.168.1.3
          现在的症状是主机可以ping虚拟机,虚拟机也能ping主机,但是不能ping到网关:192.168.1.3,自然也上不了外网。
          不知道是哪儿设置错了。

          • 看你的网络配置,如果要那样设置的话,好像要设置网络共享才行。其实呢,我建议,就是使用ndis-bridge桥接模式,这样的话,Windows主机这边都不用做其他的设置,虚拟机里面设置跟Windows主机同一个网段。就是说,你的CoLinux设置为ndis-bridge,

            colinux里边设置:eth0 static,192.168.1.40,255.255.255.0,网关:192.168.1.3

            另外:有可能dhcp每次都从路由器获取dns,导致dns还原,可考虑在路由里面设置dns。

        • ndis-bridge是不是这样设置:eth0=ndis-bridge,’colinux’

          里面的‘CoLinux’应该填写的是你的Windows本地连接名字,一般是“本地连接”之类的。
          用ndis-bridge,是不需要虚拟网卡的。
          如果你本地没有dhcp,那么CoLinux里面,就要用固定ip了

  2. 还有一个问题,我如果在colinux里边设置为dhcp,那么dns每次重启网络之后会被还原。这个似乎是debian的问题

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据