在emmc上制作fat32分区做启动分区时出现这个警告,导致没法正常启动,
root@am57xx-evm:/boot# fdisk -l /dev/mmcblk1
/dev/mmcblk1p1 * 4096 40959 36864 18M c W95 FAT32 (LBA)
root@am57xx-evm:/boot# mkfs.vfat -F 32 -n "boot" /dev/mmcblk1p1
mkfs.fat 4.1 (2017-01-24)
mkfs.fat: warning - lowercase labels might not work properly with DOS or Windows
WARNING: Not enough clusters for a 32 bit FAT!
先在网上了解一下簇的概念和扇区的区别:
簇和扇区不是属于一个范畴。簇是系统在硬盘上读写文件时的单位,是一个数据块。而扇区是硬盘划分的最小单位值,就是簇(数据块)占用的地方。
簇的大小大于扇区的大小。硬盘每簇的扇区数与硬盘的总容量大小有关。扇区是存储介质上可由硬件寻址的基本单位,x86系统几乎总是定义512字节的扇区大小;簇是许多文件系统格式使用的可寻址数据块,簇的大小总是扇区大小的整数倍,且不同文件系统对于不同大小的卷(分区)会有不同的默认簇大小,比如FAT32对于8GB以下的分区,默认簇大小为4KB,对于8GB~16GB的分区,默认簇大小为16个扇区(8KB),NTFS对于大于2GB的分区,默认簇大小为8个扇区(4KB)。
打个比方,你(系统)要在仓库(仓库可视为硬盘)里存放一些书(数据)。你先把书分门别类放到一些大纸箱(簇)里,然后放进仓库,纸箱的体积是根据你仓库大小来决定的,而仓库始终划分成单位为0.1m³的小格子(扇区),仓库大了,纸箱就大些,仓库小了,纸箱就小些。
制作fat32文件系统有个最小的簇的个数要求:
这里扇区大小为512bytes,
经测试当簇大小等于1个扇区时,分区最少需要40MB,当簇大小设为2个扇区时,分区至少需要80MB,
40M / 512 = 81920, 80M / 512 / 2 = 81920,计算出制作fat32的分区大小至少需要有81920个簇。
root@am57xx-evm:/boot# fdisk -l /dev/mmcblk1
/dev/mmcblk1p1 * 2048 165887 81920 40M c W95 FAT32 (LBA)
root@am57xx-evm:/boot# mkfs.vfat -s1 -F 32 -n "boot" /dev/mmcblk1p1
mkfs.fat 4.1 (2017-01-24)
root@am57xx-evm:/boot#
root@am57xx-evm:/boot# mkfs.vfat -s2 -F 32 -n "boot" /dev/mmcblk1p1
mkfs.fat 4.1 (2017-01-24)
WARNING: Not enough clusters for a 32 bit FAT!
root@am57xx-evm:/boot#
.
.
.
.
root@am57xx-evm:/boot# fdisk -l /dev/mmcblk1
/dev/mmcblk1p1 * 2048 165887 163840 80M c W95 FAT32 (LBA)
root@am57xx-evm:/boot# mkfs.vfat -s2 -F 32 -n "boot" /dev/mmcblk1p1
mkfs.fat 4.1 (2017-01-24)
root@am57xx-evm:/boot#