Udev

拔下 U 盤時的 UDEV 規則

  • November 21, 2012

我寫了一條規則,將我的 USB 記憶棒自動掛載到某個文件夾,但是當我拔下它時,文件夾仍然掛載,當我ls在那裡看到很多錯誤時,例如:Directory bread (block: NNNN) failed

我試著用

SUBSYSTEM=="block", ACTION=="remove", RUN+="/bin/umount /media/disk"

它不工作。

我的安裝規則看起來像

SUBSYSTEM=="block", ACTION=="add", RUN+="/bin/mount -t vfat <options> /dev/%k /media/disk"

正如前面的回答所提到的,我已經在網路上看到了這種有缺陷的方法,而且它的範圍太籠統了。它也不夠動態,如果插入了多個 USB 設備怎麼辦?這個問題很常見,解決方案也很常見。你沒有提到你的發行版,所以我不能告訴你哪些腳本可以打包。無論如何我都會提到它們,因為它們會向您展示更好的方法,您可以隨時藉用適用的部分。

首先,您應該真正考慮查看udisks,如果您使用完整的 DE,您可能只需要單獨使用它。僅適用於 WM… 一個偉大的項目取代了已棄用的 HAL,並使用udisksudisks-glue.

如果您仍然決定不使用udisks,請查看udev名為uam. Gentoo 有一個 ebuild,否則請查看GitHub Bitbucket的原始碼。

值得一提的是,Arch在他們的Wikiudev中也有很多很棒的 USB 自動掛載範例

這些選項中的任何一個都是執行此操作的輕量級方法,並且在實現上是完整的,在範圍上是特定的,並且經過了副作用測試。

這裡有兩個問題。

首先是您的兩個 udev 規則都不夠精確。是的,它們可以啟動插入/拔出 USB 快閃記憶體驅動器的操作,但它們也可能會在您的硬碟驅動器在啟動時被辨識時觸發。

第二個問題的後果可能更嚴重:您應該始終****在拔下驅動器之前解除安裝它們。否則驅動器和您的系統都會受到影響。我親眼看到人們以這種方式破壞他們的快閃記憶體驅動器。

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