Автоматическое перемонтирование cifs/SMB после короткого прерывания сети

Сервер Windows предоставляет сетевой каталог, называемый данными, по протоколу CIFS/SMB. Папка данных монтируется на клиенте Linux с паролем и аутентификацией пользователя.

Иногда диск отключается, но через секунду снова становится доступным. Я не знаю точно, почему, но, похоже, это из-за сервера Windows или неисправного сетевого компонента.

Как я могу сделать автоматическое переподключение Linux как можно скорее?

4 ответа

Я бы порекомендовал монтировать его через autofs, Это служба, которая будет монтировать каталог по требованию (например, если вы cd в это или ls это) и размонтировать его автоматически после определенного пользователем таймаута.

  • Установите autofs пакет для вашего дистрибутива (кстати, не забудьте включить ваш дистрибутив в ваши вопросы, так как детали ответа могут зависеть от него).

  • Добавьте следующее в /etc/auto.master

    /media/[my_server] /etc/auto.[my_server]
    

    куда /media/[my_server] является точкой монтирования общего ресурса.

  • Создайте файл /etc/autofs/auto.[my_server] с этой строкой:

    [any_name] -fstype=cifs,[other_options] ://[remote_server]/[share_name]
    

Для получения дополнительной информации смотрите здесь и здесь.

Чтобы добавить к ответу autofs, я рекомендую сделать так, как описано здесь:

https://andrewaadland.me/2017-06-18-autofs-nfs-and-archlinux-key-not-found-in-map-sources/

То есть:

  • Сделайте первое поле вauto.masterвсегда/-.
  • Используйте полное имя монтирования в/etc/autofs/auto.server.

Итак, в моем случае/etc/autofs/auto.masterсодержит:

      /-      /etc/autofs/auto.nas

И/etc/autofs/auto.nasсодержит:

      /home/rkitover/nas -fstype=cifs,credentials=/home/rkitover/.nascredentials,uid=1000,gid=1000,iocharset=utf8 ://nas/rkitover

Это работает для меня!

Просто чтобы предложить другую точку зрения: текущее решение делает это с помощью systemd, как описано здесь:

https://anteru.net/blog/2019/automatic-mounts-using-systemd/

systemd + Монтирует со специальными символами

Поскольку в большинстве этих блогов, постов и тому подобного об этом не упоминается в достаточной для меня форме, я хочу отметить несколько ключевых моментов:

  1. Ключи типаWhat=иWhere=иметь буквальные значения – без экранирования
  2. Пути в файловой системе должны бытьsystemd-escapeд
    • оболочка будет интерпретировать\, поэтому ОДИНАРНАЯ кавычка, чтобы избежать:'my\x20'
  3. Ты должен бежатьsudo systemctl daemon-reloadмежду изменениями имени/содержания
  4. sudo journalctl -xe ESCAPEME.mountдаст более качественные журналы, которыеstatus

Пример: /etc/systemd/system/ESCAPEME.mount

/etc/systemd/system/mnt-TrueNAS-TV\x20Shows.mount:

      [Unit]
  Description=My CIFs Media Mounter
  Requires=network-online.target
  After=network-online.service

[Mount]
  What=//192.168.1.200/TV Shows
  Where=/mnt/TrueNAS/TV Shows
  Options=username=my-user,password=my-secret
  Type=cifs

[Install]
  WantedBy=multi-user.target

Пример: /etc/systemd/system/ESCAPEME.automount

/etc/systemd/system/mnt-TrueNAS-TV\x20Shows.automount:

      [Unit]
  Description=My CIFs Media Automount

[Automount]
  Where=/mnt/TrueNAS/TV Shows

[Install]
  WantedBy=multi-user.target

Больше информации

См. https://unix.stackexchange.com/questions/455094/auto-remount-cifs-share/740886#740886.

Другие вопросы по тегам