Debian
刪除或修改 fstab 中的掛載點條目時,systemd 生成的掛載文件不會被刪除
我最近開始在 linux 中使用 systemd。在 systemd mount 上,我有一些觀察:
- 當 /etc/fstab 中有條目時,將使用掛載點名稱生成掛載單元文件。
我還觀察了下面列出的兩種情況:
前提條件:我在 fstab 中有以下條目:
/dev/sda3 /test_mount ext4 rw,acl,nobarrier,nodelalloc 0 0
(所以重啟後會在/var/run/systemd/generator/目錄下生成test_mount.mount文件。)
- 場景 1:我從 fstab 中刪除了該條目並重新啟動了機器。我的期望是 test_mount.mount 文件應該從 /var/run/systemd/generator/ 目錄中刪除。但是文件沒有被刪除,systemd 正在嘗試掛載設備節點。
- 場景 2:我修改了 fstab 中的條目。我將掛載點重命名為 sec_test_mount 並重新啟動了機器。我的期望是 test_mount.mount 文件應該從 /var/run/systemd/generator/ 目錄中刪除,而 sec_test_mount.mount 文件應該是新創建的。sec_test_mount.mount 是新創建的,但 test_mount.mount 沒有被刪除。兩個掛載文件都在嘗試掛載,並且掛載發生了兩次。
systemd-fstab-generator 在 下創建掛載單元
/run
,因為該文件系統是 tmpfs(記憶體中文件系統),不會在重新啟動後保留,因此預計在每次啟動時都將其替換為空卷。(
/var/run
應該是指向的符號連結/run
,即 tmpfs 掛載。該名稱的存在只是為了兼容,現代 Linux/run
直接在任何地方使用。)如果您的機器上不是這種情況,我會說這就是問題所在……如果您解決了這個問題,生成器將在每次啟動時正確地重新創建掛載單元,因為 tmpfs 每次都是空的。