Systemd

為什麼自動掛載不適用於該程序?

  • July 2, 2020

systemd 的自動掛載通常在這里工作得很好。有一個例外:VDR 程序在重新啟動後無法啟動,因為它無法訪問通過自動掛載掛載的數據目錄。自動掛載該目錄是有效的,但如果 VDR 訪問它,則不會。

來自 journalctl:

Jul 02 06:30:24 zem systemd[1]: Set up automount srv-vdr.automount.
.
.
.
Jul 02 06:30:25 zem vdr[663]: vdr: can't access video directory /srv/vdr
Jul 02 06:30:25 zem vdr[663]: [663] ERROR: can't access /srv/vdr
Jul 02 06:30:25 zem systemd[1]: Failed to start Video Disk Recorder.
.
.
.
Jul 02 06:30:25 zem systemd[1]: srv-vdr.automount: Got automount request for /srv/vdr, triggered by 709 (exportfs)
Jul 02 06:30:25 zem systemd[1]: Mounting /srv/vdr...
Jul 02 06:30:25 zem systemd[1]: Mounted /srv/vdr.

通過 觸發安裝時exportfs,它正在工作。日誌中沒有“得到 /srv/vdr 的自動掛載請求,由 xxx (vdr) 觸發”或類似行。

那是 srv-vdr.mount … :

[Install]

[Unit]
Conflicts=umount.target
Before=umount.target

[Mount]
What=/dev/disk/by-uuid/66779553-2ea8-4145-aa8c-d6b2582d6f32
Where=/srv/vdr
Type=auto
Options=defaults

… 和 srv-vdr.automount:

[Install]
WantedBy=local-fs.target

[Unit]
Conflicts=umount.target
Before=umount.target
Before=local-fs.target

[Automount]
Where=/srv/vdr

問題是它/srv/vdr的權限為 555。VDR 檢查它是否可以寫入/srv/vdr,發現它不能並且永遠不會觸發自動掛載。

引用自:https://unix.stackexchange.com/questions/596334