linux中TF启动卡制作:磁盘分区文件同步

news2025/1/16 14:42:28

文章目录

  • 前言:
  • 1. 连接TF卡
  • 2. 磁盘卸载载与分区
    • 2.1 磁盘卸载
    • 2.2 创建第一个分区
    • 2.3 创建第二个分区
  • 3. 磁盘格式化
  • 4. 文件同步
  • 5. 检查与BOOT分区启动文件拷贝
  • 总结:

前言:

TF卡在linux环境下配置好相关软件后,把配置好的系统以及软件放到zynq中使用。

本文以32G容量的TF卡为例,基本上按照步骤走一遍就可以完成了,内容比较简单,这里记录是为了方便自己后续制作,同时也分享给有需要的人。

本文是使用Ubuntu18.04版本的操作系统,同时使用的是VMware17虚拟机。


1. 连接TF卡

新的TF卡通过读卡器插入电脑
在这里插入图片描述

将TF卡连接到虚拟机中
在这里插入图片描述
通过这里调整TF卡与虚拟机的连接与断开,实现TF卡在虚拟机和主机之间的切换。


2. 磁盘卸载载与分区

2.1 磁盘卸载

进入虚拟机打开控制终端
在这里插入图片描述
输入指令:sudo umount /dev/sdb*

因为拷贝系统之类的,涉及到很多权限不允许情况,所以最好切换到root
输入指令:su切换为root权限,接着输入密码

在这里插入图片描述输入指令sudo fdisk /dev/sdb
在这里插入图片描述

2.2 创建第一个分区

输入“p”查看,看存在的分区,同时查看每一个扇区的大小,这里为512B
输入“d”删除分区,删除全部分区确保是全新创建,
输入“n”创建一个新分区,输入”p“成为主分区
在这里插入图片描述

在这里插入图片描述

默认使用分区号1和第一分区起始地址2048
设置第一个分区大小“500M” ,那么对应的地址应该是1024000
这个1024000的怎么来的?我们要给这个分区设置500MB,我们看一个块大小是512bytes即0.5KB。那么1KB=1024bytes,500MB=5001024KB=500512bytes*2个块=1024000个块

在这里插入图片描述这里稍小一点是因为分区是从2048开始的,不是从0,所以这里没有500MB。
当然了,大差不差,如果那么讲究的话,那就在1024000上面再加2048。

输入”t“,然后输入”c“,设置成”W95 FAT32(LBA)”
输入”a“,设置为引导分区,至此第一个分区创建好了。
在这里插入图片描述

2.3 创建第二个分区

输入"n",接下来一路默认,如果没问题了输入“w”写入到SD卡并退出。
在这里插入图片描述

分区的指令说明如下:

命令说明
a设置可引导标记
b编辑bsd磁盘标签
c设置DOS操作系统兼容标记
d删除一个分区
1显示已知的文件系统类型。82为Linux swap分区,83位Linux分区
m显示帮助菜单
n新建分区
0建立空白DOS分区表
p显示分区列表
q不保存退出
s新建空白SUN磁盘标签
t改变一个分区的系统ID
u改变显示记录单位
v验证分区表
w保存退出
x附加功能

3. 磁盘格式化

对分区好的磁盘进行格式化,只有格式化后电脑才可以识别的分区。
依次输入下面指令
sudo mkfs.vfat -F 32 -n BOOT /dev/sdb1把刚才分区的第一块格式化为FAT32格式,名为BOOT的分区(Windows下可读取)
sudo mkfs.ext4 -L EXT4 /dev/sdb2把分区的第二块格式化为EXT4格式,名为EXT4的分区一般在Linux中使用。

输入指令:chmod 777 /media/ubuntu/EXT4
这里ubuntu对应的是你的用户名,不同用户这里的路径是不一样的。
这条指令是把EXT4的分区权限放开,便于后续进行同步操作。

4. 文件同步

