制作自动安装Rocky-9.6-minimal.iso镜像
一、原理特色
1 本方案用ksckstart文件做无人值守应答
2 调试成传统网络设备命名方案eht0
3 默认磁盘分区为标准分区非lvm分区
4 用iso刻录成u盘使用
5 指定固定IP GATEWAY DNS
6 定制密码策略
7
二、准备iso镜像
https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9.3-x86_64-minimal.iso
三、准备引导菜单文件 (我们可以从iso的isolinux中提取)vim isolinux.cfg Unix UTF-8
# 只显示需要修改的部分其他和原版一样 label linux menu label ^Install Rocky Linux 9.6 kernel vmlinuz # 指定dvd光盘驱动器(光盘安装) append initrd=initrd.img inst.repo=cdrom inst.ks=cdrom:/isolinux/ks.cfg biosdevname=0 net.ifnames=0 quiet # 指定 U盘 文件系统标签LABEL=Rocky-9-6-x86_64-DVD(要通过genisoimage写入文件系统标签,我们用原始镜像默认的标签) # append initrd=initrd.img inst.repo=hd:LABEL=Rocky-9-6-x86_64-DVD inst.ks=cdrom:/isolinux/ks.cfg biosdevname=0 net.ifnames=0 quiet
补充:
# 用iso镜像写入到usb盘的如何确定标签 1 这个标签是usb的标签 LABEL= # 写入iso后会有默认标签如何查询usb标签 方法1: cmd -- 输入win10自带命令工具名称 diskpart -- list volume 即可看到 对应的标签字样 方法2:右键我的电脑 -- 管理 -- 设备管理器 -- 磁盘驱动器 -- 选取你的U盘 -- 右键属性 -- 常规里有标签 -- 如果没有就是usb分了多个卷 -- 点击卷菜单 -- 写入 -- 查看某个卷的标签
四、制作ksckstart文件 vim ks.cfg Unix UTF-8
#version=RHEL9 # 自动执行界面 autostep --nosave cdrom #语言键盘 lang en_US.UTF-8 keyboard --vckeymap=us --xlayouts='us' # 主机网络 network --hostname=kcadmin network --bootproto=static --device=eth0 --gateway=192.168.163.2 --ip=192.168.163.204 --nameserver=8.8.8.8 --netmask=255.255.255.0 --ipv6=auto --activate # 时区与地区设置 timezone Asia/Shanghai --utc eula --agreed firstboot --disable # root密码 rootpw --iscrypted $6$5pqjRUPHn6cyHS12$m2zRJKWf9FGRzaFLUfLNDDaFPBgR5Bz1JDBVhQHJ4ZYk2SVlGF7o9xqDc35dczsgRZ5LZ3cc2ykh1rpIZZA.V/ # 关闭防火墙selinux firewall --disabled selinux --disabled # 安装最小环境所需包 %packages @^minimal-environment %end # 安装完成自动重启并弹出安装介质 reboot --eject # yum源 repo --name="minimal" --baseurl=file:///run/install/sources/mount-0000-cdrom/minimal # 关闭kdump %addon com_redhat_kdump --disable %end # ------ PRE SCRIPT:识别磁盘并生成分区配置 ------ %pre --interpreter /bin/bash --log=/tmp/pre.log DISK=$(lsblk -dn -o NAME | grep -E '^(sda|vda|hda|nvme[0-9]n1)$' | head -n1) if [ -z "$DISK" ]; then echo "No valid disk found." >> /tmp/pre.log exit 1 fi { echo "ignoredisk --only-use=$DISK" echo "clearpart --drives=$DISK --initlabel" echo "part /boot --fstype=xfs --ondisk=$DISK --size=1024" echo "part swap --fstype=swap --ondisk=$DISK --size=2048" echo "part / --fstype=xfs --ondisk=$DISK --size=17407 --grow" } > /tmp/dynamic-part.ks echo "Generated partition file for $DISK" >> /tmp/pre.log %end # 引用动态分区文件 %include /tmp/dynamic-part.ks # ------ POST SCRIPT:1配置允许ssh-root密码登录2limits3内核参数 ------ %post --interpreter /bin/bash --log=/tmp/post.log # 配置允许root密码登录 systemctl enable sshd systemctl start sshd sed -i 's/^#PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config sed -i 's/^#PermitEmptyPasswords.*/PermitEmptyPasswords no/' /etc/ssh/sshd_config systemctl restart sshd # 设置资源限制 cat > /etc/security/limits.d/99-custom-limits.conf << EOF * soft nofile 65536 * hard nofile 131072 * soft nproc 65536 * hard nproc 131072 EOF # 设置内核参数 cat > /etc/sysctl.d/99-custom-sysctl.conf << EOF fs.file-max = 2097152 vm.swappiness = 10 net.core.somaxconn = 65535 net.ipv4.tcp_tw_reuse = 1 net.ipv4.ip_forward = 1 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 EOF # 立即应用 sysctl 设置 sysctl --system %end
五、准备iso刻录修改工具 UltraISO 9.7.3.3618 (软碟通)把上述2个文件导入iso
5.1 导入isolinux.cfg 到 iso的isolinux目录
5.2 导入 ks.cfg 到 iso的isolinux目录
5.3 另存为Rocky93-autoinstall.iso
5.4 如果想设置卷标则 UltraISO -- 工具 -- 修改iso卷标 -- 建议全大写(大小写敏感)
六、上机测试
七、磁盘的精细化选择
# 是 sda vda hda nvme 磁盘 # 且大于32G磁盘 (避免U盘被被选中) DISK=$(lsblk -dn -o NAME,SIZE | awk '$2 ~ /G$/ && $2+0 > 32 && $1 ~ /^(sda|vda|hda|nvme[0-9]n1)$/ {print $1}' | head -n1)
本文来自博客园,站在巨人的肩膀上,坚持开源精神,遵循开源协议:Apache Licene 2.0协议。
浙公网安备 33010602011771号