У меня есть запись в /etc/fstab для монтирования общего ресурса Windows

//192.168.178.4/files   /media/share/d   cifs   credentials=/home/arnold/.credentials,rw,dir_mode=0777,file_mode=0777   0 0

это не смонтировано во время загрузки / входа в систему. Когда я вхожу в систему, я вижу, что общий ресурс не смонтирован, после sudo mount -a это так. На мятных форумах предполагалось, что сеть не работает. Создание сценария в /etc/network/if-up.d/fstab (или другом имени) решит проблему. На самом деле, этот каталог предназначен для таких скриптов. Отличное предложение. Я создал скрипт, но, увы, он не сработал. Я добавил несколько операторов логирования, и скрипт выглядит так:

#!/bin/sh
date +"%m/%d/%Y %H:%M:%S $HOSTNAME fstab before mounting" >>/var/log/fstab.log
#mount -av >>/var/log/fstab.log
date +"%m/%d/%Y %H:%M:%S $HOSTNAME fstab mount executed" >>/var/log/fstab.log
echo " " >>/var/log/fstab.log

Сценарий исполняемый, а владелец - root. Когда я выполняю скрипт после входа в систему, ресурс правильно монтируется. Я удостоверился, что файл журнала был пуст и скопировал его сразу после входа в систему, где он читает:

01/03/2017 09:55:45  before mounting
/                        : ignored
/data                    : already mounted
/home                    : already mounted
none                     : ignored
01/03/2017 09:55:45  mount executed

01/03/2017 09:55:45  before mounting
/                        : ignored
/data                    : already mounted
/home                    : already mounted
none                     : ignored
01/03/2017 09:55:45  mount executed

01/03/2017 09:55:51  before mounting
/                        : ignored
/data                    : already mounted
/home                    : already mounted
none                     : ignored
01/03/2017 09:55:51  mount executed

Он выполняется три раза (по одному разу для каждого сетевого интерфейса?). При следующем запуске sudo mount -av я получаю:

/                        : ignored
/data                    : already mounted
/home                    : already mounted
none                     : ignored
/media/share/d           : successfully mounted

Как вы можете видеть, сравнивая эти два журнала, никакая (видимая) попытка не была сделана при монтировании сетевого ресурса во время загрузки.

Я получил много отличных предложений об обходных путях на форумах Linux, но никто не ответил на вопрос, почему скрипт в if-up.d ведет себя так странно, и у меня нет решения, которое дает мне смонтированный общий ресурс из терминала (он доступен хотя через браузер файлов). У меня есть следующие вопросы:

  • является if-up.d местом для установки общего файлового ресурса?
  • если это так, что может быть причиной того, что она не работает в моей системе (что я делаю неправильно?)
  • если нет, то каково обычное место для катания на этих лошадях?

Я новичок в Linux, и я вижу эту проблему как ускоренный курс в Linux :-), но потерпите меня, если я не сразу понимаю предложение.

Используя mint 18.1 с mate, сервер - это NAS-устройство QNAP с самой последней прошивкой.

Edit Я искал места в журналах, в которых упоминалось что-то о монтировании этого ресурса, и я нашел некоторые записи в /var/log/syslog:

Jan  3 09:19:53 lassus systemd[1]: Started Network Manager Wait Online.
Jan  3 09:19:53 lassus systemd[1]: Reached target Network is Online.
Jan  3 09:19:53 lassus systemd[1]: Mounting /media/share/d...
Jan  3 09:19:53 lassus systemd[1]: Starting /etc/rc.local Compatibility...
Jan  3 09:19:53 lassus mount[1301]: error 2 (No such file or directory) opening credential file /home/arnold/.credentials
Jan  3 09:19:53 lassus systemd[1]: media-share-d.mount: Mount process exited, code=exited status=2
Jan  3 09:19:53 lassus systemd[1]: Failed to mount /media/share/d.
Jan  3 09:19:53 lassus systemd[1]: Dependency failed for Remote File Systems.
Jan  3 09:19:53 lassus systemd[1]: remote-fs.target: Job remote-fs.target/start failed with result 'dependency'.
Jan  3 09:19:53 lassus systemd[1]: media-share-d.mount: Unit entered failed state.

Файл учетных данных абсолютно существует. Я сменил владельца с себя на root, но это тоже не помогло.

2 ответа2

1

Я собираю комментарии в качестве ответа на случай, если кто-то столкнется с такой же ситуацией или будет лучше осведомлен для улучшения информации.

Кажется, что поведение, которое вы заметили, является следствием того факта, что при попытке смонтировать общий ресурс samba, mount не может получить доступ к файлу учетных данных.

Но файл учетных данных существует и доступен для чтения при mount , поэтому проблема заключается в том, что раздел /home недоступен (не смонтирован) при необходимости.

Перемещение файла учетных данных куда-нибудь внутри / partion (например, внутри /etc ) решает проблему.

0

Используйте crontab как root:

@reboot until /usr/bin/fping -q 192.168.178.4; do sleep 1;done && /bin/mount -av

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .