从零开始学习 sg200x 多核开发之 TF 存储卡根文件系统扩容

入式 Linux 镜像制作时,考虑体积等因素,会把根文件系统做的比较小,镜像包较小,方便量产;有时,我们的 tf 或 emmc 的容量较大,烧写镜像后,有较大的空余空间未使用,现尝试把未分区的空间分配到跟文件系统中(存储介质连续)。

1、查看分区空间占用情况

[root@sg200x]~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root               232.0M      9.3M    204.8M   4% /
devtmpfs                 14.6M         0     14.6M   0% /dev
tmpfs                    14.7M         0     14.7M   0% /dev/shm
tmpfs                    14.7M      8.0K     14.7M   0% /tmp
tmpfs                    14.7M      4.0K     14.7M   0% /run
tmpfs                    14.7M      4.0K     14.7M   0% /run
tmpfs                    14.7M      8.0K     14.7M   0% /tmp
tmpfs                    14.7M         0     14.7M   0% /var/empty

2、列出计算机中的所有磁盘和分区

[root@sg200x]~# fdisk -l
Disk /dev/mmcblk0: 15 GB, 15720251392 bytes, 30703616 sectors
479744 cylinders, 4 heads, 16 sectors/track
Units: sectors of 1 * 512 = 512 bytesDevice       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type
/dev/mmcblk0p1    0,32,33     16,113,33         2048     264191     262144  128M 83 Linux
/dev/mmcblk0p2    16,113,34   49,20,35        264192     788479     524288  256M 83 Linux

总磁盘大小为15GB

  • /dev/mmcblk0p1 是 boot 分区
  • /dev/mmcblk0p2 是预装了一些命令
  • /dev/mmcblk0p3 是 root 分区
    这里要记住p2分区的起始地址,这个很重要

3、使用fdisk进入磁盘分区工具

  1. 输入 p,查看当前分区情况
  2. 输入 d,删除 p2 分区
  3. 输入 n,新建 p2 分区, 输入p2起始分区地址, 输入p2结束分区地地址 不输入直接回车就好,他会把剩下的内存都分配
  4. 输入 w,保存
[root@sg200x]~# fdisk /dev/mmcblk0The number of cylinders for this disk is set to 479744.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs(e.g., DOS FDISK, OS/2 FDISK)Command (m for help): p
Disk /dev/mmcblk0: 15 GB, 15720251392 bytes, 30703616 sectors
479744 cylinders, 4 heads, 16 sectors/track
Units: sectors of 1 * 512 = 512 bytesDevice       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type
/dev/mmcblk0p1    0,32,33     16,113,33         2048     264191     262144  128M 83 Linux
/dev/mmcblk0p2    16,113,34   49,20,35        264192     788479     524288  256M 83 LinuxCommand (m for help): d
Partition number (1-4): 2Command (m for help): n
Partition typep   primary partition (1-4)e   extended
p
Partition number (1-4): 2
First sector (16-30703615, default 16): 264192
Last sector or +size{,K,M,G,T} (264192-30703615, default 30703615): 
Using default value 30703615Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table
fdisk: WARNING: rereading partition table failed, kernel still uses old table: Resource busy

1> 记录需要调整分区的起始 StartLBA;
2> 删除需要调整的分区;
3> 创建新分区,起始位置输入第一步记录StartLBA的值;
4> 写入磁盘,此时执行fdisk -l,可以看到需要调整的分区,容量已经是调整过了,重启系统。

4、重启系统

$ reboot
  • 重启后,查看分区空间占用情况
[root@sg200x]~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root               223.7M     39.0M    166.8M  19% /
devtmpfs                 14.4M         0     14.4M   0% /dev
tmpfs                    14.5M         0     14.5M   0% /dev/shm
tmpfs                    14.5M     36.0K     14.5M   0% /tmp
tmpfs                    14.5M     20.0K     14.5M   0% /run
  • 列出计算机中的所有磁盘和分区
[root@sg200x]~# fdisk -l
Disk /dev/mmcblk0: 15 GB, 15720251392 bytes, 30703616 sectors
479744 cylinders, 4 heads, 16 sectors/track
Units: sectors of 1 * 512 = 512 bytesDevice       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type
/dev/mmcblk0p1    0,32,33     16,113,33         2048     264191     262144  128M 83 Linux
/dev/mmcblk0p2    1023,3,16   1023,3,16       264192   30703615   30439424 14.5G 83 Linux

5、调整大小

[root@sg200x]~# resize2fs  /dev/mmcblk0p2
resize2fs 1.46.2 (28-Feb-2021)
resize2fs: Resource busy while trying to open /dev/mmcblk0
Couldn't find valid filesystem superblock.
[root@sg200x]~# resize2fs  /dev/mmcblk0p2
resize2fs 1.46.2 (28-Feb-2021)
Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/mmcblk0p2 is now 3804928 (4k) blocks long.[root@sg200x]~# 

完成分区

加启动脚本里,即可完成分区。

EOF

