編輯:我想稍微簡化一下問題:
主要問題是:無論我的 USB 驅動器是否插入,/dev/sda 都會在啟動時建立。如果我手動 rm /dev/sda,udev 會正常工作,直到我重新啟動,此時 /dev/sda 會神奇地再次出現!
原問題如下:
我正在嵌入式板上運行 Yocto Linux 版本,但遇到了問題。
在全新構建中,當我將 USB 驅動器插入主機板時,它顯示為 /dev/sda 和 /dev/sda1(太棒了!)。當我拔掉驅動器時,這些條目就會消失(也很棒!)。
當我透過 USB 隨身碟將重複的根檔案系統複製到主機板上(這樣我就可以對主機板進行完整的系統更新)後,就會出現問題。一切正常,直到我重新啟動,突然 /dev/sda 和 /dev/sda1 存在,無論 USB 驅動器是否插入。
我檢查了權限,在這兩種情況下它們看起來都是一樣的。我已嘗試刪除這些文件,但它們會在下次重新啟動時重新出現。這兩個檔案不會隨新的根檔案系統一起複製。我的應用程式使用這些文件的存在來確定驅動器是否已插入,因此它們正常工作非常重要。
有任何想法嗎?
謝謝
馬龍
答案1
更改檢查 USB 驅動器的方式,因為這種方式不可靠。
使用lsusb
或檢查/proc/scsi/usb-storage
目錄。這兩種方式都可以從內核獲取大量信息,因此您還可以使用諸如根據供應商或序號切換到不同邏輯之類的東西:)