文件同步的作用就是备份作用,相比于直接拷贝,更大的好处在于权限的一致。
如果直接把系统文件进行拷贝,可能会出现权限不一致情况,这是因为umask的原因。之前因为这个踩过坑,所以相比直接复制,文件同步更为专业。
输入以下指令,具体目录因电脑而异。
rsync -av /home/ubuntu/makeTF/* /media/ubuntu/EXT4/
这里rsync表示同步指令;

-a, –archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD (这个非常重要)

-v, –verbose 详细模式输出;这个只是可视化的作用。

其他备选参数可参考博客rsync参数

第一个目录是源目录即要同步的源文件,第二个目录是目标目录即源文件同步到哪里去。这个根据自己文件的位置进行调整。

5. 检查与BOOT分区启动文件拷贝

同步的过程中,可能会存在文件同步失败,所以我们需要查看一下文件大小,在对应的目录下用ls -al命令进行对比查看。

因为是制作启动卡,所以BOOT分区还需要进行拷贝启动文件,这个其实就只需要把TF卡与虚拟机的连接断开,使其连接到windows上,接着把windows上的程序拷贝进去即可。


总结:

这篇文章记录了TF卡制作的一个流程,也写了点自己踩过的坑和对应的解决方案。整体还是比较简单,熟能生巧。

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

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

相关文章

Neo4j图数据库的数据模型_包括节点_属性_数据_关系---Neo4j图数据库工作笔记0002

来看一下neo4j的特性 这个neo4j特点就是简单,这里用最快的速度学习 可以看到一个圈表示一个节点,然后两个节点直接可以有关系,关系可以是双向的

Python正则表达式详解,保姆式教学,0基础也能掌握正则

正则作为处理字符串的一个实用工具,在Python中经常会用到,比如爬虫爬取数据时常用正则来检索字符串等等。正则表达式已经内嵌在Python中,通过导入re模块就可以使用,作为刚学Python的新手大多数都听说”正则“这个术语。 今天来给…

学生成绩管理系统【纯控制台】(Java课设)

系统类型 纯控制台类型(没有用到数据库) 使用范围 适合作为Java课设!!! 部署环境 jdk1.8Idea或eclipse 运行效果 本系统源码地址:https://download.csdn.net/download/qq_50954361/87753365 更多系统…

Python每日一练(20230505) 课程表 Course Schedule III/IV

目录 3. 课程表 Course Schedule III 4. 课程表 Course Schedule IV 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 3. 课程表 Course Schedule III 这里有 n 门不同的在线课程&#xff…

python并发编程:什么是并发编程?python对并发编程有哪些支持?

Python并发编程是指同时执行多个任务的编程模式。Python提供了多种实现并发编程的方式,包括多线程、多进程、协程、异步IO等。 为什么要引入并发编程 假设以下两个场景: 场景一: 一个网络爬虫,按顺序爬取花了一个小时,采用并发…

距新发牌制度生效不到1个月,我们和数位香港Web3er聊了聊

出品|欧科云链研究院 作者|Jason Jiang 4月20日,欧洲议会通过加密资产市场法规(MiCA),使欧盟成为全球首个引入全面加密法的主要司法管辖区。与此同时,东方世界的香港也正加速拥抱Web3变革。香港特区立法会…

【线程安全】内存可见性问题及解决方案

1. 关于内存可见性的一段代码 import java.util.Scanner; public class ThreadDemo {public static int count 0;public static void main(String[] args) throws InterruptedException {Thread t1 new Thread(() -> {while (count 0) {}System.out.println("t1 线程…

双向链表及双向链表的常见操作和用js封装一个双向链表

书接上回,上一篇文章讲了单向链表以及用 js 封装一个单向链表,所以这节将介绍双向链表以及用 js 封装一个双向链表。待会我也会继续在文章后面附上视频学习链接地址,大家想学习的可以去看看 一、认识双向链表 首先来认识一下什么是双向链表&…

广和通发布5G智能模组SC151系列,助力AIoT应用更智能高效

2023年5月,广和通发布5G R16智能模组SC151系列。SC151系列基于4nm制程工艺的高通QCM4490解决方案设计,采用8核高性能处理器,为工业与商业物联网终端提供高性能处理能力。面对与日俱增的终端智能化需求,SC151系列将助力打造高生产力…

【致敬未来的攻城狮计划】第2期定向赠书《RT-Thread设备驱动开发指南》+ 《GD32 MCU原理及固件库开发指南》

开启攻城狮的成长之旅!这是我参与的由 CSDN博客专家 架构师李肯(超链接:http://yyds.recan-li.cn)和 瑞萨MCU (超链接:瑞萨电子 (Renesas Electronics Corporation)) 联合发起的「 致敬未来的攻…

【LeetCode】每日一题:移除链表元素 [C语言实现]

👻内容专栏:《LeetCode刷题专栏》 🐨本文概括:203.移除链表元素 🐼本文作者:花 碟 🐸发布时间:2023.5.5 203. 移除链表元素 - 力扣(LeetCode) 题目&#xff…

微信小程序的生命周期

微信小程序的生命周期 1.什么是生命周期?2.生命周期的分类3.什么是生命周期函数?4.生命周期函数的分类5.应用生命周期函数6.页面周期函数 1.什么是生命周期? 生命周期(Life Cycle)是指一个对象从创建 -> 运行 ->…

Ant Design Pro---【02 UMI路由讲解】

在 Umi 中,应用都是单页应用,页面地址的跳转都是在浏览器端完成的,不会重新请求服务端获取 html,html 只在应用初始化时加载一次。所有页面由不同的组件构成,页面的切换其实就是不同组件的切换,你只需要在配…

设计模式——观察者模式(应用广,较难)

是什么? 又被称为发布-订阅模式,它定义了一种一对多的依赖关系,让多个观察者同时监听某一个主题对象,这个主题对象在状态变化时,会通知所有的观察者对象,使它们能够更新自己; 结构 抽象主题&…

复兴号列车司机室

复兴号上线有一段时间了,很多旅客都已经体验过,但是,司机室可能绝大多数人都没有机会一睹容颜,今天带你去司机室操纵台去探索一番。 按照上图的圈圈划分为操作台右侧(蓝色圈圈)、中部(红色圈圈…

从C到C++

目录 1、输入输出库与名字空间 2、输入输出流对象cin和cout 3、string字符串类 4、bool类型 5、自增自减--运算符&#xff08;必考&#xff09; 6、其他 1、输入输出库与名字空间 #include <iostream> using namespace std; 每次写代码先把这两个东西加上 <io…

共享内存实现进程间大数据的交换

引言   进程间的数据交换和共享是一种非常重要和实用的技术。大、中型软件的开发设计多是由众多程序设计人员的合作完成&#xff0c;通常一个程序设计人员只负责其中一个或几个模块的开发&#xff0c;这些模块可以是动态链接库也可以是应用程序或是其他形式的程序组件。这些独…

Java 面试必问的线程池原理总结

本文首发自「慕课网」&#xff0c;想了解更多IT干货内容&#xff0c;程序员圈内热闻&#xff0c;欢迎关注"慕课网"&#xff01; 作者&#xff1a;大能老师 | 慕课网讲师 Java 线程池原理总结 &#xff08;一&#xff09;什么是线程池 线程池做的工作主要是控制运行…

Arcgis进阶篇(4)——arcgis js api使用geoserver服务

1、geoserver安装方法 geoserver-2.19.x&#xff08;此版本支持jdk8.x&#xff09;的下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1PkmmjHWWzbUA9fYfa110Ew?pwd8tvf 提取码&#xff1a;8tvf 经测试&#xff0c;最新版本的geoserver需要jdk11&#xff…

elasticsearch 使用的基础工具包及配置安装信息

前言:elasticsearch 工具在查询大量数据上面有明显的优势&#xff0c;但是具体的使用门槛相对较高&#xff0c;具体使用中不同版本使用上还有些差别&#xff0c;需要匹配上 spring boot elasticsearch 版本才能少出错 使用到的工具包&#xff0c;注意具体的版本 elasticsearc…