前置条件
######################################
当前文章来源 > cnetos7 ISO 镜像自定义制作
######################################
准备系统镜像,比如去官网下载CentOS-7-x86_64-Minimal-2009.iso
镜像
并且将镜像挂载到/mnt/iso
目录下,同时安装genisoimage
工具,准备构建系统镜像
1 | mkdir -p /mnt/iso |
将挂载点的镜像内容先全部拿出来到随便一个位置
1 | mkdir -p /temp/iso || true && cp -a /mnt/* /temp/iso |
自动应答
参考ks.cfg
配置,做一个自动应答出来,为了简化重装流程啥的,这里就不详细说了,可以自己看看参数介绍,看着改
参数 | 功能 | 说明 | 是否必须 |
---|---|---|---|
auth / authconfig | 配置认证方式 | 指定系统认证方式,如启用 Shadow 密码、MD5 加密或 LDAP/Kerberos 等。例如:auth --enableshadow --passalgo=sha512 |
可选 |
autopart | 自动分区 | 自动创建标准分区(/boot、/、swap 等)。例如:autopart --type=lvm |
可选,与part 互斥 |
bootloader | 配置引导加载程序 | 指定引导加载程序类型(如 GRUB)、位置和密码等。例如:bootloader --location=mbr --password=grubpass |
必须 |
cdrom | 指定 CD/DVD 安装 | 表示从 CD/DVD 进行安装。 | 可选,与其他安装方法互斥 |
clearpart | 清除分区 | 删除指定磁盘的分区,如clearpart --all --drives=sda 清除 sda 上的所有分区。 |
可选 |
cmdline | 使用非交互式安装 | 指定非图形界面的命令行安装模式。 | 可选 |
device | 指定设备模块 | 定义额外的硬件设备及其模块。例如:device --opts="options" |
可选 |
driverdisk | 使用驱动磁盘 | 指定驱动磁盘的位置以加载额外的驱动程序。 | 可选 |
firewall | 配置防火墙 | 定义防火墙规则,如开放的端口或服务。例如:firewall --enabled --ssh |
可选 |
firstboot | 配置首次启动 | 启用或禁用首次启动向导。例如:firstboot --disable |
可选 |
graphical | 使用图形安装 | 指定使用图形界面进行安装。 | 可选,与text 或cmdline 互斥 |
halt | 安装后关机 | 安装完成后关闭系统。 | 可选,与reboot 、poweroff 等互斥 |
install | 指定安装方式 | 定义安装来源(如 CDROM、NFS、URL)。例如:install url --url=http://server/path |
可选 |
keyboard | 设置键盘布局 | 指定键盘布局,如keyboard us 或keyboard cn 。 |
必须 |
lang | 设置语言 | 定义安装和系统默认语言,如lang zh_CN.UTF-8 。 |
必须 |
logging | 配置日志记录 | 指定日志级别或日志服务器。例如:logging --level=debug |
可选 |
network | 配置网络 | 设置网络参数,如 IP、网关、DNS 等。例如:network --bootproto=dhcp --device=eth0 |
可选(若需网络安装则必须) |
part / partition | 自定义分区 | 定义磁盘分区方案,如part / --size=10240 --fstype=ext4 。 |
可选,与autopart 互斥 |
reboot | 安装后重启 | 安装完成后自动重启系统。 | 可选 |
rootpw | 设置 root 密码 | 指定 root 用户密码,可明文或加密。例如:rootpw --iscrypted $6$... |
必须 |
selinux | 配置 SELinux | 设置 SELinux 模式(enforcing、permissive、disabled)。例如:selinux --enforcing |
可选 |
services | 配置服务 | 指定开机启动或禁用的服务。例如:services --enabled=sshd |
可选 |
skipx | 跳过 X 配置 | 在非图形环境中跳过 X Window 配置。 | 可选 |
text | 使用文本安装 | 指定使用文本界面进行安装。 | 可选,与graphical 互斥 |
timezone | 设置时区 | 指定系统时区,如timezone Asia/Shanghai 。 |
必须 |
url | 指定网络安装源 | 定义网络安装源地址,如url --url=http://mirror.centos.org/centos/7/os/x86_64 。 |
可选,与其他安装方法互斥 |
user | 创建用户 | 在安装时创建普通用户。例如:user --name=testuser --password=testpass |
可选 |
zerombr | 初始化磁盘 | 清除磁盘上的无效分区表。 | 可选 |
%packages | 定义软件包 | 指定安装的软件包或组,如@core 或具体包名。 |
可选 |
%pre | 预安装脚本 | 在安装开始前执行的脚本,用于自定义环境。 | 可选 |
%post | 安装后脚本 | 在安装完成后执行的脚本,用于额外配置。 | 可选 |
编辑isolinux.cfg
追加一行 inst.ks=cdrom:/isolinux/ks.cfg
1 | default=1 |
编辑./isolinux/grub.conf
追加一行 inst.ks=cdrom:/isolinux/ks.cfg
1 | default=1 |
编辑./EFI/BOOT/grub.cfg
, /images/pxeboot/vmlinuz 后面增加
1 | menuentry'Install CentOS 7' --class fedora --class gnu-linux --class gnu --class os { |
修改 CentOS\x207\x20x86_64 为 CentOS7
1 | sed -i 's/CentOS\\x207\\x20x86_64/CentOS7/g' /temp/iso/iso/isolinux/isolinux.cfg |
放入 tar 包
1 | cp backup.tar.gz /temp/iso/iso/Packages |
重新制作镜像
1 | genisoimage -joliet-long -V "CentOS7" -o CentOS7-test.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot \ |
使服务器 BOIS 模式能够识别 U 盘系统
1 | isohybrid CentOS7-test.iso |