封装无人值守安装的 Linux 操作系统镜像

CentOS 系统为例,以下是封装一个无人值守安装的 Linux 操作系统镜像的一般步骤:

一、准备工作

  1. 安装源:下载 CentOS 官方镜像文件,可从CentOS 官方网站获取。
  2. 工具软件:安装createrepo(用于创建软件仓库元数据)、syslinux(用于制作可引导的 ISO 镜像)等工具。在 CentOS 上可以使用以下命令安装:

yum install -y createrepo syslinux 

二、配置自动应答文件

    1.安装 Anaconda 工具Anaconda CentOS 安装程序使用的工具,通过它可以生成自动应答文件。如果系统中没有安装,可使用以下命令安装:

yum install -y system-config-kickstart

    2.生成自动应答文件:使用system-config-kickstart命令打开图形化的 Kickstart 配置工具,根据提示配置系统安装选项,包括分区设置、软件包选择、网络配置、用户设置等。配置完成后,将自动应答文件保存为ks.cfg,通常放在/root目录下。

三、定制镜像

     1.挂载原始镜像:创建一个挂载点,例如/mnt/iso,然后将下载的mkdir /mnt/iso

mount -o loop /home/CentOS-7-x86_64-DVD-2207-02.iso /mnt/iso

     2.复制镜像内容:创建一个工作目录,如/tmp/centos-ks,将挂载的镜像内容复制到该目录:

mkdir /tmp/centos-ks

cp -rf /mnt/iso/* /tmp/centos-ks/

     3.添加自动应答文件:将生成的ks.cfg文件复制到镜像的isolinux目录下(对于 CentOS 7 及以下版本)或EFI/BOOT目录下(对于 CentOS 8 及以上版本)。同时,在相应的启动配置文件中(如isolinux.cfggrub.cfg)添加启动参数,指定自动应答文件的位置。例如,在isolinux.cfg中添加以下内容:

label linux

menu label ^Install CentOS

kernel vmlinuz

append initrd=initrd.img inst.ks=hd:LABEL=CentOS\x207\x20x86_64:/ks.cfg quiet

这里假设镜像的卷标为CentOS 7 x86_64,根据实际情况修改。

    4.更新软件仓库元数据:进入镜像的软件包目录(通常是/tmp/centos-ks/Packages),使用createrepo命令更新软件仓库元数据:

cd /tmp/centos-ks/Packages

createrepo .

四、制作新的镜像

    1.生成 ISO 镜像:使用mkisofs命令制作新的 ISO 镜像,例如:

cd /tmp/centos-ks

mkisofs -o /home/CentOS-7-x86_64-DVD-2207-auto.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -R -v -T .

    此命令会根据当前目录下的内容生成一个新的 ISO 镜像,指定了引导文件和相关参数。

mkisofs命令参数解析:

    这是用于创建 ISO 9660 文件系统镜像的工具,部分系统也将其称为 genisoimage,它们的功能基本一致。

-o /home/CentOS-7-x86_64-DVD-2207-auto.iso

    -o 属于输出(output)参数,它用于指定生成的 ISO 镜像文件的保存路径和文件名。CentOS-7-x86_64-DVD-2207-auto.iso 是需要替换成实际路径和文件名的部分,例如 /home/user/new-centos.iso

 -b isolinux/isolinux.bin

    -b 代表引导文件(boot image),其作用是指定用于引导的二进制文件。isolinux/isolinux.bin 是引导文件的相对路径,isolinux.bin  ISOLINUX 引导加载程序的主文件,此文件能够让 ISO 镜像具备可引导的特性。

-c isolinux/boot.cat

    -c 用于指定引导目录(boot catalog)文件。isolinux/boot.cat 是引导目录文件的相对路径,这个文件会记录引导相关的信息,协助系统在启动时正确识别引导选项。

-no-emul-boot

    该参数表明不使用模拟磁盘的方式进行引导。在创建可引导的 ISO 镜像时,通常不需要模拟磁盘,所以要加上这个参数。

-boot-load-size 4

    此参数用于指定引导扇区加载的扇区数量。4 意味着加载 4 个扇区,一般来说,这个值是 4 就能够保证引导程序正常加载。

-boot-info-table

    这个参数的作用是在 ISO 镜像里创建一个引导信息表,该表包含了引导扇区的位置等关键信息,有助于引导程序准确找到引导扇区。

-J

    -J 代表 Joliet 格式,它允许在 ISO 镜像中使用长文件名和 Unicode 字符。Joliet ISO 9660 文件系统的扩展,能增强文件名的兼容性。

 -R

    -R 表示使用 Rock Ridge 扩展,它允许在 ISO 镜像中保留 Unix 文件系统的权限、用户和组信息等。Rock Ridge 扩展同样是对 ISO 9660 文件系统的扩展,能让 ISO 镜像更好地兼容 Unix 系统。

-v

    -v 是详细模式(verbose)参数,开启该参数后,mkisofs 会在创建镜像的过程中输出详细的日志信息,方便你了解创建的进度和状态。

 -T

    -T 代表 Translate,它会将文件的权限信息转换为 ISO 9660 标准的权限信息,从而保证镜像在不同系统上的兼容性。

 .

    这是输入目录参数,. 代表当前目录,也就是 /tmp/centos-ks 目录。mkisofs 会把这个目录下的所有文件和子目录都打包到 ISO 镜像中。

    综上所述,这个命令的功能是将 /tmp/centos-ks 目录下的内容制作成一个可引导的 ISO 镜像文件,并且保存在/home/CentOS-7-x86_64-DVD-2207-auto.iso位置。

    2.验证镜像:将生成的镜像刻录到光盘或制作成 USB 启动盘,然后在虚拟机或物理机上进行测试,确保系统能够无人值守地自动安装。

    对于其他 Linux 发行版,如 Ubuntu 等,也有类似的方法,但具体的工具和步骤可能会有所不同。例如,Ubuntu 可以使用ubiquity-slideshow-ubuntu等工具来配置自动安装文件,然后使用xorriso等工具制作镜像。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值