系统加载
近期在弄一个设备国产化,涉及到镜像数据加载问题,讲的是基础电子包启动后从server 上下载镜像包并且安装的过程
下载包后安装系统
具体步骤如下:
- 下载完镜像就解压然后执行install 脚本
- 检测磁盘一般都是两个:一个系统磁盘 一个数据磁盘
- 检测 root镜像 、内核镜像 、initrd、恢复系统的initrd 、配置文件是否存在以及 系统盘大小是否足够
- 对系统盘重新分区
- 分区加密
- 分区磁盘创建文件系统
- 分区挂载
- 将内核镜像、root镜像等解压到分区
- mount命令的bind选项将当前运行系统的/proc、/dev、/var、/sys目录绑定到root分区(/mnt)的proc、dev、var、sys目录上
- 使用chroot在root分区中运行系统恢复命令
- 使用umount断开root分区中proc、dev、var的绑定
- 挂载系统盘的启动分区(hda1)到root分区的boot目录上(/opt/boot)
- 将系统镜像压缩包目录中的启动内核(vmlinuz)、initrd、恢复initrd、groub.conf 复制启动分区(/opt/boot)中
实际过程就是 在当前A系统下执行一些命令 数据覆盖等操作, 然后重新挂载系统启动分区到某一个目录B, 然后向目录B 中写入新系统镜像A2, 此时系统磁盘启动分区就是新的镜像
涉及到核心步骤有:
一般分为三个步骤:
(1)fdisk 对磁盘进行分区
(2)mkfs 格式化磁盘
(3)mount 挂载磁盘
mount -bind-----<将一个目录挂载绑定到另一个目录,这样相同的文件就有了2种访问位置;
同时存在一下场景:在固件开发过程中临时替换配置文件,在固件开发过程中为测试某个新功能,必需修改某个系统文件。而这个文件在只读文件系统上或者是虽然文件可写,但是自己对这个改动没有把握,不愿意直接修改
假设我们要改的文件是/etc/hosts,可按下面的步骤操作:
1)把新的hosts文件放在/tmp下。
2)mount --bind /tmp/hosts /etc/hosts
测试完成了执行 umount /etc/hosts 断开绑定。
这样就可以防止直接修改 hosts文件导致出现错误
http代理服务器(3-4-7层代理)-网络事件库公共组件、内核kernel驱动 摄像头驱动 tcpip网络协议栈、netfilter、bridge 好像看过!!!!
但行好事 莫问前程
--身高体重180的胖子
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!