[Linux驱动炼成记] 07-文件系统分区

查看分区格式

# 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

查看具体的分区大小

//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大小

# 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
[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

// 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.

知识点


  1. simg2img ↩︎

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励