当前位置: 首页 > news >正文

嵌入式Linux(以泰山派无 eMMC 版为例,嘉立创给的Linux镜像有问题!)系统报错磁盘不够但我用的是32G不可能不够怎么解决

以泰山派无 eMMC 版为例,嘉立创给的Linux镜像有问题!我也不清楚他没什么这样做,可能是因为他们考虑到但大部分人用的都是8G以上所以他们也默认你用的是8G卡,这样你就算用323G也能正常使用只不过资源太少了
  1. ​
    你挂在完之后一定要配置下次自动挂载不然你这只是临时挂载,你一重启就没了:
    关键:配置 “自动挂载”,避免重启后失效
    手动挂载的分区重启后会消失,需要修改 /etc/fstab 文件配置自动挂载,步骤如下:blkid /dev/mmcblk1p8/dev/mmcblk1p8: UUID="12345678-1234-1234-1234-1234567890ab" TYPE="ext4"  # 记下UUID和TYPE# 用nano编辑fstab(如果没有nano,用vi也可以)
    nano /etc/fstabUUID=12345678-1234-1234-1234-1234567890ab  /mnt/large_storage  ext4  defaults  0  2解释参数:defaults 表示默认挂载选项(可读可写、自动检测);0 2 表示不备份、开机检查分区。# 先卸载分区
    umount /mnt/large_storage
    # 再用fstab配置重新挂载所有分区
    mount -a
    # 查看是否挂载成功
    df -h | grep /mnt/large_storage​

你用下面方法挂载的磁盘不是默认磁盘,下载安装软件时记得有c d盘那样的意识防止爆满

https://blog.csdn.net/2301_80317247/article/details/152723453?fromshare=blogdetail&sharetype=blogdetail&sharerId=152723453&sharerefer=PC&sharesource=2301_80317247&sharefrom=from_link

嘉立创这么做的核心原因是避免镜像烧录失败

  • 若镜像采用 “动态扩展分区”,需在首次启动时自动识别 SD 卡容量并调整分区大小,这会增加镜像复杂度(需适配不同 SD 卡芯片、处理分区扩容异常);
  • 固定 8G 适配的分区表,能确保 8G、16G、32G、64G 卡都能 “一次烧录成功启动”,降低新手使用门槛(但忽略了大 SD 卡用户的空间利用需求)。

解决方案:激活 32G 卡的 “闲置空间”,充分利用容量见下方:

嵌入式 Linux(泰山派无 eMMC 版)32G SD 卡报 “磁盘不够” 解决方案

一、问题背景

泰山派无 eMMC 版嵌入式 Linux 系统(Ubuntu 20.04 LTS)中,明明使用 32G SD 卡(实际容量~29.7G),却频繁报错 “磁盘空间不足”:

  • df -h / 显示根分区 /dev/root(实际为 /dev/mmcblk1p6)100% 占用(5.9G 总容量,可用空间为 0);
  • 无法安装软件(如 openssh-server)、配置 WiFi,甚至基本命令执行失败;
  • 硬件层面确认 SD 卡无损坏,且 32G 容量理论上足以支撑系统 + 常用软件(如 OpenCV)。

二、核心原因排查

通过命令排查,发现 32G SD 卡的 “空间浪费” 问题,主要原因如下:

  1. 根分区未扩容:系统默认仅将 SD 卡的 5.9G(/dev/mmcblk1p6)设为根分区,剩余 23.4G 空间存于未正确识别的 /dev/mmcblk1p8 分区;
  2. 无效交换文件占用:根分区存在 2.1G 的 /swapfile(未启用却占用空间);
  3. 大分区文件系统损坏:23.4G 的 /dev/mmcblk1p8 分区默认格式为 ext2,且误挂载到 /userdata,系统识别为 4M 小分区;
  4. 系统日志 / 缓存累积/var/log/var/cache 目录堆积大量日志和安装缓存。

三、完整解决方案(分步骤执行)

以下操作均在泰山派本地终端执行(需连接显示器和键盘,待 SSH 配置完成后可远程操作),所有命令均标注作用和注意事项。

1. 紧急释放根分区空间(解决 “无法执行命令” 问题)

根分区 100% 占用时,需先删除非核心文件腾出操作空间(至少 100MB):

