Назад | Перейти на главную страницу

Debian Squeeze stable: файл 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 работает.

У вас есть предложения о причинах неправильного состояния и способах устранения?

ОБНОВЛЕНИЕ 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.

Проблема заключалась в отсутствии прошивки: сетевая карта (NetXen NX3031) работает без установки проприетарной прошивки, но с ней работает лучше (firmware-netxen пакет внутри несвободных репозиториев).

После установки при перезагрузке сетевые устройства были смонтированы правильно. Большое тебе спасибо!

Может быть, добавление опции "bg" в строку монтирования fstab поможет обойти это?

Если указана опция bg, тайм-аут или сбой заставляют команду mount (8) разветвлять> потомок, который продолжает попытки смонтировать экспорт. Родитель немедленно возвращается с> нулевым кодом выхода. Это называется «фоновым» креплением.