最近工作中需要在arm架構的單板上增加一個fat格式的文件系統分區用於windows訪問,就回顧了一下文件系統和linux分區。簡單寫幾句:
單板的存儲介質是eMMC,linux系統,采用交叉編譯。增加分區就直接在fastboot傳給kernel的參數中增加一個分區就好了,沒什么要說的。
這里主要說一下增加文件系統的兩種方式:
方法一
1.在宿主機上准備好,再燒錄到對應的分區上:
dd if=/dev/zero of=data.fat bs=1024 count=1024
bs和count可以根據自己的需要設置,作者這里bs設置為1024,count設置為1024,也即增加的文件系統設置為了1MB。
這里如果count太小了的話,執行mkfs.fat的時候會出現錯誤提醒:Not enough space to build proposed filesystem while setting up superblock
這是因為文件系統的頭部會在分區開始出寫下MBR,記錄文件系統的信息,如果block太少了 ,寫不下的話會報錯,具體的有機會寫一篇文件系統的博客。
mkfs.fat data.fat -F 32
這里的-F 32是指定fat32文件系統,你也可以根據自己的需要選擇fat12,fat16,fat32中的任意一個,當然也可以不指定,用默認的就好了。
這時file data.fat就可以看到文件系統已經格式化好了 :data.vfat: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "mkfs.fat", sectors/cluster 4, root entries 512, sectors 2048 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 2, sectors/track 32, heads 64, serial number 0xbfc1387d, unlabeled, FAT (12 bit)
接着將data.fat燒錄到對應的分區即可
方法二
2.在目標機上的啟動執行腳本上添加:
在/init.d/rcS中添加如下shell腳本 :
mount /dev/mmcblkmpn / if [ $? -ne 0 ]; then mkfs.fat /dev/mmcblkmpn -F 32 mount /dev/mmcblkmpn / fi
其中mmcblkmpn為對應的文件系統分區
推薦使用方法一,由於方法二在掛載文件系統失敗后可能會有丟失數據的風險
以上所有。