名称 | Name: lorax
版本 | Version: 1.0.0
作者 | Author: OS Build Agent
领域 | Domain: System Image Creation (Fedora/RHEL)
专业的系统镜像构建技能,使用 Lorax 工具创建可启动的 ISO、 disk 镜像、云镜像等,支持 Anaconda 安装镜像和 Live 镜像。
Professional system image creation skill using Lorax tool to create bootable ISOs, disk images, cloud images, supporting Anaconda installer and Live images.
bash
# RHEL/Fedora
dnf install lorax lorax-templates-generic
# 可选工具 | Optional tools
dnf install virt-install virt-builder guestfs-tools
text
/usr/share/lorax/
├── templates/ # 模板文件
│ ├── Fedora/ # Fedora 模板
│ └── RHEL/ # RHEL 模板
├── conf/ # 配置文件
└── logs/ # 日志文件
/var/tmp/lorax/ # 构建临时目录
bash
# 基本安装 ISO 创建
# Basic installer ISO creation
lorax \
-p "Fedora" \
-v "39" \
-r "39" \
-o "/var/tmp/lorax" \
/path/to/repo
# 完整参数示例
# Full parameter example
lorax \
-p "Fedora" \
-v "39" \
-r "39" \
-o "/var/tmp/lorax" \
--project "Fedora Project" \
--release "Fedora 39" \
--variant "Server" \
--bugurl "https://bugzilla.redhat.com" \
--isfinal \
--installpkgs "fedora-release,systemd" \
--excludepkgs "firewalld" \
--macboot \
/path/to/repo
bash
# 创建 Live ISO
# Create Live ISO
livemedia-creator \
--make-iso \
--iso-only \
--iso-name "Fedora-Live-Workstation-x86_64-39.iso" \
--project "Fedora" \
--releasever "39" \
--title "Fedora Live Workstation" \
--extra-kernel-args "rhgb quiet" \
--unionfs-config "NONE" \
/path/to/ks/file
# 使用自动安装文件
# Using kickstart file
livemedia-creator \
--make-iso \
--iso-only \
--ks "fedora-live.ks" \
--project "Fedora" \
--releasever "39" \
--title "Fedora Live" \
/path/to/repo
bash
# 创建 QCOW2 镜像
# Create QCOW2 image
virt-builder \
--fedora-39 \
--size 20G \
--format qcow2 \
--output "fedora-39.qcow2" \
--install "fedora-release,systemd"
# 创建 VMDK 镜像
# Create VMDK image
virt-builder \
--fedora-39 \
--size 20G \
--format vmdk \
--output "fedora-39.vmdk"
# 创建多格式镜像
# Create multi-format image
virt-builder \
--fedora-39 \
--size 20G \
--output "fedora-39" \
--formats "qcow2,vmdk,vdi"
bash
# 使用自定义模板
# Use custom template
lorax \
-p "CustomOS" \
-v "1.0" \
-r "1.0" \
-o "/var/tmp/lorax" \
--templatedir "/path/to/templates" \
--template "custom.tmpl" \
/path/to/repo
# 模板变量
# Template variables
lorax \
-p "CustomOS" \
-v "1.0" \
-r "1.0" \
-o "/var/tmp/lorax" \
--add-template-var "custom_var=value" \
--add-template-var "another_var=value2" \
/path/to/repo
bash
# 安装特定包
# Install specific packages
lorax \
-p "Fedora" \
-v "39" \
-r "39" \
-o "/var/tmp/lorax" \
--installpkgs "fedora-release,systemd,grub2,kernel" \
--installpkgs "gnome-desktop,firefox" \
--excludepkgs "firewalld,postfix" \
/path/to/repo
# 使用包组
# Use package groups
lorax \
-p "Fedora" \
-v "39" \
-r "39" \
-o "/var/tmp/lorax" \
--installpkgs "@core,@standard" \
--excludepkgs "@debugging" \
/path/to/repo
bash
# 创建 AWS AMI
# Create AWS AMI
virt-builder \
--fedora-39 \
--size 20G \
--format qcow2 \
--output "fedora-39-aws.qcow2" \
--install "fedora-release,cloud-init,aws-cli" \
--firstboot "/path/to/aws-config.sh"
# 创建 Azure VHD
# Create Azure VHD
virt-builder \
--fedora-39 \
--size 20G \
--format vpc \
--output "fedora-39-azure.vhd" \
--install "fedora-release,cloud-init,WALinuxAgent"
# 创建 GCE 镜像
# Create GCE image
virt-builder \
--fedora-39 \
--size 20G \
--format qcow2 \
--output "fedora-39-gce.qcow2" \
--install "fedora-release,cloud-init,google-compute-engine"
# 创建 OpenStack 镜像
# Create OpenStack image
virt-builder \
--fedora-39 \
--size 20G \
--format qcow2 \
--output "fedora-39-openstack.qcow2" \
--install "fedora-release,cloud-init"
bash
# fedora-live.ks 示例
# fedora-live.ks example
cat > fedora-live.ks << 'EOF'
# Platform
x86_64
# Language
lang en_US.UTF-8
# Keyboard
keyboard us
# Timezone
timezone UTC
# Root password
rootpw --plaintext password
# Bootloader
bootloader --location=mbr
# Partitioning
clearpart --all --initlabel
part / --fstype="ext4" --size=10000
part swap --size=2000
# Packages
%packages
@core
fedora-release
systemd
kernel
grub2
firefox
gnome-desktop
%end
# Post installation
%post
dnf update -y
%end
EOF
bash
# 创建自定义模板
# Create custom template
cat > /path/to/templates/custom.tmpl << 'EOF'
# 安装基本包
# Install base packages
installpkg fedora-release
installpkg systemd
installpkg kernel
installpkg grub2
# 安装桌面环境
# Install desktop environment
installpkg @gnome-desktop
# 创建目录
# Create directories
mkdir /etc/custom
mkdir /var/custom
# 复制文件
# Copy files
copy /path/to/config /etc/custom/config
# 运行命令
# Run commands
run ln -s /etc/custom/config /etc/config-link
# 设置启动项
# Setup boot
bootloader --append="rhgb quiet"
EOF
# 使用模板
# Use template
lorax \
-p "CustomOS" \
-v "1.0" \
-r "1.0" \
-o "/var/tmp/lorax" \
--templatedir "/path/to/templates" \
--template "custom.tmpl" \
/path/to/repo
bash
# x86_64 架构
# x86_64 architecture
lorax \
-p "Fedora" \
-v "39" \
-r "39" \
-o "/var/tmp/lorax-x86_64" \
--arch "x86_64" \
/path/to/repo
# aarch64 架构
# aarch64 architecture
lorax \
-p "Fedora" \
-v "39" \
-r "39" \
-o "/var/tmp/lorax-aarch64" \
--arch "aarch64" \
/path/to/repo
# ppc64le 架构
# ppc64le architecture
lorax \
-p "Fedora" \
-v "39" \
-r "39" \
-o "/var/tmp/lorax-ppc64le" \
--arch "ppc64le" \
/path/to/repo
bash
# 创建精简网络安装 ISO
# Create minimal network install ISO
lorax \
-p "Fedora" \
-v "39" \
-r "39" \
-o "/var/tmp/lorax-net" \
--netboot-only \
--installpkgs "anaconda,grub2,syslinux" \
/path/to/repo
选项Option描述Description-pproduct产品名称Product name-vversion版本号Version-rrelease发布号Release-ooutput输出目录Output directory--archarchitecture目标架构Target architecture--installpkgsinstall packages安装包列表Packages to install--excludepkgsexclude packages排除包列表Packages to exclude--templatedirtemplate dir模板目录Template directory--templatetemplate模板文件Template file--macbootmac bootMac 启动支持Mac boot support
选项Option描述Description--make-isomake ISO创建 ISOCreate ISO--make-diskmake disk创建磁盘镜像Create disk image--iso-onlyISO only仅 ISOISO only--kskickstartKickstart 文件Kickstart file--titletitle镜像标题Image title
选项Option描述Description--formatformat镜像格式Image format--sizesize镜像大小Image size--outputoutput输出文件Output file--installinstall安装包Install packages--firstbootfirstboot首次启动脚本Firstboot script
bash
# 查看详细日志
# View detailed logs
cat /var/tmp/lorax/lorax.log
# 检查依赖
# Check dependencies
dnf deplist lorax
# 清理临时文件
# Clean temp files
rm -rf /var/tmp/lorax/*
bash
# 检查 GRUB 配置
# Check GRUB configuration
grep -r "menuentry" /boot/grub2/
# 验证内核
# Verify kernel
rpm -qa kernel
# 检查启动日志
# Check boot logs
journalctl -xb
MIT License