最近解了一個問題,就是Linux光驅自動掛載報錯
通過執行上圖中的
mount-t "iso9660" -o"uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500""/dev/sr0" /mnt
發現,確實沒有辦法掛載。
但是通過實踐發現,如果把iocharset=utf8去掉就可以掛載了。
系統中掛載光驅是
/usr/lib/udisks2/udisksd這個進程實現的,然後找到對應的src.rpm包,在src/udisklinuxfilesystem.c中可以知道系統默認的就是utf8這種編碼方式,如果修改可能會造成一些隱患。
通過在我x86_64機器上掛載usb光驅發現,他是可以通過utf8方式掛載的(中間由於自己粗心,掛載時把utf8寫成了uft8,導致嚴重的判斷失誤,真是不應該)。
此時就想到了可能是內核上面的一些配置選項沒有打開導致的
通過在menuconfig裡搜索iocharset,utf8等一些於配置相關的參數,發現在
Filesystems->Native language support中有一些相關的配置。
通過不斷嘗試,最終可以發現NLSUTF-8這個參數編譯進內核就可以讓光驅正常掛載了。
總結:
遇到問題多觀察,復現現象要多分析,多嘗試,找到問題的關鍵點。