Linux

在 linux 中加速 udisks2.service

  • July 17, 2020

我正在分析 systemd 並且我想提高我的系統的啟動速度。systemd-analyze明顯差距的責任列表中排名第一的服務udisks2.service幾乎是 10 秒(由於依賴關係,這些數字可能會產生誤導,但udisks沒有任何) . 禁用它不是一個好的解決方案,因為另一個服務需要它:

$ cat /lib/systemd/system/udisks2.service
...
[Install]
WantedBy=graphical.target

我還嘗試在 VirtualBox 的 ubuntu 測試實例中禁用它,它完全啟動並且沒有問題,但是一旦dbus-daemon初始化,它就會自動啟動它。

來自man udisksd

使用者或管理員永遠不需要啟動這個守護程序,因為每當應用程序嘗試訪問其 D-Bus 介面時,dbus-daemon(1) 或 systemd(1) 都會自動啟動它

udisks2.conf 手冊頁中,您可以將 modules_load_preference 選項設置為 ondemand,預設情況下是這樣。似乎目前它處於最優化的形式。

所以問題是“是否可以安全地加速 /usr/lib/udisks2/udisksd 的執行?

任何建議將不勝感激。

您是否有一個塊設備/分區/LV列出/etc/fstab(因此看起來像是管理的候選對象udisksd)但已加密或不易辨識?

或者可能是 CD 驅動器或儲存卡讀卡器對“驅動器中沒有介質”錯誤的檢測速度較慢或不存在?對於儲存卡讀卡器,這種情況的症狀可能是dmesg輸出中該設備的 I/O 超時錯誤。

udisksd在這些情況下,您可能希望通過創建udev與問題設備匹配的規則並向其添加ENV{UDISKS_IGNORE}="1"屬性來將這些問題設備排除在管理之外。

規則可以很簡單

KERNEL=="sda6", ENV{UDISKS_IGNORE}="1"   # encrypted disk

或按設備序列號

SUBSYSTEM=="block", ENV{ID_SERIAL_SHORT}=="S467NX0KB24459Y", ENV{UDISKS_IGNORE}="1"

或任何有效的udev屬性組合。

您可能想閱讀[/usr]/lib/udev/rules.d/*-udisks2.rules範例和資訊性評論,但您應該添加自己的規則,/etc/udev/rules.d/*.rules這樣它就不會被系統更新覆蓋。udev將讀取兩個目錄,如果兩個目錄中都存在同名文件,則該文件/etc/udev/rules.d將覆蓋相應的系統文件。在這種情況下,您可能不需要覆蓋系統預設規則文件;只需添加您自己的具有非重疊名稱的規則文件。

您可以使用任何文件名,只要它位於正確的目錄並具有.rules後綴即可,但請記住,這些規則是按照文件名的預設 US-ASCII 排序順序執行的,因此有一個慣例是在文件名中添加數字前綴文件名使規則排序明確。

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