首页 > 系统相关 >嵌入式Linux系统磁盘空间问题

嵌入式Linux系统磁盘空间问题

时间:2024-10-12 23:18:23浏览次数:15  
标签:创建 gdisk dev 嵌入式 磁盘空间 mmcblk1p5 Linux 挂载 我们

问题描述:

我的系统板是stm32mp157,属于mpu,搭载了嵌入式Linux系统,我将系统通过STM32CubeProgrammer烧录在了一张32g的sd卡上,可是系统烧录完毕启动板子后,使用命令df -h查看发现磁盘空间只有1个多g,如下图

上网查看,问题可能出在我的系统是由buildroot进行构建的,某些嵌入式系统的构建工具(如 Yocto 或 Buildroot)可能只使用最小的必要空间来创建镜像,因此设备启动后,未使用的存储空间仍保持空闲,除非进行手动分区或调整。 

问题解决:

我们进入根文件系统之后,可以在/dev/下看到有很多 mmcblkXpY 的设备文件,这里如果大家把 sd 卡也插到卡槽中,可以看到 mmcblk1 代表的是 sd 卡,mmcblk2 代表的是 emmc,我们根据自己启动的方式选择相应的序号。 

ls /dev/mmcblk*

(我这里多了个/dev/mmcblk1p5,原因是我的系统已经挂载了未分配的那部分空间产生的,后续我们将会创建这个分区) 

 然后输入

gdisk /dev/mmcblkX

X 代表 1 sd 卡,2 emmc。(这里作者使用的是sd卡,所以为 mmcblk1) 

我们首先保存重新使用gdisk一下,不然后面会报错(原因在于gdisk 有 bug,第一次打开不会加载剩余空间)

我们输入w,2 次选择都选择 y,就重新加载了gdisk了

重新加载完后我这里再次输入

gdisk /dev/mmcblkX

下面我们输入 n 创建一个分区,一路回车即可,创建好后输入 p  

可以看到我们创建的分区已经生成了 ,然后 w 保存,重启开发板。

重启完成后,可以看到/dev 下生成了一个 mmcblkXpY你刚刚创建的编号的一个设备文件,这就说明我们完成了分区表的创建。 

 

下面我们需要格式化这个分区,格式为 ext4。mkfs.ext4 /dev/mmcblkXpY,Y 为你刚刚创建的编号  

mkfs.ext4 /dev/mmcblk1p5

 格式化完成后,我们挂载到 root 目录下(这里挂载到一个空目录下即可)

mount /dev/mmcblk1p5 /root/

然后输入 df -h 就可以看到挂载完成了。这样就创建好了我们新的分区目录,就可以将我们想要拷贝的内容存放到这里了。

 

挂载完成后,我们还可以配置自动挂载,这样我们只要没有重新烧录系统,就可以开机自动挂载了 

首先使用 vi 打开/etc/fstab 

 

可以看到这里有自动挂载 rootfs 的代码,我们按照上面这个代码,将 root 换成我们自己的设备文件.我这里是/dev/mmcblk1p5,然后上面的代码挂载点为/,我们这里就不能用/了,不然会导致两个点都在用/,就是共用 rootfs,没有实现我们扩容的效果,我这里推荐大家使用/root,因为启动系统就进入了,其他的就都一样了,示例: /dev/mmcblk1p5 /root auto rw 0 1 

然后 reboot 重启,重启完成 df -h,发现挂载成功就可以了 

标签:创建,gdisk,dev,嵌入式,磁盘空间,mmcblk1p5,Linux,挂载,我们
From: https://blog.csdn.net/m0_73406058/article/details/142891015

相关文章

  • openEuler、Linux操作系统常见操作-(6)如何登录Linux
    如何登录Linux·Linux登陆方式主要有如下两种: 。本地登陆   。一个典型的Linux系统将运行六个虚拟控制台和一个图形控制台,openEuler目前暂未支持图形化界面;·可以通过Ctrl+Alt+F[1-6]在6个虚拟控制台之间进行切换。远程登录。默认情况下openEuler支持......