Windows 无人值守常见,Linux 无人值守装机你会配吗
原创
ralap
ralap
网络个人修炼
2026年10月29日 10:44
陕西
去阅读
前面已经介绍了 Windows 无人值守应答文件如何配置。平时安装 Linux 服务器时,大多是一路点击“下一步”,再设置分区和密码,个人觉得难度不高。评论区有朋友询问 Linux 无人值守安装如何操作,于是我实际研究测试后,整理并分享相关步骤。
Linux无人值守原理
先回顾手动安装 Linux 服务器时,安装向导依次弹出的交互问题:
- 选择语言
- 选择键盘布局
- 设置时区
- 网络配置
- 磁盘分区、确认是否覆盖磁盘数据
- 设置账号密码
- 选择软件包(最小化/完整安装)
- 配置引导程序,最后重启
Linux 无人值守的核心原理是应答文件:提前把安装向导的所有交互式问题写入答案。安装器启动后会优先读取这份配置:有配置项就直接执行并跳过交互;缺少必填项时,安装流程暂停,等待人工操作。下面以 CentOS 7 为例进行介绍。
一、BIOS 模式:ks.cfg
适用:CentOS 7 BIOS 传统启动。
模板说明
需求:BIOS 模式、自定义分区方案、设置 root 密码;语言、键盘、时区、安装源全部采用默认配置;选择最小化安装,无后置脚本,全程无交互。
installtexttimezone Asia/Shanghai --utccdromrootpw --iscrypted $6$<openssl生成的密码哈希>bootloader --location=mbrclearpart --all --initlabel --drives=sdapart /boot --fstype=ext4 --size=1024part swap --size=2048part / --fstype=xfs --grow --size=10240%packages@^minimal%endreboot
密码哈希生成命令:
openssl passwd -6 你的密码
CentOS 7 ks.cfg 放在镜像哪里?怎么加载?
BIOS 模式下,安装器启动时首先读取 isolinux/isolinux.cfg 中的启动菜单。因此需要做两件事:把 ks.cfg 放进镜像根目录,并在 isolinux.cfg 中新增一个启动项,通过 inst.ks=cdrom:/ks.cfg 指定应答文件路径。
制作自定义 ISO 时,按以下顺序操作:
1.放置应答文件
将 ks.cfg 放到镜像根目录,即 /ks.cfg。
2.修改启动菜单 isolinux/isolinux.cfg
将默认启动项由default vesamenu.c32 改为 default ks,使启动菜单默认选中后面新增的 label ks;将 timeout 600改为 timeout 30,缩短等待时间;
找到原默认菜单项中的 menu default 行并删除,原文约为第 68 行;删除它是为了避免出现两个默认启动项;
在 label linux 上方插入以下 5 行(原文约为第 60 行附近):
label ks menu label ^Auto Install CentOS Linux 7 (Kickstart) menu default kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\\x207\\x20x86_64 inst.ks=cdrom:/ks.cfg quiet
3.保存并替换原文件
保存修改后的 isolinux.cfg,覆盖镜像中的原文件。
4.启动自定义 ISO
之后用该自定义 ISO 启动,在启动菜单选择自动安装项,或等待默认项自动执行,即可开始无人值守安装。
二、UEFI 模式:ks.cfg
适用:CentOS 7 UEFI 启动。
同样使用 AnyBurn 在镜像根目录放置应答文件;为与 BIOS 方案区分,命名为 ks-uefi.cfg。配置如下
installtexttimezone Asia/Shanghai --utccdromrootpw --iscrypted $6$<openssl生成的密码哈希>zerombrclearpart --all --initlabel --drives=sdapart /boot/efi --fstype=efi --size=200part /boot --fstype=ext4 --size=1024part swap --size=2048part / --fstype=xfs --grow --size=10240bootloader --driveorder=sda%packages@^minimal%endreboot
UEFI 启动配置由 EFI/BOOT/grub.cfg 文件管理,因此需要在 grub.cfg 中添加相关配置:
将 set default=\"1\" 改为 set default=\"0\";
将 set timeout=60 改为 set timeout=5 ;
在 search --no-floppy --set=root -l 'CentOS 7 x86\_64' 下新增:
menuentry 'Auto Install CentOS7 UEFI (Kickstart)' --class centos --class gnu-linux --class gnu --class os { linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\\x207\\x20x86_64 inst.ks=cdrom:/ks-uefi.cfg quiet initrdefi /images/pxeboot/initrd.img}
此外,UEFI 相对 BIOS 还多了一个 efiboot.img 文件需要修改。该 img 文件内部也内置了 grub.cfg;如果只修改外部 grub.cfg,UEFI 启动时可能无法正常读取,因此需要把外部的 grub.cfg的配置同步替换到 efiboot.img 内部(可以使用 WinImage 或软碟通进行替换)。
保存完成后,用自定义 ISO 启动,全流程无需手动干预。
整体bios+UEFI双启动就全部配置完成,下期分享Ubuntu2204/2404相关自动化安装教程
参考链接
[1]https://docs.redhat.com/en/documentation/red\_hat\_enterprise\_linux/7/html/installation\_guide/chap-kickstart-installations#sect-kickstart-introduction
[2]https://docs.redhat.com/zh-cn/documentation/red\_hat\_enterprise\_linux/7/pdf/installation\_guide/installation-guide.pdf658#6
[3]https://winimage.com/download.htm
相关阅读
装系统还要一直点“下一步”?教你给全家桶镜像加上“全自动导航”
每次重装系统都要重装软件?手把手教你打造自己的“自用预装全家桶”Windows镜像
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论