gentoo linux自動 掛載隨身碟 方法(zt)
目前一些主流桌面系統(如Gnome,KDE,Xfce)的較新版本都支援自動掛載(mount)隨身碟了. 一個流傳很廣的說法是 HAL(硬體抽象層) 起了自動掛載的作用, 其實這是誤解. 對於2.6核心而言, udev 才是直接從核心接收裝置連線或斷開資訊的主體.
udev 從核心得到資訊後,根據一些簡單規則(注意,是簡單規則), 在 /dev 目錄下建立相應的裝置節點, 並進行某些相關操作. HAL 所做的事情是在 udev 的規則中加上一條(或幾條), 讓 udev 把收到的資訊也傳遞給 HAL. 接下來, HAL 用更為複雜的規則來匹配和描述當前連線著的硬體. 舉一個簡單的例子, udev 知道的是隨身碟已經連線了並且有一個分割槽; 而 HAL 能更進一步知道這個分割槽的卷標名及其它一些資訊.
上面這些都還不能自動掛載隨身碟. Gnome 等桌面系統會啟動一個守護程式(daemon), 透過 D-Bus 從 HAL 那裡得到硬體資訊, 如果發現有隨身碟連線了就由它們來掛載它(實際是呼叫 pmount).
問題是, 如果你不想用Gnome,KDE,Xfce這些桌面系統, 那麼由它們提供的隨身碟自動掛載功能也就失效了,有解決辦法麼?
解決的辦法之一, 便是讓 udev 來幹這件事情!
udev 的主要功能是實時地在 /dev 目錄下建立和刪除裝置節點, 但它也能在建立節點的同時, 執行一個額外地程式. 具體的原理這裡就不詳說了, 有時間請仔細閱讀 Writing udev rules 這篇文章. 寫規則時特別注意 KERNEL, SUBSYSTEM 等這些關鍵字單數和複數(最後有沒有'S')的區別. 複數(比如 KERNELS)表示你想用父裝置的屬性來匹配, 單數(比如 KERNEL)是要匹配裝置本身的屬性.
在 /etc/udev/rules.d 目錄下建立檔案 10_usbkey.rules, 其內容如下
KERNEL=="sda1", SUBSYSTEM=="block", RUN+="/root/usbmount.sh"
然後, 在 /root 目錄中建立檔案 usbmount.sh, 其內容為
並把該檔案屬性設定為可執行, chmod a+x usbmount.sh
注意, 如果你的 linux 上 locale 是 zh_CN.utf-8, 需要把上面的 iocharset=gb2312 改成 iocharset=utf8
最後建立目錄, mkdir /media/usbkey
這是一個非常簡單但可用的例子. 隨身碟插上後自動 mount 到 /media/usbkey , 拔出後自動 umount. 你可以檢視 /var/log/usb-hotplug.log , 裡面會有些簡單的呼叫記錄.
udev 從核心得到資訊後,根據一些簡單規則(注意,是簡單規則), 在 /dev 目錄下建立相應的裝置節點, 並進行某些相關操作. HAL 所做的事情是在 udev 的規則中加上一條(或幾條), 讓 udev 把收到的資訊也傳遞給 HAL. 接下來, HAL 用更為複雜的規則來匹配和描述當前連線著的硬體. 舉一個簡單的例子, udev 知道的是隨身碟已經連線了並且有一個分割槽; 而 HAL 能更進一步知道這個分割槽的卷標名及其它一些資訊.
上面這些都還不能自動掛載隨身碟. Gnome 等桌面系統會啟動一個守護程式(daemon), 透過 D-Bus 從 HAL 那裡得到硬體資訊, 如果發現有隨身碟連線了就由它們來掛載它(實際是呼叫 pmount).
問題是, 如果你不想用Gnome,KDE,Xfce這些桌面系統, 那麼由它們提供的隨身碟自動掛載功能也就失效了,有解決辦法麼?
解決的辦法之一, 便是讓 udev 來幹這件事情!
udev 的主要功能是實時地在 /dev 目錄下建立和刪除裝置節點, 但它也能在建立節點的同時, 執行一個額外地程式. 具體的原理這裡就不詳說了, 有時間請仔細閱讀 Writing udev rules 這篇文章. 寫規則時特別注意 KERNEL, SUBSYSTEM 等這些關鍵字單數和複數(最後有沒有'S')的區別. 複數(比如 KERNELS)表示你想用父裝置的屬性來匹配, 單數(比如 KERNEL)是要匹配裝置本身的屬性.
在 /etc/udev/rules.d 目錄下建立檔案 10_usbkey.rules, 其內容如下
KERNEL=="sda1", SUBSYSTEM=="block", RUN+="/root/usbmount.sh"
然後, 在 /root 目錄中建立檔案 usbmount.sh, 其內容為
QUOTE: |
#!/bin/bash LOG=/var/log/usb-hotplug.log lap=$(date --rfc-3339=ns) echo "$lap: $DEVPATH requesting $ACTION" >> $LOG if [ $ACTION == "add" ] then mount -t vfat -o umask=000,noatime,async,codepage=936,iocharset=gb2312 /dev/sda1 /media/usbkey elif [ $ACTION == "remove" ] then umount -l /media/usbkey fi |
並把該檔案屬性設定為可執行, chmod a+x usbmount.sh
注意, 如果你的 linux 上 locale 是 zh_CN.utf-8, 需要把上面的 iocharset=gb2312 改成 iocharset=utf8
最後建立目錄, mkdir /media/usbkey
這是一個非常簡單但可用的例子. 隨身碟插上後自動 mount 到 /media/usbkey , 拔出後自動 umount. 你可以檢視 /var/log/usb-hotplug.log , 裡面會有些簡單的呼叫記錄.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245857/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux掛載隨身碟,SD卡LinuxSD卡
- 車載隨身碟和普通隨身碟哪個好 車載隨身碟和普通隨身碟的區別
- 隨身碟插入自動讀寫/隨身碟插入自動複製檢測隨身碟的插入,以及進行自動複製檔案並寫入檔案
- 移動隨身碟怎麼設定密碼 隨身碟加密最簡單方法密碼加密
- ubuntu的virtualbox無法掛載隨身碟問題Ubuntu
- 詳細介紹CentOS 7 掛載NTFS 隨身碟CentOS
- 如何批次進行隨身碟加密?隨身碟加密的方法有哪些?加密
- 隨身碟變硬碟怎麼辦,隨身碟變硬碟恢復方法硬碟
- 電腦隨身碟啟動按鈕
- Ventoy工具製作啟動隨身碟
- 隨身碟安裝系統怎麼操作 隨身碟安裝系統方法和步驟教程
- 如何使用Fdisk來快速重建隨身碟分割槽?Fdisk快速重建隨身碟分割槽的方法步驟
- 隨身碟免疫檔案應該怎麼建立呢?隨身碟免疫檔案的建立方法教程
- 隨身碟檔案被隱藏怎麼恢復 隨身碟檔案恢復隱藏的方法
- 隨身碟如何製作win10安裝盤|win10安裝隨身碟製作方法Win10
- 如何用隨身碟安裝win10系統_隨身碟裝win10官方原版映象的方法Win10
- 英特爾主機板應該怎麼設定隨身碟啟動?英特爾主機板設定隨身碟啟動的方法步驟
- Linux兩種光碟機自動掛載的方法Linux
- 隨身碟格式會影響到隨身碟複製數量嗎?隨身碟格式對複製數量有什麼影響
- 如何用隨身碟裝win10原版系統|隨身碟安裝win10原版系統的方法Win10
- 聯想電腦如何用隨身碟裝系統|聯想筆記本隨身碟裝系統的方法筆記
- win10系統製作隨身碟啟動時隨身碟變為只讀怎麼解決Win10
- 技嘉主機板設定隨身碟啟動安裝系統方法
- windows10系統設定快速啟動隨身碟啟動項的方法Windows
- 老毛桃如何隨身碟安裝原版win10系統_老毛桃隨身碟裝win10系統的方法Win10
- win10系統隨身碟資料夾大小超過隨身碟容量如何解決Win10
- 被隨身碟炸傷!厄瓜多記者收到偽裝成隨身碟的炸彈
- 如何用隨身碟重灌系統win10|隨身碟重灌win10系統步驟Win10
- 製作macOS 11 Big Sur 啟動隨身碟系統Mac
- 使用隨身碟時提示0x00000013錯誤怎麼辦?隨身碟提示0x00000013錯誤的解決方法
- 隨身碟恢復工具的使用方法與技巧介紹
- 閃迪隨身碟資料恢復資料恢復
- USBclean for Mac隨身碟病毒查殺工具Mac
- 華碩電腦隨身碟重灌系統教程|華碩電腦如何用隨身碟重灌系統
- 製作的Fedora啟動隨身碟無法引導系統的解決方法
- Linux磁碟分割槽及自動掛載Linux
- wim檔案製作隨身碟啟動盤教程【圖文】
- win10系統BIOS如何設定隨身碟啟動Win10iOS
- 隨身碟格式化怎麼設定比較好 隨身碟格式化的正確步驟