今天講一下文件系統(tǒng),遇見過單個最大文件的問題,所以將此問題記錄下來,希望對大家有用。
FAT32(Windows):支持最大分區(qū) 128GB,最大文件 4GB。
FAT16(Windows):支持最大分區(qū) 2GB,最大文件 2GB。
NTFS(Windows):支持最大分區(qū) 2TB,最大文件 2TB。
HPFS(OS/2):支持最大分區(qū) 2TB,最大文件 2GB。
EXT2 和 EXT3(Linux):支持最大分區(qū) 4TB,最大文件 2GB。
EXT4(Linux):容量達(dá)到 1EB,而文件容量則達(dá)到 16TB。
JFS(AIX):支持最大分區(qū) 4P(block size=4k),最大文件 4P。
XFS(IRIX):這是個正經(jīng)的 64 位的文件系統(tǒng),可以支持 9E(2 的 63 次方)的分區(qū)。
exFAT(Extended File Allocation Table File System,擴(kuò)展 FAT,即擴(kuò)展文件分配表)是 Microsoft 在 Windows Embeded 5.0 以上(包括 Windows CE 5.0、6.0、Windows Mobile5、6、6.1)中引入的一種適合于閃存的文件系統(tǒng),為了解決 FAT32 等不支持 4G 及其更大的文件而推出。對于閃存,NTFS 文件系統(tǒng)不適合使用,exFAT 更為適用。對于磁盤則不太適用。
一般,單個文件超過 4G 的文件系統(tǒng),要不是 NTFS,要不是 exFAT。
這一點是需要注意的,比如音視頻領(lǐng)域,如果分辨率很高(如 4K30,1080P120),錄視頻起來文件是很大的,一分鐘幾百 M,如果單個文件超過 4G,但是文件系統(tǒng)不支持,就會出現(xiàn)問題,一般會主動截斷這個視頻,新建一個文件。(比如海思 Hi3559V200 的 SDK 中,SD 卡采用的是 FAT32 文件系統(tǒng),而FAT32 文件系統(tǒng)支持單個最大的文件是 4G,所以一般會主動截斷視頻,這樣也不會因為一個小錯誤,整個幾個小時的錄像文件失效,只不過查看的時候不是一個文件,會麻煩一些)
海思 SDK 沒有合并入 exFAT 格式,因為那是微軟的專利,會侵權(quán)。海思 SDK 用的 Linux 內(nèi)核是 4.9.37 版本,2019.11.25 日發(fā)布的 Linux5.4 版本宣布加入了 exFAT 格式。后期開發(fā)項目可以用Linux5.4及以上版本,這樣不需要移植代碼就可以使用 exFAT 文件系統(tǒng),需要獲權(quán)。
一般我們電腦磁盤的文件系統(tǒng)是 NTFS,因為我們的操作系統(tǒng)安裝包或者大型軟件安裝包都超過 4G。
換算關(guān)系
1EB=1024PB,1PB=1024TB,1TB=1024GB,1GB=1024MB……
單位轉(zhuǎn)換(參考):
1B=1Byte=8bit 1 字節(jié)=8比特
1 kB = 1024 B (kB - kilobyte) 千 2^10
1 MB = 1024 kB (MB - megabyte) 兆 2^20
1 GB = 1024 MB (GB - gigabyte) 吉 2^30
1 TB = 1024 GB (TB - terabyte) 太 2^40
1 PB = 1024 TB (PB - petabyte) 拍 2^50
1 EB = 1024 PB (EB -exabyte) 艾 2^60
1 ZB = 1024 EB (ZB - zettabyte) 皆 2^70
1 YB = 1024 ZB (YB -yottabyte) 佑 2^80
1 BB = 1024 YB (BB - brontobyte) 2^90
以上為計算機用的2^10 (1024)數(shù)量級。