このコマンドを使用した場合:
mount -t xfs -o noatime,nodiratime,logbufs=8 -L d1 /srv/node/d1
すべて正しく動作します。しかし、systemd
マウントを介してマウントしようとすると失敗します。
ファイルを作成しました/etc/systemd/system/mnt-d1.mount
以下のコンテンツを含む:
[Unit]
Description = Disk 1
[Mount]
What = LABEL=d1
Where = /srv/node/d1
Type = xfs
Options = noatime,nodiratime,logbufs=8
[Install]
WantedBy = multi-user.target
その後、次のコマンドを実行します。
systemctl daemon-reload
systemctl start mnt-d1.mount
最後のものは私に示しました:
Failed to start mnt-d1.mount: Unit mnt-d1.mount failed to load: Invalid argument.
See system logs and 'systemctl status mnt-d1.mount' for details.
systemctl status mnt-d1.mount
見せてくれました:
May 16 18:13:52 object1 systemd[1]: Cannot add dependency job for unit mnt-d1.mount, ignoring: Unit mnt-d1.mount failed to ...ectory.
May 16 18:24:05 object1 systemd[1]: mnt-d1.mount's Where= setting doesn't match unit name. Refusing.
systemd
マウントユニットを介してディスクをマウントするのを手伝ってください。
エラーメッセージは原因を説明します:
_Where= setting doesn't match unit name. Refusing.
_
ただし、そのメッセージを理解するには、いくつかのmanページを読む必要があります。
Per _systemd.mount
_ man page (強調する鉱山):
_
Where=
_マウントポイントのディレクトリの絶対パスを取得します。マウント時にマウントポイントが存在しない場合は作成されます。 この文字列は、ユニットのファイル名に反映されている必要があります。 (上記を参照。) このオプションは必須です。
「上記を参照」の部分は次のとおりです。
マウントユニットは、それらが制御するマウントポイントディレクトリにちなんで名前を付ける必要があります。例:マウントポイント_
/home/lennart
_は、ユニットファイル_home-lennart.mount
_で構成する必要があります。ファイルシステムパスをユニット名に変換するために使用されるエスケープロジックの詳細については、systemd.unit(5)
を参照してください。
OK、 _systemd.unit
_ man page は次のように述べています:
systemd-escape(1)
コマンドを使用して、適切にエスケープされたパスを生成できます。
_systemd-escape
_のマニュアルページ を指します。
パスのマウントユニットを生成するには:
_
$ systemd-escape -p --suffix=mount "/tmp//waldi/foobar/"
_
_tmp-waldi-foobar.mount
_
したがって、あなたの場合、_/srv/node/d1
_は_srv-node-d1.mount
_に変換されます