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