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

在Linux下直接修改磁盘镜像文件的内容

背景

嵌入式Linux系统通常在调试稳定后,会对磁盘(SSD、NVME、SD卡、TF卡)做个镜像,通常是.img后缀的文件,以后组装新设备时,就将镜像文件烧录到新磁盘即可,非常简单。

这种方法有个不便之处,就是当某些关键文件(LCD、触屏、按键等人机交互设备的驱动)有改动时,就需要重新对磁盘做镜像,如果手头没有相同容量的磁盘,就很麻烦。

思路

一种简单的办法是用Linux Reader打开img文件,更新其中内容后保存即可,但是该软件只能读,不能写,而且还收费,放弃。
想起Linux有loop设备的概念,类似于虚拟光驱,如果能将img文件像下图一样加载就好了。
虚拟光驱

查了一圈资料,自己将资料综合起来并做实验,找到实现方法。

实现方法

关键工具是losetup命令(桌面Linux自带),具体步骤如下示例:

  1. 将镜像文件Foo.img上传到一台桌面Linux环境(物理机/虚拟机均可)
  2. 进入桌面Linux的终端,执行ls /dev/loop* | sort命令,看loop设备编号用到几了,待会我们将img文件attach到几+1
  3. 如果你清楚分区信息,下面3个小步骤可以跳过,不清楚就不要跳过
    3.a 执行sudo losetup /dev/loop14 Foo.img,attach镜像文件Foo.img到/dev/loop14
    3.b 执行sudo fdisk /dev/loop14命令,获取磁盘的分区信息(具体步骤请参阅fdisk命令手册)
    3.c 执行sudo losetup -d /dev/loop14命令,detach镜像文件Foo.img
  4. 执行sudo losetup -o 1M --sizelimit 100M /dev/loop14 Foo.img命令,attch到img的第一个分区,其他分区同理
    4.a 选项-o表示分区的起始偏移,选项--sizelimit表示分区的大小
  5. 执行sudo mount /dev/loop14 /mnt/p1/命令,将新创建的loop设备挂载到/mnt/p1/目录
    5.a 如果分区的文件系统比较小众,给mount添加适当的选项
  6. 根据自己的需求对/mnt/p1/目录做增删改查
  7. 执行sudo umount /mnt/p1/命令,卸载loop设备
  8. 执行sudo losetup -d /dev/loop14命令,从img的第一个分区detach

总结

只要思想不滑坡,办法总比困难多。

相关文章:

在Linux下直接修改磁盘镜像文件的内容

背景 嵌入式Linux系统通常在调试稳定后,会对磁盘(SSD、NVME、SD卡、TF卡)做个镜像,通常是.img后缀的文件,以后组装新设备时,就将镜像文件烧录到新磁盘即可,非常简单。 这种方法有个不便之处&a…...

ASP.NET Core----基础学习03----开发者异常页面 MVC工作原理及实现

