Linux

如何在archlinux啟動時掛載aufs文件系統?

  • May 4, 2018

我想使用 aufs 來組合幾個磁碟。我可以使用命令行中的 mount 命令掛載 aufs 文件系統。

但是,當嘗試通過 fstab 條目安裝它時,它會失敗。Google告訴我 fstab 沒有按指定的順序掛載文件系統,從而產生了這個問題。我還找到了在 rc.local 中添加 mount 命令的建議,以便在 fstab 之後掛載 aufs。

我正在使用使用 systemd 的 archlinux,那麼如何在 systemd 啟動時執行 mount 命令?

Systemd 原生支持掛載 ( man systemd.mount)。實際上 systemd 讀取/etc/fstab,使用它來生成掛載單元,並掛載文件系統本身。

除了依賴fstab,還可以手動創建安裝單元。這就是處理系統掛載(如/dev/sys/proc等)的方式(/usr/lib/systemd/system/*.mount)。此方法允許您使用 systemd 依賴項來確保以正確的順序安裝事物。

systemd 掛載單元文件必須以它們控制的掛載點命名(man systemd.unit)。例如,我創建了一個單元文件來將我的 USB 備份驅動器掛載到/mnt/backup. 按照命名約定,我創建了/etc/systemd/system/mnt-backup.mount,具有以下內容:

[Unit]
Description = USB backup disk

[Mount]
What = LABEL=david-usb-backup
Where = /mnt/backup
Type = ext4

[Install]
WantedBy = multi-user.target

然後我執行systemctl daemon-reloadsystemd 來載入該單元。我可以執行systemctl start mnt-backup.mount來安裝磁碟,和/或systemctl enable mnt-backup.mount讓它在啟動時啟動。

對於依賴項Requires = some-other-mnt-point.mount,請在該[Unit]部分下添加。或者,您可以使用BindTo而不是Requires; 如果其中一個依賴項消失,這將導致它被解除安裝。但是Requires不影響磁碟的安裝順序。因此,要確保在 aufs 之前安裝磁碟,請使用After.

編輯:為了擴展 and 的使用RequiresAfter單元部分可能如下所示:

[Unit]
Description = USB backup disk
Requires = mnt-data01.mount
Requires = mnt-data02.mount
Requires = mnt-data03.mount
After = mnt-data01.mount
After = mnt-data02.mount
After = mnt-data03.mount

以為我會為像我這樣的其他人發布分步說明。感謝 David Baggerman 幫助我到達這裡。

我創建了/etc/systemd/system/mnt-aufs.mount,內容如下:

[Unit]
Description = AUFS disk
Requires = mnt-data01.mount
Requires = mnt-data02.mount
Requires = mnt-data03.mount
After = mnt-data01.mount
After = mnt-data02.mount
After = mnt-data03.mount

[Mount]
What = none
Where = /mnt/aufs
Type = aufs
Options = br:/mnt/data01/=rw:/mnt/data02/=rw:/mnt/data03/=rw,sum,create=mfs

[Install]
WantedBy = multi-user.target

然後我執行systemctl daemon-reloadsystemd 來載入該單元。執行systemctl start mnt-aufs.mount以安裝磁碟,和/或systemctl enable mnt-aufs.mount讓它在引導時啟動。

這相當於將以下內容複製粘貼到/etc/rc.local初始化腳本,並且會容易得多。我想知道為什麼 systemd 沒有等效文件。

mount -t aufs -o br:/mnt/disk01=rw:/mnt/disk02=rw: /mnt/disk03=rw,sum,create=mfs none /mnt/aufs

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