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

以网络形式启动Linux系统后,通过挂载(mount)的方式,将eMMC存储器中旧的根文件系统所在逻辑2分区格式化,并解压新的根文件系统到逻辑2分区

阅读本文所需要的基础知识

eMMC存储器详解(存储区域结构、EXT_CSD[179]、各分区介绍、主要引脚、命令格式与类型、u-boot对eMMC的管理等)
https://blog.csdn.net/wenhao_ir/article/details/145967306

关于eMMC存储器在各种情况下的分区编号和名字的问题
https://blog.csdn.net/wenhao_ir/article/details/146088727

以网络形式启动Linux系统

按博文 https://blog.csdn.net/wenhao_ir/article/details/145822475 中记录的方法连接好网线、路由器,设置好u-boot的环境变量,设置好Ubuntu系统的TFTP服务、根文件挂载目录,然后以网络形式启动Linux系统。

具体方法请在博文 https://blog.csdn.net/wenhao_ir/article/details/145822475 中搜索关键词“【启动系统】设置好u-boot的相关环境变量”。

启动之后的截图如下:
在这里插入图片描述

查看下eMMC的分区情况

具体的查看方法和相关知识见博文 https://blog.csdn.net/wenhao_ir/article/details/146088727 【搜索“在Linux中的分区名字和编号问题”】

请在查看下面的内容前务必看一看上面这篇博文中的相关内容。

在这里,我运行命令 cat /proc/partitions的结果如下:

cat /proc/partitions

在这里插入图片描述
命令fdisk -l /dev/mmcblk*的运行结果如下:

fdisk -l /dev/mmcblk*

在这里插入图片描述
从中可以看到eMMC各分区的设备节点的详细信息。从中我们可以看出,eMMC的User Area区的设备文件名为mmcblk1,其中的1代表着eMMC存储器在SD/MMC 总线上的 SD/MMC 控制器的编号为1。
User Area区被划分为了三个逻辑分区,分别为mmcblk1p1、mmcblk1p2、mmcblk1p3。
由于逻辑分区mmcblk1p2的大小为1GB,并且类型为Linux类型(即文件系统为ext4类型),所以我们就把我们的根文件系统放在这里面,由于文件系统放在这里面,自然内核镜像和设备树也放在这里面了呗,因为内核镜像和设备树文件都放于文件系统的目录/boot中嘛。

所以接下来我们要把mmcblk1p2挂载到我们已经启动的Linux内核上

查看逻辑分区mmcblk1p2的文件系统类型

可以用下面的命令查看查看逻辑分区mmcblk1p2的文件系统类型

blkid /dev/mmcblk1p2

运行结果如下:
在这里插入图片描述
可见,逻辑分区mmcblk1p2的文件系统类型是“ext4”类型。

逻辑分区mmcblk1p2挂载到我们已经启动的Linux内核上

首先在根目录下创建挂载目录mnt_p2

cd /
mkdir mnt_p2

在这里插入图片描述

如果按上面一个目录确认了逻辑分区mmcblk1p2的文件系统类型是“ext4”类型,则可以用下面的命令进行挂载:

mount -t ext4 /dev/mmcblk1p2 /mnt_p2

在这里插入图片描述

上面的运行结果显示挂载成功了,我们查看下里面有没有内容:

cd /mnt_p2
ls

在这里插入图片描述
可见,里面是某个版本的根文件系统的,为了写进我们的新的根文件系统,我们可以先对逻辑分区mmcblk1p2进行格式化操作。

对逻辑分区mmcblk1p2进行格式化操作

在格式化操作前,先把上面的挂载取消,运行下面的命令取消挂载:

先回到根目录,即退出挂载目录:

cd /

然后执行下面的命令解除挂载:

umount /mnt_p2

在这里插入图片描述
用下面的命令确认mmcblk1p2已无任何挂载操作:

mount | grep mmcblk1p2

运行结果如下:
在这里插入图片描述
可见它还挂载在目录/run/media/mmcblk1p2下,所以我们还需执行下面的命令解除它与目录/run/media/mmcblk1p2的挂载操作:

umount /dev/mmcblk1p2