在shell编程中,“EOF”通常与“<<”结合使用,“<<EOF” 表示后续的输入作为子命令或子shell的输入,直到遇到“EOF”,再次返回到主调用shell,可将其理解为分界符(delimiter)。

EOF是End of file的缩写,自定义终止符。

既然是分界符,那么形式自然不是固定的,这里可以将”EOF“可以进行自定义,但是前后的”EOF“必须成对出现且不能和shell命令冲突。其使用形式如下:

交互式程序 << EOF
command1
command2
...
EOF

”EOF“中间的内容将以标准输入的形式输入到”交互式程序“,当shell看到”<<“知道其后面输入的分界符,当shell再次看到分界符时,两个分界符中间的部分将作为标准输入。
"EOF"一般常和cat命令连用,通过cat配合重定向能够生成文件并追加操作,在它之前先熟悉几个特殊符号:
<:输入重定向

:输出重定向

:输出重定向,进行追加,不会覆盖之前的内容
<<:标准输入来自命令行的一对分隔号的中间内容

注意:最后的”EOF“必须单独占一行。

可以试试开启 Overlay,这种方式自动调整 overlay 分区到最大。

挂载第三个分区

感觉分给rootfs空间也够了,也可以sd卡把剩的空间分成第三个区,然后挂载到/media/下使用,存一些用户数据。

/etc/init.d/S99user启动脚本下面添加mount /dev/mmcblk0p3 /media/重启自动挂载

自动化处理

用工具烧录 img 后,除了 sd 卡有剩余部分没有被使用,每次都手动去操作较为麻烦,可通过脚本自动化处理。

#!/bin/sh# 判断磁盘是否已经剩余的部分进行了分区
if  (( $(fdisk -l /dev/mmcblk0|grep "^/dev/mmcblk0"|wc -l) > 2  ))
thenecho "mmcblk0 has completed partitioning the remaining space."mount /dev/mmcblk0p3  /media   exit  #退出脚本,后面的命令不再执行
fi# 第1步:磁盘分区
# 使用 fdisk 交互式方式创建分区,使用 here document 方式,解决交互式传递参数的问题
fdisk /dev/mmcblk0 <<EOF
p
n
p
3w
EOF
echo "##########Partitioning complete###############"
fdisk -l /dev/mmcblk0
echo "##############################################"# 第2步:格式化
mkfs.ext4 /dev/mmcblk0p3reboot

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/886439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Apache Paimon】-- 1 -- Apache Paimon 是什么?

目录 1、简介 2、概览 3、哪些场景可以使用 Paimon 4、周边生态 5、小结 6、参考 1、简介 我们听说过数据仓库、数据湖、数据湖仓,那你听说过流式数据仓库(Stream warehouse,简称:Streamhouse)吗?那我们今天就来解锁看看他们之中的新秀: Apache paimon 到底是什么…

[实战]SpringBoot使用MongoTemplate存储Float精度丢失问题

问题&#xff1a;使用SpringBoot2.x版本进行MongoDB的存储操作&#xff0c;Float类型数据出现精度丢失问题 解决方案如下&#xff1a; 情况一、字段类型为JSONObject进行存储时 设置值时采用Decimal128类型 Decimal128 value new Decimal128(new BigDecimal(declaredField.g…

Oracle 单机及 RAC 环境 归档模式及路径修改

Oracle 数据库的使用过程中经常会根据需求的不同而调整归档模式&#xff0c;也经常会修改归档文件存放路径。 下面分别演示单机及 RAC 环境下修改归档模式及路径的操作步骤。 一、单机环境 1.查询当前归档模式及路径 SQL> archive log list Database log mode …

用OMS进行 OceanBase 租户间数据迁移的测评

基本概念 OceanBase迁移服务&#xff08;&#xff0c;简称OMS&#xff09;&#xff0c;可以让用户在同构或异构 RDBMS 与OceanBase 数据库之间进行数据交互&#xff0c;支持数据的在线迁移&#xff0c;以及实时增量同步的复制功能。 OMS 提供了可视化的集中管控平台&#xff…

IDEA一键部署SpringBoot项目到服务器

安装Alibaba Cloud Toolkit插件 配置部署环境 1&#xff1a;设置服务名称 2&#xff1a;选择文件上传的类型 3:选择打包之后的jar文件 4: 添加需要上传的服务器信息 5:需要上传到服务器的地址 输入绝对路径 6: 选择上传文件后执行的脚本 可以参考另一篇文章 Linux启…

渗透测试之信息收集 DNS主机发现探测方式NetBIOS 协议发现主机 以及相关PorCheck scanline工具的使用哟

目录 主机发现 利用NetBIOS 协议发现主机 利用TCP/UDP发现主机 PorCheck scanline 利用DNS协议发现主机 主机发现 信息收集中的一项重要工作是发现内网中的主机、数据库、IP段网络设备、安全设备等资产&#xff0c;以便于更快地获取更多权限和密码&#xff0c;更加接近红…

打造专业问答社区:Windows部署Apache Answer结合cpolar实现公网访问

