udev 自動掛載U盤檔案系統指定目錄
嵌入式linux檔案系統中自動掛載U盤內的檔案系統
在海思嵌入式linux檔案系統中存在udev目錄及下屬檔案
/etc/udev # pwd
/etc/udev
/etc/udev # ls
disk-hotplug.sh rules.d usbdev-hotplug.sh
firmware.sh udev.conf
在rules.d 資料夾下有udev載入的規則檔案,其中11-usb-hotplug.rules 為U盤掛在檔案系統的規則檔案
/etc/udev/rules.d # pwd
/etc/udev/rules.d
/etc/udev/rules.d # ls
11-usb-hotplug.rules
50-firmware.rules
54-gphoto.rules
60-pcmcia.rules
75-cd-aliases-generator.rules.optional
75-persistent-net-generator.rules.optional
90-hal.rules
97-bluetooth-serial.rules
99-fuse.rules
device-mapper.rules
/etc/udev/rules.d #
檢視11-usb-hotplug.rules 中配置指令碼
#
# Create By Czy
#
KERNEL=="sd*", SUBSYSTEM=="block", RUN+="/etc/udev/disk-hotplug.sh"
KERNEL=="usbdev*", SUBSYSTEM=="usb_device", RUN+="/etc/udev/usbdev-hotplug.sh"
~
在我的系統中核心將U盤列舉為sda裝置,所以需要修改相應的udev/disk-hotplug.sh檔案
掛在檔案系統時,設想為如果有/dev/sda?的裝置插入,就預設掛載到/tmp/sda?相應目錄下:
U盤掛載修改內容:
1.vi udev/disk-hotplug.sh修改add_disk ()指令碼函式
ORG_NAME = /dev/sd[a-z] 或者 /dev/sda[a-z][0-9] 需要過濾sd[a-z]型別及/dev/字串字首 執行mount動作
如果/tmp/sd[a-z][0-9]目錄不存在需要,需要建立此掛載目錄
################################################################################
# new_name orgin_name
add_disk ()
{
local NEW_NAME=$1
local ORG_NAME=$2
if [ -e ${ORG_NAME} ]; then
cd /dev/; ln -sf ${ORG_NAME} ${NEW_NAME}; cd -
if echo ${ORG_NAME} | grep sd[a-z][0-9];then
if [ ! -d /tmp/${ORG_NAME##*/} ];then
mkdir -p /tmp/${ORG_NAME##*/}
fi
mount -t vfat ${ORG_NAME} /tmp/${ORG_NAME##*/}
fi
echo "${NEW_NAME} -> ${ORG_NAME}" > ${CONSOLE}
fi
}
################################################################################
U盤檔案系統解除安裝
1.修改hotplug_usb ()函式中removecase 新增"${DEVNAME}" 引數以方便解除安裝掛載目錄
case "${ACTION}" in
"add" )
add_disk "${NEW_NAME}" "${DEVNAME}"
;;
"remove" )
remove_disk "${NEW_NAME}" "${DEVNAME}"
;;
* )
echo "ACTION:${ACTION}" > ${CONSOLE}
2.修改remov_disk指令碼函式新增解除安裝動作程式碼
################################################################################
# new_name
remove_disk ()
{
local NEW_NAME=$1
local ORG_NAME=$2
if [ -L /dev/${NEW_NAME} ]; then
if echo ${ORG_NAME} | grep sd[a-z][0-9];then
if [ -d /tmp/${ORG_NAME##*/} ];then
umount /tmp/${ORG_NAME##*/}
rm /tmp/${ORG_NAME##*/} -rf
fi
fi
echo ${ORG_NAME} > ${CONSOLE}
rm -f /dev/${NEW_NAME}
fi
}
################################################################################
完成U盤檔案系統的在/tmp目錄下的自動掛載。
相關文章
- linux如何系統掛載u盤複製檔案Linux
- 使用SSHFS檔案系統遠端掛載目錄
- 使用 SSHFS 掛載遠端的 Linux 檔案系統及目錄Linux
- 48.Linux-普通U盤以及多分割槽U盤自動掛載Linux
- UDEV掛載EMC多路徑盤dev
- Java 從指定URL下載檔案並儲存到指定目錄Java
- IIS虛擬目錄掛載檔案伺服器目錄伺服器
- Linux檔案系統、目錄Linux
- Linux製作系統啟動盤以及掛載和解除安裝U盤Linux
- 檔案系統的掛載 與 非掛載
- 刪除指定目錄下指定字尾的檔案
- 使用SSHFS檔案系統通過SSH遠端掛在目錄
- iso檔案怎麼用u盤安裝系統 u盤pe安裝iso檔案方法教程
- Linux檔案系統目錄結構Linux
- 【ZIP】打包過濾指定目錄和檔案
- Linux核心啟動之根檔案系統掛載Linux
- windows 把指定目錄的檔案複製到當前目錄Windows
- Linux(centos)手動掛載系統磁碟和自動掛載系統磁碟教程LinuxCentOS
- Linux系統的目錄及重要檔案Linux
- win10系統使用U盤提示檔案或目錄損壞且無法讀取的解決方法Win10
- 『學了就忘』Linux檔案系統管理 — 60、Linux中配置自動掛載Linux
- macOS 下NFS 檔案系統掛載MacNFS
- Linux 檔案系統掛載mount命令Linux
- Oracle RAC NFS掛載檔案系統OracleNFS
- Linux解壓檔案到指定目錄的方法Linux
- 多系統盤掛載
- Linux系統掛載win系統的共享檔案Linux
- u盤安裝win10系統教程圖解 u盤重灌win10系統iso檔案教程Win10圖解
- u盤的NTFS與exFAT檔案系統-總結向
- C++檔案系統操作5 - 跨平臺列出指定目錄下的所有檔案和資料夾C++
- tar命令打包指定目錄及其檔案,而不包括其上級目錄
- php怎麼知道指定目錄中有哪些檔案PHP
- py目錄下獲取指定字尾檔案打包成zip檔案
- 列出並排序檔案系統根目錄(/)下各個目錄的大小排序
- linux — 擴容 /home 空間( xfs檔案系統分割槽擴容指定掛載點)Linux
- uefi啟動U盤如何安裝系統_uefi啟動u盤安裝系統的方法
- CentOS系統下/tmp目錄臨時檔案清理CentOS
- linux檔案系統的目錄結構筆記Linux筆記
- 啟動filezilla後自動連線指定站點及進入指定的目錄