揭秘 eMMC 存储扩容:找回 “消失” 空间的简便之道

揭秘 eMMC 存储扩容:找回 "消失" 空间的简便之道

概要

在使用编译好的固件烧写系统启动后,你是否遇到过这样的困惑:明明硬件 eMMC 存储为 32G,可系统显示的用户分区却仅有 812M。常规修改固件分区表来调整的方法较为繁琐,本文将带你验证一种更为简便的方式,轻松找回那些 "消失" 的 eMMC 存储空间。

问题分析

系统启动后,通过执行相关命令查看分区信息,能清晰了解当前系统的存储分配状况:

bash 复制代码
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       812M  664M   91M  88% /
tmpfs           512K     0  512K   0% /dev
tmpfs           987M   19M  968M   2% /tmp
cgroup          987M     0  987M   0% /sys/fs/cgroup

# lsblk
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
mmcblk0      179:0    0 28.9G  0 disk 
├─mmcblk0p1  179:1    0    4M  0 part 
├─mmcblk0p2  179:2    0    4M  0 part 
├─mmcblk0p3  179:3    0   64M  0 part 
├─mmcblk0p4  179:4    0   64M  0 part 
├─mmcblk0p5  179:5    0   32M  0 part 
├─mmcblk0p6  179:6    0    6G  0 part /
├─mmcblk0p7  179:7    0  128M  0 part 
└─mmcblk0p8  179:8    0 22.6G  0 part 
mmcblk0boot0 179:32   0    4M  1 disk 
mmcblk0boot1 179:64   0    4M  1 disk 
zram0        254:0    0    0B  0 disk 

从上述信息可知,分区mmcblk0p6被挂载为根分区,而拥有 22.6G 空间的mmcblk0p8却处于闲置状态,这便是存储空间未被充分利用的症结所在。

解决过程

  1. 初次挂载尝试 :尝试挂载mmcblk0p8分区到/mnt/目录,然而,执行df -h命令查看时,却发现并未显示其实际大小:
bash 复制代码
mount /dev/mmcblk0p8 /mnt/
df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       812M  664M   91M  88% /
tmpfs           512K     0  512K   0% /dev
tmpfs           987M   20M  967M   2% /tmp
cgroup          987M     0  987M   0% /sys/fs/cgroup
/dev/mmcblk0p8   23G   24K   21G   1% /mnt

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       812M  664M   91M  88% /
tmpfs           512K     0  512K   0% /dev
tmpfs           987M   19M  968M   2% /tmp
cgroup          987M     0  987M   0% /sys/fs/cgroup
/dev/mmcblk0p8  4.0M  283K  3.5M   8% /mnt
  1. 格式化与重新挂载 :为解决这一问题,需先对/dev/mmcblk0p8进行格式化操作。格式化使用mkfs.ext4命令,此命令将在该分区创建一个 ext4 文件系统:
bash 复制代码
# mkfs.ext4 /dev/mmcblk0p8
mke2fs 1.46.5 (30 - Dec - 2021)
/dev/mmcblk0p8 contains a ext2 file system labelled 'userdata'
    last mounted on Wed Dec 20 16:54:25 2023
Proceed anyway? (y,N) y
Discarding device blocks: done                            
Creating filesystem with 5926904 4k blocks and 1482752 inodes
Filesystem UUID: af5f8523 - e705 - 4b11 - 8615 - 7c28df16aecb
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done  

格式化完成后,卸载之前的挂载点,重新挂载/dev/mmcblk0p8/mnt/。此时再次执行df -hlsblk命令查看,分区大小已显示正常:

bash 复制代码
# umount /mnt/
# mount /dev/mmcblk0p8 /mnt/
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       812M  664M   91M  88% /
tmpfs           512K     0  512K   0% /dev
tmpfs           987M   20M  967M   2% /tmp
cgroup          987M     0  987M   0% /sys/fs/cgroup
/dev/mmcblk0p8   23G   24K   21G   1% /mnt