在这里插入图片描述
然后再次查看mmcblk1p2还有没有别的挂载目录:
在这里插入图片描述
这下彻底没有了。

确认已经完全解除挂载后,接着执行下面的命令对逻辑分区mmcblk1p2进行格式化操作:

mkfs.ext4 /dev/mmcblk1p2

在这里插入图片描述
在这里插入图片描述
上面的命令结果表明格式化成功。

我们再次将/run/media/mmcblk1p2挂载到目录/mnt_p2,看下里面还有没有内容:

mount -t ext4 /dev/mmcblk1p2 /mnt_p2

在这里插入图片描述

cd /mnt_p2
ls

在这里插入图片描述
从运行结果来看,啥都没有了~

压缩文件放到网络启动的根文件系统的目录中

准备放于eMMC的User Area区的第2逻辑分区的根文件系统的压缩包文件的百度网盘下载载地址:
https://pan.baidu.com/s/1NUnuC9dzBFS9oOC0EhjarQ?pwd=qcyz

现在我们把这个压缩文件放到网络启动的根文件系统的目录中。
在这里插入图片描述

解压压缩文件到逻辑分区mmcblk1p2

然后运行下面的命令解压到挂载目录/mnt_p2中,这样就相当于把新的根文件系统放到了MMC的User Area区的第2逻辑分区中。

tar -xjf /home/new_rootfs/imx-image-full-imx6ull14x14evk-20201209093926.rootfs.tar.bz2 -C /mnt_p2

由于这个压缩文件比较大(195.73MB),并且压缩率比较高,所以执行完后成,请耐心等待解压完成…
开始时间:2025-03-09 12:22:07…
结束时间:不知道具体的时间,但是当我外出吃完饭回到电脑前的时候(2025-03-09 13:22:25)已经完成了。
解压完成后的截图如下:
在这里插入图片描述

解压完成后我们查看下逻辑分区mmcblk1p2的挂载目录/mnt_p2中有没有相应的文件了。

cd /mnt_p2
ls

在这里插入图片描述
从结果来看,有了…

接下来,可以利用以网络形式启动的Linux系统把内核镜像zImage和设备树文件imx6ull-14x14-evk.dtb复制到目录/mnt_p2/boot中,然后设备好u-boot的相关环境变量就可以利用存储在eMMC中的u-boot、根文件系、内核、设备完整启动整个Linux系统了,详情见我的另一篇博文 https://blog.csdn.net/wenhao_ir/article/details/145953214

相关文章:

  • 【Linux文件IO】标准IO详情(1)
  • kubernetes——part3-5 核心概念 Service
  • 知识图谱相关的Terse RDF Triple Language 文件格式介绍
  • 如何提高域名解析速度?
  • yolov8 画不同训练的损失函数对比图
  • 电力场景绝缘子缺陷分割数据集labelme格式1585张4类别
  • 【STM32MP157系统移植】3.TF-A目录结构
  • 热图回归(Heatmap Regression)
  • 【人工智能】卷积神经网络的奥秘:深度学习的视觉革命
  • 手太阴肺经之经渠穴
  • 【c++】平移字符串
  • 百问网提供的烧写工具将各镜像文件烧写到eMMC存储器的各脚本的解析
  • AI赋能医疗:仅靠想象就能控制机械臂,近屿智能AI培训新选择
  • 高并发下订单库存防止超卖策略
  • 【Python】为什么要写__init__.py
  • 通义万相2.1开源版本地化部署攻略,生成视频再填利器
  • hadoop第3课(hdfs shell常用命令)
  • 2025年渗透测试面试题总结-小某鹏汽车-安全工程师(题目+回答)
  • 苹果 M3 Ultra 芯片深度解析:AI 时代的性能革命
  • deepseek为什么要开源
  • 网络推广培训课程4万/seo最新优化技术
  • 电商设计师常用的网站/中国进入一级战备状态了吗
  • 广州一起做的网站/谷歌seo优化
  • 广东省广州市番禺区/seo优化快速排名
  • wordpress网站实例/百度 竞价排名
  • 北京网站建设价格低/今天刚刚发生的重大新闻