当前位置: 首页 > news >正文

LiveOS 的制作简介

LiveOS 用途:

  1. 便捷启动 LIVEOS 不占用磁盘空间,系统完全在内存文件系统中运行
  2. 常用于 linux 系统救援(文件系统异常导致系统进入紧急模式)
  3. 常用于制作 PXE 生产测试 DIAG 系统
  4. 开源,免费,可定制化程度高

制作工具 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

bcd90998-7798-47b2-9ba2-e2a4a8d74426

f7b5e995-3265-4edb-a773-782830576118

8489414a-a44c-42b4-8f47-491bb8885833

ec89650e-3908-4355-8729-4bf26b6a4246

5ac31263-8622-4b45-8554-ed79fd4f13d7

原理:
根据传参利用 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


http://www.wxhsa.cn/company.asp?id=2810

相关文章:

  • .gitignore 文件
  • 目标检测 | 基于Weiler–Atherton算法的IoU求解
  • 对比Java学习Go——函数、集合和OOP
  • MySQL集群高可用架构 - 指南
  • 【WRF-VPRM 预处理器】HEG 安装(服务器)-MRT专业的工具替代
  • 如何在Spring MVC中处理请求参数
  • redis实现缓存2-解决缓存穿透,缓存击穿
  • 单克隆抗体人源化:从鼠源缺陷到全人源突破,3 大阶段破解临床应用难题
  • 在Kubernetes中DaemonSet无法在master节点调度的问题
  • 9 12-
  • 桌面客户端的主要类型和技术方案
  • AGX Orin平台RTC驱动导致reboot系统卡住障碍调试
  • C 语言实现动态数组、链表、栈与队列
  • git reset
  • ICPC 2025 网络赛第一场 M
  • Brute It -TryHackMe
  • 题解:P12336 第三心脏
  • Spring篇知识点(1)
  • 在CentOS 7系统中彻底移除MongoDB数据库
  • 2025.9.13总结
  • 【数学建模】烟幕干扰弹投放策略优化:模型与算法整合框架 - 实践
  • 开源排名算法工具raink:利用LLM实现智能文档排序
  • lcjmSSL域名SSL证书免费申请
  • uniapp原生插件 TCP Socket 利用文档
  • 【PyQt5】实现输入延迟响应:3秒无输入后自动读取内容
  • 线性代数基础
  • 微积分基础
  • Windows 自带的SSH中配置X11
  • 在Kubernetes client-go库中如何有效构建CRD的informer
  • Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架