
我正在嘗試使用 zfs-fuse 作為讀取/寫入分區的檔案系統驅動程序,其中包括 Ubuntu 12.04 發行版上的系統日誌記錄。我透過修改適當的設定檔成功地將 rsyslog 重新導向到那裡。但是,在啟動時,rsyslog 在安裝zfs-fuse 磁碟機之前啟動,因此它只是愉快地建立目錄,並開始在根分割區上進行日誌記錄,並且當zfs-fuse 嘗試在啟動順序中稍後安裝磁碟機時,會出現作業系統正在運行的 / 已安裝磁碟機上已經有文件,因此 zfs-fuse 無法在那裡安裝該磁碟機。在我修改 rsyslog 設定檔以在不同位置登入之前,zfs-fuse 會自動很好地安裝磁碟機。
所以,我的問題是這樣的:
如何將磁碟機的 zfs-fuse 安裝移至啟動順序中早於 rsyslog 出現的位置?我希望 rsyslog 包含所有引導訊息,因此我不能只將 rsyslog 移到 zfs-fuse 之後,我必須更早地移動 zfs-fuse。我可以設想各種方法來破解這個問題,但我想要一個優雅的解決方案(如果存在)。我已經對此進行了相當多的谷歌搜索,但找不到任何人解決了這個問題並發布了解決方案。
感謝你給與我的幫助
答案1
好吧,7.5 個月後,我終於找到了一個乾淨的方法來做到這一點,所以我想發回來。
Rsyslog 在 12.04 上配置為 upstart 作業。
zfs-fuse 在使用 apt-get install 安裝時會自行設置,以便支援指令 service zfs-fuse start。
利用這兩個事實,我做了以下事情:
- 在 /etc/init/rsyslog.conf 中的預啟動腳本行之後直接新增了行“service zfs-fuse start”
- 執行指令 sudo initctl reload-configuration
現在,在 rsyslog 啟動之前,我強制啟動 zfs-fuse 服務,該服務依序安裝 zfs 磁碟機。現在,我可以確信,除非 zfs-fuse 安裝失敗,否則當 rsyslog 啟動時,zfs-fuse 磁碟機將被安裝並準備好寫入,以便我從引導程序一開始就可以在那裡登入。