如何制作LiveOS操作系统?

摘要:LiveOS 用途: 便捷启动 LIVEOS 不占用磁盘空间,系统完全在内存文件系统中运行 常用于 linux 系统救援(文件系统异常导致系统进入紧急模式) 常用于制作 PXE 生产测试 DIAG 系统 开源,免费,可定制化程度高 制作工具
LiveOS 用途: 便捷启动 LIVEOS 不占用磁盘空间,系统完全在内存文件系统中运行 常用于 linux 系统救援(文件系统异常导致系统进入紧急模式) 常用于制作 PXE 生产测试 DIAG 系统 开源,免费,可定制化程度高 制作工具 lorax lorax 项目是 红帽企业版 OS 的安装器的开源项目 套件包含功能如下: 制作定制 anaconda installer 安装器 制作定制 启动的 boot.iso 文件 制作定制各类形态的 LiveOS 系统 https://github.com/biubiubiu-xixi/lorax 详细资料文档: https://weldr.io/lorax/intro.html https://weldr.io/lorax/livemedia-creator.html livemedia-creator 参数说明: --ks= #(制作liveos 的 kickstart 应答控制文件的全路径) --make-iso #(选择制作输出成 LiveOS ISO 形态) --no-virt #(不使用虚拟化技术制作) --fs-label= #(squashfs 文件系统格式化时的文件系统标签) --resultdir= #(完整输出成果物的路径) --title= #(指定输出的标题) --project= #(指定输出的项目名称) --iso= #(anaconda 安装器的启动 ISO 镜像源的路径) 示例 CMD eg: 以非 qemu kvm virt 安装方式为例: livemedia-creator --ks=/mnt/workspace/my_liveos_ks/liveos_nogui.cfg --make-iso --no-virt --fs-label="CentOS" --resultdir=/mnt/workspace/centos7_no_gui_liveos --title="CentOS" --project="CentOS" --iso=/mnt/datas_hdd1/http_server_root/ISO_IMAGE/CentOS-7-x86_64-Everything-2207-02.iso 原理: 根据传参利用 anaconda installer 安装器在 img 块设备 /dev/loop0 中安装 liveos 的文件系统,与平时利用 DVD ISO 镜像启动后进入 anaconda 安装一样的操作; 只不过制作 LIVEOS 时不会让你手动去选择安装系统时的选项;而是利用 ks 应答文件控制安装并配置系统; 工作流流程: livemedia-creator ———> 分析入参参数 ———> 参数合法 ———> 非 virt 安装 ———> ———> anaconda installer ———> 解析 ks 参数 ———> 参数合法 ———> 开始安装 img 中的系统 anaconda 依据 ks 安装配置 img 中的文件系统 anaconda 系统安装完成 ———> 收集 img 文件系统 ———> 打包成 squashfs 文件系统(xz 压缩算法) ———> 重新生成 ISO 启动时需要的 initrd 文件 ———> 调用 mkksiso 制作输出 ISO 文件 ———> 开始生成 ISO 文件,默认名为 boot.iso ———> 计算 ISO MD5 指纹并嵌入 ISO 文件中 制作结束 其中制作的环境关键在于 ks 文件的编写: 其中 ks 文件中的 repo 参数,可以根据自己需要定制的 RPM 包的情况,视情况选择采用 在线网路安装源; 还是自己的搭建的自定义的本地源 ks 文件示例: liveos_nogui.cfg