查看分区格式
代码语言:javascript复制# df -hT
// ext4 文件格式
Filesystem Type Size Used Available Use% Mounted on
/dev/system ext4 2.0G 112.4M 1.8G 6% /
devtmpfs devtmpfs 107.2M 0 107.2M 0% /dev
tmpfs tmpfs 116.5M 0 116.5M 0% /dev/shm
tmpfs tmpfs 116.5M 1004.0K 115.5M 1% /tmp
tmpfs tmpfs 116.5M 36.0K 116.5M 0% /run
/dev/data ext4 613.9M 976.0K 568.2M 0% /data
[root@buildroot /]# df -hT
// ubifs 文件格式
Filesystem Type Size Used Available Use% Mounted on
/dev/ubi0_0 ubifs 78.7M 67.0M 11.7M 85% /
devtmpfs devtmpfs 106.9M 0 106.9M 0% /dev
tmpfs tmpfs 116.5M 0 116.5M 0% /dev/shm
tmpfs tmpfs 116.5M 2.3M 114.2M 2% /tmp
tmpfs tmpfs 116.5M 36.0K 116.5M 0% /run
/dev/ubi1_0 ubifs 86.0M 66.2M 15.4M 81% /data
/dev/ubi1_1 ubifs 16.8M 92.0K 15.8M 1% /etc/sugr
/dev/ubi1_2 ubifs 16.8M 32.0K 15.9M 0% /cache
查看具体的分区大小
代码语言:javascript复制//ext4文件系统
cat /proc/inand
dev: size erasesize name
inand01: 400000 80000 "bootloader"
inand02: 4000000 80000 "reserved"
inand03: 20000000 80000 "cache"
inand04: 800000 80000 "env"
inand05: 2000000 80000 "logo"
inand06: 2000000 80000 "recovery"
inand07: 800000 80000 "rsv"
inand08: 800000 80000 "tee"
inand09: 2000000 80000 "crypt"
inand10: 2000000 80000 "misc"
inand11: 400000 80000 "instaboot"
inand12: 2000000 80000 "boot"
inand13: 82000000 80000 "system"
inand14: 28000000 80000 "data"
//ubifs 文件系统
cat /proc/mtd
dev: size erasesize name
mtd0: 00200000 00020000 "bootloader"
mtd1: 00800000 00020000 "tpl"
mtd2: 00200000 00020000 "logo"
mtd3: 01000000 00020000 "recovery"
mtd4: 00f00000 00020000 "boot"
mtd5: 06480000 00020000 "system"
mtd6: 01400000 00020000 "config"
mtd7: 01400000 00020000 "cache"
mtd8: 14280000 00020000 "data"
计算Flash大小
代码语言:javascript复制# cat /proc/partitions
major minor #blocks name
7 0 102400 loop0
7 1 102400 loop1
179 0 3702784 mmcblk0
179 1 4096 mmcblk0p1
179 2 65536 mmcblk0p2
179 3 524288 mmcblk0p3
179 4 8192 mmcblk0p4
179 5 32768 mmcblk0p5
179 6 32768 mmcblk0p6
179 7 8192 mmcblk0p7
179 8 8192 mmcblk0p8
179 9 32768 mmcblk0p9
179 10 32768 mmcblk0p10
179 11 4096 mmcblk0p11
179 12 32768 mmcblk0p12
179 13 2129920 mmcblk0p13
179 14 655360 mmcblk0p14
179 96 512 mmcblk0rpmb
179 64 2048 mmcblk0boot1
179 32 2048 mmcblk0boot0
//计算方法
blocks 设备总块数 (1024 Bytes/block)
计算方法: blocks / 1024 = ??MB
如上: 3702784 / 1024 = 3616MB 大概3.5GB
代码语言:javascript复制[root@buildroot /]# cat /proc/partitions
major minor #blocks name
31 0 2048 mtdblock0
31 1 8192 mtdblock1
31 2 2048 mtdblock2
31 3 16384 mtdblock3
31 4 15360 mtdblock4
31 5 102912 mtdblock5
31 6 20480 mtdblock6
31 7 20480 mtdblock7
31 8 330240 mtdblock8
//计算方法
2048 8192 2048 16384 15360 102912 20480 20480 330240=518144
518144/1024=506MB
固件说明
文件系统的格式改为ext4之后,编译出来的固件有两种1
代码语言:javascript复制// raw ext4 image 其特点是完整的ext2 分区镜像(包含很多全零的无效填充区),可以直接使用mount进行挂载,因此比较大,编译出来的2GB
ls -alh rootfs.ext2
-rw-r--r-- 1 xxx xxx 2.0G 10月 21 17:14 rootfs.ext2
➜ images >file rootfs.ext2
rootfs.ext2: Linux rev 1.0 ext4 filesystem data, UUID=9bcf3fbf-9dc4-4817-b18d-5dbe1b356164 (extents)
// 另一种是sparse ext2 image,是一个非常普通的dat文件。由于它将raw ext2进行稀疏描述,因此尺寸比较小(没有全零的无效填充区) 113M
ls -alh rootfs.ext2.img2simg
-rw-r--r-- 1 xxx xxx 113M 10月 21 17:14 rootfs.ext2.img2simg
➜ images >file rootfs.ext2.img2simg
rootfs.ext2.img2simg: Android sparse image, version: 1.0, Total of 524288 4096-byte output blocks in 1006 input chunks.
知识点
- 为什么eMMC文件系统采用ext4格式 ? eMMC内置控制器用于处理坏块等问题,根本不需要类似ubifs文件系统中集成去处理
- Linux下查询磁盘空间和扩充磁盘空间
- sparse image
- simg2img ↩︎