# lsblk 
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
mmcblk0      179:0    0 28.9G  0 disk 
├─mmcblk0p1  179:1    0    4M  0 part 
├─mmcblk0p2  179:2    0    4M  0 part 
├─mmcblk0p3  179:3    0   64M  0 part 
├─mmcblk0p4  179:4    0   64M  0 part 
├─mmcblk0p5  179:5    0   32M  0 part 
├─mmcblk0p6  179:6    0    6G  0 part /
├─mmcblk0p7  179:7    0  128M  0 part 
└─mmcblk0p8  179:8    0 22.6G  0 part /root
mmcblk0boot0 179:32   0    4M  1 disk 
mmcblk0boot1 179:64   0    4M  1 disk 
zram0        254:0    0    0B  0 disk

配置永久生效

为使上述挂载配置在系统重启后依然生效,需对fstab文件进行相应设置。

  1. 导出 fstab 配置 :通过执行block detect > /etc/config/fstab命令,导出当前系统的fstab配置信息。查看该文件内容如下:
bash 复制代码
# cat  /etc/config/fstab 
config 'global'
    option	anon_swap	'0'
    option	anon_mount	'0'
    option	auto_swap	'1'
    option	auto_mount	'1'
    option	delay_root	'5'
    option	check_fs	'0'

config'mount'
    option	target	'/mnt'
    option	uuid	'af5f8523 - e705 - 4b11 - 8615 - 7c28df16aecb'
    option	enabled	'0'
  1. 修改 fstab 配置 :对/etc/config/fstab文件内容进行修改,将挂载目标设为/root,并将enabled选项设为1,使能系统自动挂载mmcblk0p8/root
bash 复制代码
config'mount'
    option	target	'/root'
    option	uuid	'af5f8523 - e705 - 4b11 - 8615 - 7c28df16aecb'
    option	enabled	'1'
  1. 验证配置生效 :重启系统后,再次执行df -h命令查看,确认挂载配置已生效,/dev/mmcblk0p8分区已正确挂载到/root目录,且空间大小显示正常:
bash 复制代码
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       812M  608M  147M  81% /
tmpfs           512K     0  512K   0% /dev
tmpfs           987M   18M  969M   2% /tmp
cgroup          987M     0  987M   0% /sys/fs/cgroup
/dev/mmcblk0p8   23G   57M   21G   1% /root

通过以上步骤,我们成功地以一种简便的方式找回了 eMMC 存储中 "消失" 的空间,并使其配置在系统重启后持续生效,为系统存储资源的充分利用提供了有效解决方案。希望本文能为遇到类似问题的开发者和技术爱好者带来帮助。

相关标签:#eMMC 存储 #系统分区 #挂载配置 #Openwrt 系统

相关推荐
CoderJia程序员甲21 小时前
GitHub 热榜项目 - 日榜(2026-02-05)
ai·开源·大模型·github·ai教程
LeoZY_21 小时前
开源项目精选:Dear ImGui —— 轻量高效的 C++ 即时模式 GUI 框架
开发语言·c++·ui·开源·开源软件
开源能源管理系统1 天前
MyEMS开源能源管理系统:赋能食品制造业绿色高效生产
开源·能源·能源管理系统
Coco恺撒1 天前
【脑机接口】难在哪里,【人工智能】如何破局(2.研发篇)
人工智能·深度学习·开源·人机交互·脑机接口
张3蜂1 天前
身份证识别接口方案
人工智能·python·开源
梦梦代码精1 天前
Gitee 年度人工智能竞赛开源项目评选揭晓!!!
开发语言·数据库·人工智能·架构·gitee·前端框架·开源
开源能源管理系统1 天前
MyEMS开源能源管理系统——实操导向,生态共建,解锁工业节能减碳新价值
开源·能源·能源管理系统·零碳工厂
万岳软件开发小城1 天前
同城O2O系统如何支撑高并发?外卖跑腿系统源码架构深度拆解
开源·同城外卖系统源码·外卖跑腿小程序·同城o2o系统源码·外卖软件开发·外卖平台搭建
开源能源管理系统1 天前
MyEMS开源能源管理系统:赋能化学药品原料药制造业绿色低碳转型
开源·能源·能源管理系统
dblens 数据库管理和开发工具1 天前
开源向量数据库比较:Chroma, Milvus, Faiss,Weaviate
数据库·开源·milvus·faiss·chroma·weaviate