Systemd

centos上的systemd掛載單元配置*.img文件

  • April 3, 2022

有必要創建一個虛擬文件samba.img作為設備並在系統啟動時自動掛載它。

從文件創建虛擬磁碟

fallocate -l 2G /root/img/samba.img
mkfs.ext4       /root/img/samba.img

創建掛載點

sudo mkdir /srv/smb

我創建了一個掛載文件以在系統啟動時執行

vim /etc/systemd/system/mnt-driveone.mount

mnt-driveone.mount 包含

[Unit]
Description=Additional drive

[Mount]
What=/root/img/samba.img
Where=/srv/smb
Type=ext4
Options=defaults

[Install]
WantedBy=multi-user.target

接下來,添加到自動載入

systemctl enable mnt-driveone.mount

systemctl start mnt-driveone.mount

我得到一個錯誤

mnt-driveone.mount: Where= setting doesn't match unit name. Refusing.

我看了看,這樣的錯誤是在寫路徑有不正確的路徑或者空格的時候出現,但是我的目錄存在並且沒有空格。

好吧,錯誤告訴你出了什麼問題!

閱讀man systemd.mount以了解單元文件名要求:

掛載單元必須以它們控制的掛載點目錄命名。
範例:/home/lennart必須在單元文件中配置掛載點home-lennart.mount。有關用於將文件系統路徑轉換為單元名稱的轉義邏輯的詳細資訊,請參見 systemd.unit(5)。請注意,掛載單元不能模板化,也不能通過創建附加符號連結來為掛載單元添加多個名稱。

所以你的單元文件必須命名為srv-smb.mount.

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