从零开始学习 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,一经查实,立即删除!

相关文章

用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治理模式的影响。报告进…

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

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

【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;让玩家…

用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…

antd table表格设置最小宽度,列宽等比例显示

最近ui有个设计稿&#xff0c;表格要求如图&#xff1a; 由于本地antd table列宽column没有设置最小宽度minWidth属性&#xff0c;只有width属性&#xff0c;所以开发时我考虑按照列宽等比例计算后去设置width属性&#xff1b; 一、实现&#xff1a; 1.表头数组中设置minWidth…

算法沉淀一:双指针

目录 前言&#xff1a; 双指针介绍 对撞指针 快慢指针 题目练习 1.移动零 2.复写零 3.快乐数 4.盛水最多的容器 5.有效三角形的个数 6.和为s的两个数 7.三数之和 8.四数之和 前言&#xff1a; 此章节介绍一些算法&#xff0c;主要从leetcode上的题来讲解&#xff…

若点集A=B则A必能恒等变换地变为B=A这一几何常识推翻直线(平面)公理

黄小宁 关键词&#xff1a;“更无理”复数 复平面z各点z的对应点z1的全体是z1面。z面平移变为z1面就使x轴⊂z面沿本身平移变为ux1轴。R可几何化为R轴&#xff0c;R轴可沿本身平移变为R′轴&#xff0c;R′轴可沿本身平移变为R″轴&#xff0c;...。直线公理和平面公理使几百年…

HelloMeme 上手即用教程

HelloMeme是一个集成空间编织注意力的扩散模型&#xff0c;用于生成高保真图像和视频。它提供了一个代码库&#xff0c;包含实验代码和预训练模型&#xff0c;支持PyTorch和FFmpeg。用户可以通过简单的命令行操作来生成图像和视频。 本文将详细介绍&#xff0c;如何在GPU算力租…

Vue2+ElementUI:用计算属性实现搜索框功能

前言&#xff1a; 本文代码使用vue2element UI。 输入框搜索的功能&#xff0c;可以在前端通过计算属性过滤实现&#xff0c;也可以调用后端写好的接口。本文介绍的是通过计算属性对表格数据实时过滤&#xff0c;后附完整代码&#xff0c;代码中提供的是死数据&#xff0c;可…

blind-watermark - 水印绑定

文章目录 一、关于 blind-watermark安装 二、bash 中使用三、Python 调用1、基本使用2、attacks on Watermarked Image3、embed images4、embed array of bits 四、并发五、相关 Project 一、关于 blind-watermark Blind watermark 基于 DWT-DCT-SVD. github : https://githu…

【小白可懂】微信小程序---课表渲染

结果展示&#xff1a;&#xff08;代码在最后&#xff09; WeChat_20241116174431 项目简介 在数字化校园建设的大背景下&#xff0c;为了更好地服务于在校师生&#xff0c;我们开发了一款基于微信小程序的课表管理系统。该系统采用了现代化的前端技术和优雅的设计风格&#x…