Debian Squeeze 稳定版:ifstate 文件不包含网络接口(与启动时 NFS 挂载失败有关)

Debian Squeeze 稳定版:ifstate 文件不包含网络接口(与启动时 NFS 挂载失败有关)

启动时自动 NFS 挂载不起作用。这是我的 fstab 行:

nas:/backups     /mnt/nas_backups      nfs     rw,_netdev,auto    0       0

使用mount -a它可以,但在启动时它不起作用。经过一番调查,我认为问题在于/etc/network/run/ifstate:我这样说是因为/etc/init.d/mountnfs.sh调用/etc/network/if-up.d/mountnfs,其中包含以下代码:

exit_unless_last_interface() {
    grep "^[:space:]*auto" /etc/network/interfaces  | \
   sed -e 's/[ \t]*auto[ \t]*//;s/[ \t]*$//;s/[ \t]/\n/g' | \
   while read i; do
   if [ `grep -c $i /etc/network/run/ifstate` -eq "0" ]; then
       msg="if-up.d/mountnfs[$IFACE]: waiting for interface $i before doing NFS mounts"
       log_warning_msg "$msg"
       # Can not pass this as a variable because of the while subshell
       mkdir /var/run/network/mountnfs_earlyexit 2> /dev/null
   fi
    done
    if [ -d /var/run/network/mountnfs_earlyexit ]; then
   rmdir /var/run/network/mountnfs_earlyexit 2>/dev/null
   exit 0
    fi
}

这段代码导致脚本退出,因为其中/etc/network/run/ifstate没有 eth0 接口(其唯一内容是lo=lo),尽管 eth0 接口已启动并正在运行。

您对 ifstate 不正确的原因和解决方法有什么建议吗?

更新 1:这是配置eth0(有用户说它可以解决部分问题,所以我写了它):

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#allow-hotplug eth0
#iface eth0 inet dhcp
 # The primary network interface
auto eth0
iface eth0 inet static
         address 10.0.0.11
         netmask 255.255.255.0
         post-up iptables-restore < /etc/iptables.up.rules
         gateway 10.0.0.1

更新2:这是输出/etc/init.d/networking restart

Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces ... (warning).
Reconfiguring network interfaces...SIOCADDRT: File exists
Failed to bring up eth0.
done.

重启后eth0正常运行,/etc/network/run/ifstate仍然不包含eth0

答案1

这是缺少固件的问题:网卡(NetXen NX3031)无需安装专有固件即可工作,但安装了专有固件后工作得更好(firmware-netxen非自由存储库内的软件包)。

安装完成后,重启后网络设备已正确安装。非常感谢!

答案2

也许在 fstab 挂载行中添加“bg”选项可以解决这个问题?

如果指定了 bg 选项,超时或失败会导致 mount(8) 命令派生一个子进程,该子进程继续尝试挂载导出。父进程立即返回并返回零退出代码。这称为“后台”挂载。

相关内容