当前位置: 首页 > 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.rkmt.cn/news/3753.html

相关文章:

  • 目标检测 | 基于Weiler–Atherton算法的IoU求解
  • 对比Java学习Go——函数、集合和OOP
  • 【WRF-VPRM 预处理器】HEG 安装(服务器)-MRT专业的工具替代
  • redis实现缓存2-解决缓存穿透,缓存击穿
  • 单克隆抗体人源化:从鼠源缺陷到全人源突破,3 大阶段破解临床应用难题
  • C 语言实现动态数组、链表、栈与队列
  • git reset
  • Brute It -TryHackMe
  • 题解:P12336 第三心脏
  • Spring篇知识点(1)
  • uniapp原生插件 TCP Socket 利用文档
  • 【PyQt5】实现输入延迟响应:3秒无输入后自动读取内容
  • Windows 自带的SSH中配置X11
  • 完整教程:技术小白如何快速的了解opentenbase?--把握四大特色
  • 9.13日模考总结
  • 高斯消元
  • uni-app iOS 性能监控全流程 多器具协作的实战优化指南
  • 十八、CPU的控制流:正常控制流和异常控制流
  • 使用 C# 设置 Excel 单元格格式 - 教程
  • 【ARM Cache 及 MMU 系列文章 6.1 -- Cache maintenance 指令及相关寄存器有哪些?】
  • 每日Java并发面试系列(5):基础篇(线程池的核心原理是什么、线程池大小设置为多少更合适、线程池哪几种类型?ThreadLocal为什么会导致内存泄漏?) - 实践
  • 模仿玩家习惯的简单AI系统:GoCap
  • 浅谈马拉车
  • 十七、异常和中断响应过程的时序图
  • 直播平台搭建,浏览器中的事件循环与Node中的事件循环 - 云豹科技
  • Redisson 分布式锁的实现原理 - 教程
  • ros2--service/服务--接口 - 教程
  • 深入解析:【Unity基础】枚举AudioType各个枚举项对应的音频文件类型
  • 【关注可白嫖源码】25046基于SpringBoot的少儿编程管理系统设计与达成
  • 工具链部署实用技巧 7|模型设计帧率推理时耗时与带宽分析