fstabにCIFSマウントがあり、ネットワークまたはリモートサーバーに問題が発生し、回復できない限りうまく機能します。障害が発生したときに共有が自動的に再マウントされることを望んでいますが、私が知っている限り、fstabはこの機能をサポートしていません。
今私がしたことはそれをautofsマウントに移動することで、公正に言うとうまくいきますが、常にautofsマウントがfstabに比べて少し遅いことがわかりました(コマンドラインで直感的に感じただけです)。他のソリューションの経験がある人はいますか?
答え1
再インストール中の既存のインストールでは、/etc/fstab
次の方法を使用して強制的に再インストールできます。
$ sudo mount -a -t cifs
すべてman mount
:
-t, --types vfstype
[...]
More than one type may be specified in a comma separated list.
The list of filesystem types can be prefixed with no to specify
the filesystem types on which no action should be taken. (This
can be meaningful with the -a option.) For example, the command:
mount -a -t nomsdos,ext
mount -a -t cifs
その後、スケジュールされた時間に従ってコマンドを実行するシェルスクリプトをチェックインするか、inotify
別の方法を使用してインストールの状態を確認し、インストールが失敗したことが検出された場合は、上記のmount ..
コマンドを実行できます。 。
答え2
サイレントインストール(および再インストール)systemd
この例では、私たちの持分は「大容量記憶負荷」
systemd
(ほとんどのチュートリアルでは扱わないファイルパスとユニットファイルエスケープをよく説明するためです)
- マウントポイントを作成します。
sudo mkdir -p "/mnt/Loads o' Big-Storage" sudo chown -R "$(whoami)":"$(whoami)" "/mnt/Loads o' Big-Storage"
systemd-escape --path
ファイル名の作成に使用されます.mount
。my_systemd_mountfile="$( systemd-escape --path "/mnt/Loads o' Big-Storage" )" echo "${my_systemd_mountfile}"
mnt-Loads\x20o\x27\x20Big\x2dStorage
/etc/system/system/
次のコマンドを使用してファイルを作成します。言葉ファイルパスの内容(エスケープなし)sudo vim "/etc/system/system/${my_systemd_mountfile}.mount"
[Unit] Description=My CIFs Media Mounter Requires=network-online.target After=network-online.service [Mount] What=//192.168.2.200/Loads o' Big-Storage Where=/mnt/Loads o' Big-Storage Options=username=foo-user,password=foo-secret Type=cifs [Install] WantedBy=multi-user.target EOF
- その
.automount
ファイルを作成します。sudo vim "/etc/system/system/${my_systemd_mountfile}.automount"
[Unit] Description=My CIFs Media Automounter [Automount] Where=/mnt/Loads o' Big-Storage [Install] WantedBy=multi-user.target
- サービスをロードして有効にします。
sudo systemctl daemon-reload sudo systemctl enable "${my_systemd_mountfile}".automount sudo systemctl start "${my_systemd_mountfile}".automount
トラブルシューティング
問題が発生した場合は、journalctl
自己紹介よりも優れたログ情報がありますsystemd status
。
sudo journalctl -xe "${my_systemd_mountfile}".mount