Автор Тема: Монтирование сетевого ресурса с помощью fstab  (Прочитано 28228 раз)

0 Пользователей и 1 Гость просматривают эту тему.

vovka

  • Global Moderator
  • Про
  • *****
  • Сообщений: 787
    • Просмотр профиля
    • www.nixzeya.ru.net
Re: Монтирование сетевого ресурса с помощью fstab
« Ответ #15 : Вторник, 22 Ноября, 2011, 12:00:54 »
В моих случаях ещё какой-то dns-резолвер регистрировался (на реальной и виртуальных машинах). Что это за процесс даже не знаю:
[   14.531423] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   21.502912] Registering the dns_resolver key type
Быть может из-за него него вся проблема. Вариантов, собственно, больше и нет... но факт остаётся фактом - строка с cifs в вашем случае не обрабатывается при загрузке системы.  ???
Предлагаю поставить Debian 6.0 на виртуалке и проэкспериментировать на ней. У меня (даже через nat в самом Virtualbox) монтирование проходит успешно на тээмповник в локалке.
*nix - свобода мысли, свобода творчества!

Vena

  • Собеседник
  • ****
  • Сообщений: 375
    • Просмотр профиля
Re: Монтирование сетевого ресурса с помощью fstab
« Ответ #16 : Вторник, 22 Ноября, 2011, 16:34:51 »
Предлагаю поставить Debian 6.0 на виртуалке
в выходные попробую поставлю и проэкспериментирую.
Сегодня подключал к серверу монитор с клавой, загрузка идёт на легенде не быстро. В процессе загрузки небыло ни одной строки, содержащей cifs :(

Вообще, изначально, это был дебиан 5. Потом его обновил я до шестого. Может что-то не обновилось? Хотя матов небыло, всё прошло гладко.
« Последнее редактирование: Вторник, 22 Ноября, 2011, 16:38:55 от Vena »

vovka

  • Global Moderator
  • Про
  • *****
  • Сообщений: 787
    • Просмотр профиля
    • www.nixzeya.ru.net
Re: Монтирование сетевого ресурса с помощью fstab
« Ответ #17 : Среда, 23 Ноября, 2011, 02:45:46 »
Сегодня подключал к серверу монитор с клавой, загрузка идёт на легенде не быстро. В процессе загрузки небыло ни одной строки, содержащей cifs :(
Правильно, максимум это сообщение "Mounting local filesystems" или что-то в этом роде.

Вообще, изначально, это был дебиан 5. Потом его обновил я до шестого.
С этого и нужно было начинать! Значит в мои эксперименты нужно внести поправку и поставить Debian 5.0, затем обновить до 6.0 и затем экспериментировать. У меня всё что есть из 6.0 - всё поставлено с нуля.
*nix - свобода мысли, свобода творчества!

Vena

  • Собеседник
  • ****
  • Сообщений: 375
    • Просмотр профиля
Re: Монтирование сетевого ресурса с помощью fstab
« Ответ #18 : Среда, 23 Ноября, 2011, 03:29:07 »
на работе в VMware стоит debian 5. Монтирование, собако, проходит автоматом :( Нифига не пойму, что за ботва с моим серваком.
PS Когда там стоял не 6 а 5 debian - были те же проблемы с автомонтированием.

vovka

  • Global Moderator
  • Про
  • *****
  • Сообщений: 787
    • Просмотр профиля
    • www.nixzeya.ru.net
Re: Монтирование сетевого ресурса с помощью fstab
« Ответ #19 : Среда, 23 Ноября, 2011, 04:29:38 »
Попробую на своей "легенде" на 100-мегабитном адаптере такое проделать - не исключён вариант что скрипт монтирования отрабатывает быстрее, чем поднимается сам адаптер.
*nix - свобода мысли, свобода творчества!

Vena

  • Собеседник
  • ****
  • Сообщений: 375
    • Просмотр профиля
Re: Монтирование сетевого ресурса с помощью fstab
« Ответ #20 : Среда, 23 Ноября, 2011, 05:54:20 »
у меня на серваке гигабитный адаптер.
Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet (rev 10) Комп - селепон 433 384метра оперативы.

vovka

  • Global Moderator
  • Про
  • *****
  • Сообщений: 787
    • Просмотр профиля
    • www.nixzeya.ru.net
Re: Монтирование сетевого ресурса с помощью fstab
« Ответ #21 : Среда, 23 Ноября, 2011, 08:47:03 »
Предварительный результаты - поднял свою Легенду с Lenny 5.0 . Там автомонтирование smbfs через fstab в процессе загрузки работает. Разобрался с процессом.
Смотрим на листинг скриптов:
Цитировать
legend:~# ls -1 /etc/rcS.d/
README
S01glibc.sh
S02hostname.sh
S02mountkernfs.sh
S03udev
S04mountdevsubfs.sh
S05bootlogd
S05keymap.sh
S06keyboard-setup
S08hwclockfirst.sh
S10checkroot.sh
S11hwclock.sh
S12mtab.sh
S18ifupdown-clean
S20module-init-tools
S30checkfs.sh
S30procps
S35mountall.sh
S36mountall-bootclean.sh
S36udev-mtab
S37mountoverflowtmp
S38pppd-dns
S39ifupdown # сеть запускается намного позже чем mountall.sh!
S40networking
S45mountnfs.sh # этот скрипт монтирует smbfs, но он работает только в паре с другим скриптом!
S46mountnfs-bootclean.sh
S48console-screen.sh
S49console-setup
S55bootmisc.sh
S55urandom
S61console-cyrillic
S70screen-cleanup
S70x11-common
S99stop-bootlogd-single

Этот другой скрипт - /etc/network/if-up.d/mountnfs - служит для асинхронного монтирования  NFS, а заодно и другие системки монтирует когда поднимается интерфейс. После инсталляции системы (было давно) этот скрипт я перенёс чтобы не мешался из каталога  /etc/network/if-up.d/ . Сегодня начал запускать, и без него smbfs (в строке fstab) действительно не монтируется при загрузке!
Сперва, при отмонтированной smbfs можно попробовать его выполнить:
# /etc/network/if-up.d/mountnfsесли  монтирование сработает - значит скрипт рабочий, но не запускается при старте интерфейса (ошибки кстати будут видны). Если монтирование не сработало - копаем в сторону скрипта.

Для сравнения - в посте файлы скриптов mountnfs с 5-ой и 6-ой версий Debian. Глобальных изменений нет:
[vovka@comp Desktop]$ diff mountnfs5.txt mountnfs6.txt
16c16
< do_start() {
---
> set_env() {
92a93
> }
93a95
> do_start() {
134a137,143
> set_env
> # Exit imediately and do not claim to wait for the last interface if
> # no network file systems are listed in /etc/fstab.
> if [ "$start_nfs" = "no" ] && [ ! "$NETFS" ] && [ ! "$NETDEV" ]; then
>   exit 0
> fi
>
« Последнее редактирование: Среда, 23 Ноября, 2011, 09:21:00 от vovka »
*nix - свобода мысли, свобода творчества!

Vena

  • Собеседник
  • ****
  • Сообщений: 375
    • Просмотр профиля
Re: Монтирование сетевого ресурса с помощью fstab
« Ответ #22 : Среда, 23 Ноября, 2011, 10:15:39 »
Сперва, при отмонтированной smbfs можно попробовать его выполнить:
# /etc/network/if-up.d/mountnfsесли  монтирование сработает - значит скрипт рабочий

 :-\
# /etc/network/if-up.d/mountnfs
 before doing NFS mountsaiting for interface lo
 before doing NFS mountsaiting for interface eth0
:( нету монтирования
в df -h пусто
« Последнее редактирование: Среда, 23 Ноября, 2011, 10:18:31 от Vena »

vovka

  • Global Moderator
  • Про
  • *****
  • Сообщений: 787
    • Просмотр профиля
    • www.nixzeya.ru.net
Re: Монтирование сетевого ресурса с помощью fstab
« Ответ #23 : Среда, 23 Ноября, 2011, 12:21:58 »
Цитировать
before doing NFS mountsaiting for interface lo
Это сообщение выводится если только в /etc/network/run/ifstate нет рабочего eth* -интерфейса в списке. При рабочей машине, что находится в этом файлике?
У меня так:
# cat /etc/network/run/ifstate
lo=lo
eth0=eth0
eth1=eth1
*nix - свобода мысли, свобода творчества!

Vena

  • Собеседник
  • ****
  • Сообщений: 375
    • Просмотр профиля
Re: Монтирование сетевого ресурса с помощью fstab
« Ответ #24 : Среда, 23 Ноября, 2011, 16:50:12 »
lo=lo                                                                                                                             
eth0=eth0   

vovka

  • Global Moderator
  • Про
  • *****
  • Сообщений: 787
    • Просмотр профиля
    • www.nixzeya.ru.net
Re: Монтирование сетевого ресурса с помощью fstab
« Ответ #25 : Четверг, 24 Ноября, 2011, 04:38:45 »
Внимательнейшим образом изучил эту строку:
before doing NFS mountsaiting for interface eth0
Значит так, часть строки,а именно: "waiting for interface $i before doing NFS mounts" (вместо $i выводится имя интерфейса) выводится через скрипт /etc/network/if-up.d/mountnfs (в Debian 6) именно так, как написано.
Почему в сообщении сначало идёт "before doing...", затем, w затирается, и после идёт "aiting for interface eth0"?
В скриптах в каталоге /etc, есть только скрипт один скрипт, в котором такое сообщение - mountnfs. Другие скрипты не могут формировать такой вывод. Ошибка похоже на синтаксическую, в скрипте  mountnfs или в обрабатываемых данных этим скриптом, иначе бы 2 части одного сообщения не поменялись местами.
Участок кода, где выводится сообщение:
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/interfaces на предмет строк с auto - именно эти интерфейсы должны стартовать автоматически при старте системы. Без allow-hotplug, кстати, интерфейс конфигурироваться не будут если в процессе работы выткнуть сетевой шнур, а затем снова его вставить. Свой файл interfaces (debian 6) отправил через личку. Если синтаксис interfaces нарушен, парсинг не сработает. Также он не сработает, если grep или sed не выполнились как надо - такое бывает между версиями Debian - разработчики иногда меняют эти утилиты, но по каким-то причинам символическая ссылка на старую версию не создалась.
« Последнее редактирование: Четверг, 24 Ноября, 2011, 04:42:00 от vovka »
*nix - свобода мысли, свобода творчества!

vovka

  • Global Moderator
  • Про
  • *****
  • Сообщений: 787
    • Просмотр профиля
    • www.nixzeya.ru.net
Re: Монтирование сетевого ресурса с помощью fstab
« Ответ #26 : Четверг, 24 Ноября, 2011, 14:03:44 »
Посмотрел на файл network - в теории, он должен нормально обрабатываться. Остаётся только 2 варианта:
1) создать скрипт монтирования в /etc/rc.local или в /etc/network/if-up.d , который бы выполнил функцию mountnfs ещё раз
2) брать и отлаживать mountnfs
*nix - свобода мысли, свобода творчества!

Vena

  • Собеседник
  • ****
  • Сообщений: 375
    • Просмотр профиля
Re: Монтирование сетевого ресурса с помощью fstab
« Ответ #27 : Четверг, 24 Ноября, 2011, 14:10:40 »
2) брать и отлаживать mountnfs
попробовать чужой, например, вместо своего подменить? Что там отлаживать?

vovka

  • Global Moderator
  • Про
  • *****
  • Сообщений: 787
    • Просмотр профиля
    • www.nixzeya.ru.net
Re: Монтирование сетевого ресурса с помощью fstab
« Ответ #28 : Четверг, 24 Ноября, 2011, 14:16:01 »
попробовать чужой, например, вместо своего подменить? Что там отлаживать?
Пробуйте  ;) Как уже говорил, проблема может быть в скрипте, в переменных (в том числе и внешних), во вспомогательных программах типа sed и grep. В этой ветке, в одном из постов выложены две версии скриптов. Их надо переименовать в канонические имя и дать права на исполнение. В отличии от виндовс, в *nix можно отладить практически всё.
*nix - свобода мысли, свобода творчества!

Vena

  • Собеседник
  • ****
  • Сообщений: 375
    • Просмотр профиля
Re: Монтирование сетевого ресурса с помощью fstab
« Ответ #29 : Четверг, 24 Ноября, 2011, 14:34:47 »
В отличии от виндовс, в *nix можно отладить практически всё.
... и даже юзера ;)