zoukankan      html  css  js  c++  java
  • 系统加载

       近期在弄一个设备国产化,涉及到镜像数据加载问题,讲的是基础电子包启动后从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文件导致出现错误

  • 相关阅读:
    我太难了
    树状数组模板
    题解 洛谷P1196 【[NOI2002]银河英雄传说】
    poj 2352 & Ural 1028 数星星 题解
    棋盘覆盖 题解
    2015 JSOI冬令营训练 彩色格子 题解
    题解 UVA12716 GCD等于XOR GCD XOR
    第一篇博客
    2019.8.26 小结
    2019.8.24 小结 (关于树状数组,线段树小结)
  • 原文地址:https://www.cnblogs.com/codestack/p/14131850.html
Copyright © 2011-2022 走看看