系统加载

   近期在弄一个设备国产化,涉及到镜像数据加载问题,讲的是基础电子包启动后从server 上下载镜像包并且安装的过程

下载包后安装系统

具体步骤如下:

  1. 下载完镜像就解压然后执行install 脚本
  2. 检测磁盘一般都是两个:一个系统磁盘 一个数据磁盘
  3. 检测 root镜像 、内核镜像 、initrd、恢复系统的initrd 、配置文件是否存在以及 系统盘大小是否足够
  4. 对系统盘重新分区
  5. 分区加密
  6. 分区磁盘创建文件系统
  7. 分区挂载
  8. 将内核镜像、root镜像等解压到分区
  9. mount命令的bind选项将当前运行系统的/proc、/dev、/var、/sys目录绑定到root分区(/mnt)的proc、dev、var、sys目录上
  10. 使用chroot在root分区中运行系统恢复命令
  11. 使用umount断开root分区中proc、dev、var的绑定
  12. 挂载系统盘的启动分区(hda1)到root分区的boot目录上(/opt/boot)
  13. 将系统镜像压缩包目录中的启动内核(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文件导致出现错误

原文地址:https://www.cnblogs.com/codestack/p/14131850.html