文章目录 前言1. 本地安装Docker2. 本地部署Apache Answer2.1 设置语言选择简体中文2.2 配置数据库2.3 创建配置文件2.4 填写基本信息 3. 如何使用Apache Answer3.1 后台管理3.2 提问与回答3.3 查看主页回答情况 4. 公网远程访问本地 Apache Answer4.1 内网穿透工具安装4.2 创建…

基于java的医院门诊信息管理系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数据…

67页PDF |埃森哲_XX集团信息发展规划IT治理优化方案(限免下载)

一、前言 这份报告是埃森哲_XX集团信息发展规划IT治理优化方案&#xff0c;报告中详细阐述了XX集团如何优化IT治理结构以适应新的要求。报告还分析了集团管控模式的变化&#xff0c;提出了六大业务中心的差异化管控策略&#xff0c;并探讨了这些变化对IT治理模式的影响。报告进…

Python基础学习-08字符串

目录 1、常见的字符串表达式 2、字符串函数 3、本节总结 1、常见的字符串表达式 1&#xff09; s “hello” 2&#xff09; s “张三说&#xff1a; \” 你好\”” 3&#xff09; ””” 多行字符串””” 4&#xff09; s1 s2 s1 * 3 5&#xff09; s[i…

ACIS的interop主要有哪些功能

‌ACIS的Interop组件‌主要用于实现不同3D应用程序之间的数据转换和集成。其主要功能包括&#xff1a; ‌数据转换‌&#xff1a;Interop组件能够对市场上流行的3D格式&#xff08;如CATIA V5、CATIA V4、IGES、STEP、VDA-FS、Pro/E、Parasolid、UG、SolidWorks、Inventor和AC…

【AI大模型】ELMo模型介绍:深度理解语言模型的嵌入艺术

学习目标 了解什么是ELMo.掌握ELMo的架构.掌握ELMo的预训练任务.了解ELMo的效果和成绩.了解ELMo的优缺点. 目录 &#x1f354; ELMo简介 &#x1f354; ELMo的架构 2.1 总体架构 2.2 Embedding模块 2.3 两部分的双层LSTM模块 2.4 词向量表征模块 &#x1f354; ELMo的预…

Java EE 技术基础知识体系梳理

1. Java EE 平台概述 1.1 发展历程 Java EE 从 J2EE 发展而来&#xff0c;经历了多个版本的演进&#xff0c;从早期的 J2EE 1.2 到最新的 Jakarta EE。 1.2 架构特点 多层架构&#xff1a; 客户端层&#xff1a;用户界面&#xff0c;如 Web 浏览器、移动应用等。Web 层&…

【srm,招标询价】采购电子化全流程,供应商准入审核,在线询价流程管理(JAVA+Vue+mysql)

前言&#xff1a; 随着互联网和数字技术的不断发展&#xff0c;企业采购管理逐渐走向数字化和智能化。数字化采购平台作为企业采购管理的新模式&#xff0c;能够提高采购效率、降低采购成本、优化供应商合作效率&#xff0c;已成为企业实现效益提升的关键手段。系统获取在文末…

优选算法 - 4 ( 链表 哈希表 字符串 9000 字详解 )

一&#xff1a;链表 1.1 链表常用技巧和操作总结 1.2 两数相加 题目链接&#xff1a;两数相加 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* …

小鸡模拟器 1.8.11 | 街机怀旧重温经典游戏,支持手柄

小鸡模拟器是一款支持多种经典游戏机模拟的游戏应用&#xff0c;包括街机、索尼(SONY)、世嘉、任天堂等主流掌机游戏以及PSP、GBA、NDS、SFC(超级任天堂SNES)、FC(红白机NES)、MD(世嘉MEGA DRIVE)、PS1、PS2等。应用支持手柄完美操作&#xff0c;兼容安卓手柄&#xff0c;让玩家…

Flutter开发应用安装二次打开闪退,ios解决方案

一、概述 近期将测试机升级至 iOS14 &#xff0c;测试使用 Flutter混合开发 的线上 APP&#xff0c;没发现什么问题&#xff0c;但是使用 Xcode 安装APP的场景下&#xff0c;断开 Xcode 后再运行却闪退了。 公司的 APP 测试结果如下&#xff1a; APP来源 是否闪退 模式 线上…

用go语言后端开发速查

文章目录 一、发送请求和接收请求示例1.1 发送请求1.2 接收请求 二、发送form-data格式的数据示例 用go语言发送请求和接收请求的快速参考 一、发送请求和接收请求示例 1.1 发送请求 package mainimport ("bytes""encoding/json""fmt""ne…

针对股票评论的情感分类器

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;编程探索专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年11月16日13点39分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文链接 点击开启你的论文编程之旅…

Transformer学习笔记(一)

Transformer学习笔记 基于 3B1B 可视化视频 自注意力机制 1.每个词的初始嵌入是一个高维向量&#xff0c;只编码该单词含义&#xff0c;与上下文没有关联 2.对初始向量进行位置编码&#xff0c;在高维向量中编码进位置信息&#xff08;单词在语言序列中的位置信息&#xff…