文章目录 1. 开发者异常页面(1)Startup.cs 页面的基础配置(2)自定义显示报错代码的前后XX行 2. MVC 的原理3. MVC 的实现4.默认路由路径5.返回Json字符串 1. 开发者异常页面 (1)Startup.cs 页面的基础配置 namespace ASP.Net_Blank {public class Startup{private readonly IC…...

jvm 07 GC算法,内存池,对象内存分配

01 垃圾判断算法 1.1引用计数算法 最简单的垃圾判断算法。在对象中添加一个属性用于标记对象被引用的次数,每多一个其他对象引用,计数1, 当引用失效时,计数-1,如果计数0,表示没有其他对象引用,…...

ComfyUI入门教程

本文主要介绍了通过源码运行comfyui,默认例子介绍,节点管理器的使用,以及界面汉化。可多参考开源工作流,多加实践,从而掌握comfyui操作。 1.源码运行comfyui 执行命令python main.py如下: 安装numpy 1.x最…...

Flutter TabBar与TabBarView联动及获取当前点击栏目索引

TabBar还有TabBarView都是谷歌flutter官方组件库——Material组件库提供的组件,其中TabBar用于导航切换,TabBarView则是配合其切换显示的对应的视图,官网参考地址:TabBarView class - material library - Dart API。 实现一体联动…...

【区块链+跨境服务】跨境出口电商溯源 | FISCO BCOS应用案例

当前跨境出口电商已成为带动我国外贸发展的中坚力量,尤其疫情特殊时期,成为推动经济增长的一个重要组成 部分。但是跨境出口电商流程长、环节多,且需辗转于不同的服务商以及国家之间,监管与定位也相对困难,容 易出现诸…...

记录一次mysql死锁问题的分析排查

记录一次死锁问题的分析排查 现象 底层往kafka推送设备上线数据应用层拉取设备上线消息,应用层有多个消费者并发执行将设备上线数据同步数据库表pa_terminal_channel日志报:(Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: …...

【UE5.1 角色练习】16-枪械射击——瞄准

目录 效果 步骤 一、瞄准时拉近摄像机位置 二、瞄准偏移 三、向指定方向射击 四、连发 效果 步骤 一、瞄准时拉近摄像机位置 打开角色蓝图,在事件图表中添加如下节点,当进入射击状态时设置目标臂长度为300,从而拉近视角。 但是这样切…...

04OLED简介和调试方法

OLED简介和调试方法 调试方式串口调试显示屏调试其他调试方法总结: OLED简介硬件电路OLED驱动函数 keil调试模式进入方法keil调试界面窗口简单功能说明更加强大的功能 调试方式 电脑想看什么变量可以直接打印到屏幕,但是单片机很多时候由于成本和电路结构…...

“LNMP环境搭建实战指南:从零开始配置CentOS 7下的Nginx、MySQL与PHP“

目录 1.前言 2.准备工作 2.1.环境信息 2.2.关闭SELinux和firewalld 3.安装Nginx 3.1.运行以下命令,安装Nginx 3.2.运行以下命令,查看Nginx版本 4.安装MySQL 4.1.更新秘钥 4.2.配置MySQL的YUM仓库 4.3.安装MySQL 4.4.查看MySQL版本 4.5.启动…...

院内导航:如何用科技破解就医找路难题

自2019年开始“院内导航”被纳入医院智慧服务评估体系以来,到2023年改善就医服务升级的部署,每一步都见证了我国医疗卫生体系向智能化、人性化迈进的坚实步伐。 面对庞大复杂的医院环境与日益增长的就诊需求,如何让患者在茫茫人海中迅速找到就…...

C++基础篇(1)

目录 前言 1.第一个C程序 2.命名空间 2.1概念理解 2.2namespace 的价值 2.3 namespace的定义 3.命名空间的使用 4.C的输入输出 结束语 前言 本节我们将正式进入C基础的学习,话不多说,直接上货!!! 1.第一个C程…...

云视频监控中的高效视频转码策略:视频汇聚EasyCVR平台H.265自动转码H.264能力解析

随着科技的快速发展,视频监控技术已经广泛应用于各个领域,如公共安全、商业管理、教育医疗等。与此同时,视频转码技术作为视频处理的关键环节,也在不断提高视频的质量和传输效率。 一、视频监控技术的演进 视频监控技术的发展历…...

xcode配置swift使用自定义主题颜色或者使用RGB或者HEX颜色

要想在xcode中使用自定义颜色或者配置主题色,需要在Assets中配置,打开Assets文件,然后点击添加Color Set: 输入颜色的名称,然后选中这个颜色,会出现两个颜色: Any Appearance表示亮色模式下使用…...

相同含义但不同类型字段作为join条件时注意事项

假设表A和表B中都有表示学号的stu_id字段,但该字段在表A和表B中类型分别为bigint和string。当直接通过该字段进行join时,一般情况下可以得到我们预期的结果。 select a.stu_id from a as r join b as l on r.stu_id l.stu_id 但是如果学号长度较长的…...

数据结构(3.8)——栈的应用

栈在括号匹配中的应用 流程图 代码 #include <stdio.h> #include <stdlib.h> #define MaxSize 10typedef struct {char data[MaxSize];int top; } SqStack;// 初始化栈 void InitStack(SqStack* S) {S->top -1; // 初始化栈顶指针 }// 判空 bool StackEmpty(…...

前端面试题35(在iOS和Android平台上,实现WebSocket协议有哪些常见的库或框架?)

在iOS和Android平台上&#xff0c;实现WebSocket协议有许多成熟且被广泛使用的库和框架。下面是一些推荐的选项&#xff1a; iOS 平台 SocketRocket 简介&#xff1a;这是由Facebook开源的库&#xff0c;专门为iOS和Mac OS X设计&#xff0c;提供WebSocket连接的功能。它基于S…...

Mysql如何高效ALTER TABL

ALTER TABLE 缺点 MySQL 的ALTER TABLE 操作的性能对大表来说是个大问题。 MySQL MySQL 执行大部分修改表结构操作的方法是用新结构的 创建一个&#xff0c;空表从旧表中查出所有数据插入&#xff0c;新表然后删除旧。表这样操作可能需要花费很长&#xff0c;时间 如内果存不…...

vue3+vite搭建第一个cesium项目详细步骤及环境配置(附源码)

文章目录 1.创建vuevite项目2.安装 Cesium2.1 安装cesium2.2 安装vite-plugin-cesium插件&#xff08;非必选&#xff09;2.3 新建组件页面map.vue2.4 加载地图 3.完成效果图 1.创建vuevite项目 打开cmd窗口执行以下命令&#xff1a;cesium-vue-app是你的项目名称 npm create…...

LiteOS增加执行自定义源码

开发过程注意事项&#xff1a; 源码工程路径不能太长 源码工程路径不能有中文 一定要关闭360等杀毒软件&#xff0c;否则编译的打包阶段会出错 增加自定义源码的步骤: 1.创建源码目录 2. 创建源文件 新建myhello目录后&#xff0c;再此目录下再新建源文件myhello_demo.c 3. 编…...

《Nature》文章:ChatGPT帮助我学术写作的三种方式

图片翻译 ** 文章内容** 忏悔时间&#xff1a;我使用生成式人工智能&#xff08;AI&#xff09;。尽管在学术界关于聊天机器人是积极力量还是消极力量的争论不休&#xff0c;但我几乎每天都使用这些工具来完善我所写论文中的措辞&#xff0c;并寻求对我被要求评估的工作进行替…...

防火墙安全策略与用户认证综合实验

一、实验拓扑 二、实验需求 1.DMZ区内的服务器&#xff0c;办公区仅能在办公时间内<9:00-18:00>可以访问&#xff0c;生产区的设备全天可以访问 2.办公区不允许访问互联网&#xff0c;办公区和游客区允许访问互联网 3.办公区设备10.0.2.10不充许访问DMZ区的FTP服务器和HT…...

vue学习day05-watch侦听器(监视器)、Vue生命周期和生命周期的四个阶段、、工程化开发和脚手架Vue cli

13、watch侦听器&#xff08;监视器&#xff09; &#xff08;1&#xff09;作用&#xff1a;监视数据变化&#xff0c;执行一些业务逻辑或异步操作 &#xff08;2&#xff09;语法&#xff1a; 1&#xff09;简写语法——简单数据类型&#xff0c;直接监视 ① Watch:{ 数…...

数字人+展厅互动体验方案:多元化互动方式,拓宽文化文娱新体验

数字化创新已成为推动展厅可持续发展&#xff0c;创造全新消费体验&#xff0c;满足游客多元化需求的关键力量。 “数字人数字互动展厅”可以适应年轻一代的文化传播与多媒体互动新体验趋势&#xff0c;打造新生代潮玩聚集地&#xff0c;促进文化创意传播与互动体验场景创新&a…...

在Spring Boot项目中集成监控与报警

在Spring Boot项目中集成监控与报警 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 1. 引言 在当今的软件开发中&#xff0c;监控和报警系统是保证系统稳定性和可靠性的重要组成部分。Spring Boot…...

opencv实现目标检测功能----20240704

早在 2017 年 8 月,OpenCV 3.3 正式发布,带来了高度改进的“深度神经网络”(dnn)模块。 该模块支持多种深度学习框架,包括 Caffe、TensorFlow 和 Torch/PyTorch。这次我们使用Opencv深度学习的功能实现目标检测的功能,模型选用MobileNetSSD_deploy.caffemodel。 模型加载…...

音视频解封装demo:使用libmp4v2解封装(demux)出mp4文件中的h264视频数据和aac语音数据

1、README 前言 本demo是使用的mp4v2来将mp4文件解封装得到h264、aac的&#xff0c;目前demo提供的.a静态库文件是在x86_64架构的Ubuntu16.04编译得到的&#xff0c;如果想在其他环境下测试demo&#xff0c;可以自行编译mp4v2并替换相应的库文件&#xff08;libmp4v2.a&#…...

手撸俄罗斯方块(一)——简单介绍

手撸俄罗斯方块 简单介绍 《俄罗斯方块》&#xff08;俄语&#xff1a;Тетрис&#xff0c;英语&#xff1a;Tetris&#xff09;&#xff0c;是1980年末期至1990年代初期风靡全世界的电脑游戏&#xff0c;是落下型益智游戏的始祖&#xff0c;电子游戏领域的代表作之一&a…...

构建LangChain应用程序的示例代码:61、如何使用 LangChain 和 LangSmith 优化链

本示例介绍如何使用 LangChain 和 LangSmith 优化链。 设置 我们将为 LangSmith 设置环境变量&#xff0c;并加载相关数据 import osos.environ["LANGCHAIN_PROJECT"] "movie-qa" # 设置 LANGCHAIN_PROJECT 环境变量为 "movie-qa"import pan…...

Android系统通过属性设置来控制log输出的方案

Android系统通过属性设置来控制log输出的方案 背景 项目中经常需要在针对性的模块或者文件&#xff0c;分析问题的时候输出Log&#xff0c;但问题分析完成后&#xff0c;又由于性能问题&#xff0c;需要关闭这些log输出。当前大多数情况下是控制整个系统的log等级来实现&#…...

win wordpress 静态/中国网站排名

正 文: 1、启用Ad Hoc Distributed Queries 在使用openrowset/opendatasource前搜先要启用Ad Hoc Distributed Queries服务&#xff0c;因为这个服务不安全所以SqlServer默认是关闭的 启用Ad Hoc Distributed Queries的方法 SQL Server 阻止了对组件 Ad Hoc Distributed Queri…...

网站大图轮播/南宁网站推广排名

题目 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”&#xff0c;要求按下列格式打印 ************ *****所谓“沙漏形状”&#xff0c;是指每行输出奇数个符号&#xff1b;各行符号中心对齐&#xff1b;相邻两行符号数差2&#xff1b;符号数先从大到小…...

wordpress如何上传源码/首页优化排名

图片填充整个PictureBox 只需要设置属性 pictureBox.SizeMode PictureBoxSizeMode.StretchImage;转载于:https://www.cnblogs.com/wuhuisheng/archive/2012/04/06/2434394.html...

做兼职网站的主要参考文献/超级外链工具有用吗

JavaScript之原型链 参考&#xff1a;http://zhangjiahao8961.iteye.com/blog/2070650原型链 概念 原型链是一种机制&#xff0c;指的是JavaScript每个对象包括原型对象都有一个内置的[[proto]]属性指向创建它的函数对象的原型对象&#xff0c;即prototype属性。 作用 原型链的…...

做旅游网站会遇到什么问题/什么是网络推广营销

Python相比于C语言、PHP、Java等编程语言&#xff0c;更加简单易学&#xff0c;很多没有编程经验或者对编程一知半解的人员往往会选择Python作为入门编程语言&#xff0c;Python虽然入门简单&#xff0c;但是要想更深入的掌握Python知识和技能&#xff0c;还需要下一番苦功&…...

wordpress博客文章导出/百度客服在线咨询人工服务

NEW关注Tech逆向思维视频号最新视频→【高效增长——向数字化要效益】7月20日消息&#xff0c;美国当地时间周二&#xff0c;谷歌在博客文章中宣布&#xff0c;该公司计划在公共环境中再次测试增强现实&#xff08;AR&#xff09;眼镜原型。有些原型将看起来像普通眼镜&#xf…...