嵌入式linux掛載usb檔案系統,支援熱插拔

2021-06-20 11:13:18 字數 1949 閱讀 2325

發布的linux版本預設是支援usb檔案系統掛在的。

掛u盤之前,執行命令cat /proc/partitions,看看現在系統中有哪些分割槽。插上u盤以後,再次執行上述命令,看看多出來什麼分割槽(通常是sda1或者 sdb1). 

1、插入u盤  

2、輸入 fdisk -l /dev/sda 檢視輸出結果,比如我的是這樣的:      

# fdisk -l /dev/sda      

disk /dev/sda: 131 mb, 131104768 bytes      

3 heads, 32 sectors/track, 2667 cylinders      

units = cylinders of 96 * 512 = 49152 bytes    

device boot      start         end      blocks   id system     

/dev/sdb1   *           1        2668      128016    6 fat16  

3、看了上面的輸出就知道u盤所在的裝置了,比如我的就是/dev/sdb1,接著便是掛載了,假設我將u盤掛載到/mnt/usb目錄(沒有的話,新建)中,就是 mount -t msdos /dev/sdb1 /mnt/usb ;如果是fat16就使用下面的命令 mount -t msdos /dev/sdb1 /mnt/usb; 如果是fat32  mount -t vfat /dev/sdb1 /mnt/usb -o iocharset=utf8; 如果是ext2格式,就用命令:  mount -t ext2 /dev/sda1 /mnt/usb  

4、開啟/mnt/usb 就可以看到你的u盤裡的東西了! cd   /mnt/usb  

不過如果在插入u盤以後如果再次拔掉u盤,通過命令fdisk -l檢視之後會出現和上次不一樣(開機後第一次是sda1,再次插拔是sdb1,再次插拔是sdc1)。為了支援熱插拔,筆者寫了個簡單的shell指令碼:

if [ -r "/mnt/usb" ]#建立usb掛在目錄

then

echo "/mnt/usb file exist"

else

mkdir /mnt/usb

echo "creat directory /mnt/usb"

fifdisk -l > file_info.txt     #通過命令檢視當前u盤所在的碟符,並重定向到file_info.txt檔案

line_info=$(sed -n 7p file_info.txt)   #獲取file_info檔案的第七行(根據環境不同,所在的行號不一樣,我的是第七行)

echo "line_info = $line_info"

mount_info=$(echo $line_info | cut -c 1-9)  #獲取第七行的1-9這幾個字元為usb的裝置檔案節點(如:/dev/sda1這九個字元)

echo "mount_info = $mount_info"

if [ -r /mnt/usb/nextph_sep -o -r /mnt/usb/photo -o -r /mnt/usb/bodypart.db -o -r /mnt/usb/nextph_sep -o -r /mnt/usb/apollo.sh -o -r /mnt/usb/chinese.qm -o -r /mnt/usb/english.qm ]   #如果在/mnt/usb目錄下有我需要的檔案,證明已經掛在成功

then

echo "usb has been mounted before"

else 

mount -t vfat $mount_info /mnt/usb   #掛在usb

if [ $? = 0 ];then #掛在成功

echo "mount usb success"

else

echo "mount usb failed"

exit 1

fifi

嵌入式Linux開發使用NFS掛載根檔案系統

在嵌入式開發中使用nfs 掛在根檔案系統進行應用程式和驅動的除錯是必備技能,在程式除錯ok後可以從nfs檔案系統切換initramfs 基於記憶體 yaffs 基於nand flash jiffs 基於nor flash 等進行程式的批量燒寫。首先我們先配置pc端 ubuntu 1.安裝nfs 伺服...

linux 嵌入式掛載遠端網路

我使用的是am335x 今天需要把遠端的網路 通過區域網,掛載到板子上 之前我是用的是socket傳輸 經過一般周折 實現了掛載 一 核心支援cifs 實現掛載的重要 前提就是,kernel一定要支援 之前我以為直接像sd卡一樣掛載就完事了 找了很多資料都不行 最後發現 是kernel沒有他新增ci...

嵌入式筆記 nfsroot掛載

1 首先在ubuntu下安裝nfs 使用命令 sudo apt get install nfs kernel server2 建立我們的nfs根目錄 進入到自己的根目錄下 建立nfsroot資料夾,使用命令 suso mkdir nfsroot接著修改我們nfsroot資料夾的許可權,使用命令 su...