# 1. 删除APT缓存(释放几百MB,最直接有效)
sudo rm -rf /var/cache/apt/archives/*# 2. 删除旧系统日志(非核心文件,删除不影响系统启动)
sudo rm -rf /var/log/*# 3. 删除临时文件
sudo rm -rf /tmp/*# 4. 验证是否释放空间(此时Avail应显示>0)
df -h /

2. 排查 SD 卡分区表,找到 “隐藏的 23.4G 大分区”

泰山派无 eMMC 版 SD 卡通常被识别为 /dev/mmcblk1(非默认的 /dev/mmcblk0),需确认分区结构:

# 查看SD卡(mmcblk1)完整分区表
fdisk -l /dev/mmcblk1

预期输出关键信息(确认大分区位置):

Device            Start      End  Sectors  Size Type
/dev/mmcblk1p6   360448 12943359 12582912    6G unknown  # 根分区(5.9G)
/dev/mmcblk1p8 13205504 62333887 49128384 23.4G unknown  # 未识别的大分区

3. 清理无效 swapfile(释放 2.1G 根分区空间)

根分区中的 /swapfile 未启用却占用大量空间,直接删除:

# 1. 尝试关闭swap(若提示“Invalid argument”,说明未启用,直接跳过)
sudo swapoff /swapfile 2>/dev/null# 2. 删除无效swapfile
sudo rm -rf /swapfile# 3. 删除/etc/fstab中swapfile的残留配置(避免开机报错)
sudo sed -i '/swapfile/d' /etc/fstab# 4. 验证空间(此时根分区可用应>2G)
df -h /

4. 修复并挂载 23.4G 大分区(长期解决空间问题)

/dev/mmcblk1p8 是真正的大分区,需修复文件系统并挂载到系统:

步骤 4.1 卸载大分区的默认挂载点(/userdata)

系统默认将 mmcblk1p8 挂载到 /userdata,需先卸载:

# 1. 查看当前挂载状态
mount | grep /dev/mmcblk1p8  # 输出类似:/dev/mmcblk1p8 on /userdata type ext2# 2. 卸载/userdata(若提示“device is busy”,先杀进程)
sudo umount /userdata# 3. 验证卸载(无输出则成功)
mount | grep /dev/mmcblk1p8
步骤 4.2 格式化大分区为 ext4(修复容量识别)

将原 ext2 格式化为 ext4(支持大容量,稳定可靠):

# 强制格式化mmcblk1p8为ext4(-F跳过交互确认,数据安全:该分区无重要数据)
sudo mkfs.ext4 -F /dev/mmcblk1p8

格式化成功标志:输出包含 Creating filesystem with 6141048 4k blocks(对应 23.4G 容量)。

步骤 4.3 挂载大分区并配置自动挂载
# 1. 创建挂载目录(固定路径,方便管理)
sudo mkdir -p /mnt/large_storage# 2. 临时挂载大分区
sudo mount /dev/mmcblk1p8 /mnt/large_storage# 3. 验证容量(关键!确认显示23G)
df -h /mnt/large_storage  # 预期:/dev/mmcblk1p8   23G   45M   22G   1%# 4. 配置开机自动挂载(避免重启失效)
# 4.1 获取大分区UUID(唯一标识,防止设备名变化)
p8_uuid=$(blkid /dev/mmcblk1p8 | awk -F '"' '{print $2}')# 4.2 写入/etc/fstab(添加自动挂载配置)
echo "UUID=$p8_uuid /mnt/large_storage ext4 defaults 0 2" | sudo tee -a /etc/fstab# 4.3 测试自动挂载(无报错则成功)
sudo umount /mnt/large_storage
sudo mount -a  # 重新加载fstab
df -h /mnt/large_storage  # 确认再次挂载成功

四、核心问题总结

问题现象根本原因解决方案
32G SD 卡报磁盘不足根分区仅 5.9G,23.4G 大分区未识别格式化并挂载 mmcblk1p8 到 /mnt/large_storage
根分区 100% 占用2.1G 无效 swapfile + 日志缓存累积删除 swapfile 和日志文件
SSH 登录 Access deniedPermitRootLogin 默认禁止 root 密码登录修改 sshd_config 为 PermitRootLogin yes
大分区挂载后显示 4M原 ext2 文件系统损坏,默认挂载到 /userdata重新格式化为 ext4 并指定挂载点

五、后续空间管理建议

  1. 大文件存大分区:安装 OpenCV、Python 大库时,指定路径到 /mnt/large_storage
    # 示例:pip安装OpenCV到大分区
    pip install opencv-python --target=/mnt/large_storage/python_libs
    
  2. 定期清理缓存:每月执行一次,避免根分区再次满溢:
    sudo apt-get clean && sudo rm -rf /var/log/*
    
  3. 避免冗余软件:嵌入式系统优先安装轻量版软件(如 python3-opencv 而非完整版 OpenCV)。

通过以上步骤,可彻底解决 32G SD 卡 “磁盘不够” 的问题,同时实现 SSH 远程管理,让泰山派嵌入式 Linux 系统稳定运行。

http://www.dtcms.com/a/457053.html

相关文章:

  • 开源一个本地AI知识库
  • js哈哈哈哈哈哈哈哈哈哈
  • 做外汇都要看什么网站多元网站建设
  • 一些主要应用和NAT
  • AI编程开发系统028-基于Vue+SpringBoot的宠物领养系统系统(源码+部署说明+演示视频+PPT+lw)
  • MySQL连接池原理与网站数据流动(了解)
  • Hadess入门到实战(8) - 如何管理Go制品
  • 最短路径问题总结
  • 建设银行网站为什么登不上门头设计
  • NX543NX551美光SSD固态闪存NX552NX564
  • 倍增:快速幂
  • 网站关键词快速排名工具网站建设项目可行性分析
  • 开源AI智能名片链动2+1模式S2B2C商城小程序在现代营销运营中的应用与实践
  • 自然语言处理分享系列-词向量空间中的高效表示估计(二)
  • 开发Bug——U盘插入断网
  • 开源 C++ QT QML 开发(十)通讯--串口
  • BMS(电池管理系统)的主要功能和架构简述
  • asp业务网站视频链接生成器
  • Flask模板中使用React、ant-design、@ant-design/icons示例模板
  • 站长源码之家网络营销中常用的营销策略
  • JAVA算法练习题day35
  • 德州做网站施工企业准则
  • 深圳网站建设十强河北省城乡住房和城乡建设厅网站
  • 数字增量式编码器:工业自动化的“精密神经元”
  • Spring AI-流式编程
  • 手写 Promise.all 的原理与实现
  • 关于windows系统事件查看器的初步理解
  • Linux 线程概念与虚拟地址空间深度解析
  • 一套智慧工地云平台源码,支持监管端、项目管理端,Java+Spring Cloud +UniApp +MySql技术开发
  • 虚幻引擎5 GAS开发俯视角RPG游戏 P05-05 游戏效果委托