揭秘 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 系统

相关推荐
SeaTunnel8 小时前
Apache SeaTunnel 2025 案例精选重磅发布!
大数据·开源·apache·seatunnel·案例
猫头虎10 小时前
Claude Code 永动机:ralph-loop 无限循环迭代插件详解(安装 / 原理 / 最佳实践 / 避坑)
ide·人工智能·langchain·开源·编辑器·aigc·编程技术
Codebee11 小时前
OoderAI 企业级 AI 解决方案
人工智能·开源
大厂技术总监下海11 小时前
可视化编排 + AI Copilot + 私有知识库:Sim如何打造下一代AI智能体开发平台?
人工智能·开源·copilot
大厂技术总监下海12 小时前
你的个人AI工作站已就绪:Ollama开源框架,支持多模态、可定制、一键部署
人工智能·机器学习·开源
STCNXPARM12 小时前
Android14显示系统 - 开源图形库Mesa3d
3d·开源·mesa3d·android图形库·opengl-es
秋天的一阵风13 小时前
🎥解决前端 “复现难”:rrweb 录制回放从入门到精通(下)
前端·开源·全栈
de之梦-御风14 小时前
【电视投屏】针对“局域网投屏开源项目(Android 手机 ↔ Android TV)
android·智能手机·开源
孙琦Ray14 小时前
GitHub开源项目日报 · 2026年1月7日 · 本期热门开源全景
单元测试·开源·前端调试·浏览器自动化·知识管理·ai代理·跨语言序列化
墨染天姬14 小时前
【AI】OCR开源模型排行
人工智能·开源·ocr