Linux镜像制作自定义版通用流程及工具指南
制作Linux自定义镜像的核心是通过基础环境准备→原始镜像解包→个性化定制→重新打包→验证测试的流程,适配不同发行版(如CentOS、Ubuntu)的需求。以下是具体方法:
无论选择哪种发行版,都需要安装以下工具处理镜像、依赖及引导:
createrepo(生成软件包元数据,解决依赖)、mkisofs/xorriso(制作ISO镜像)、isomd5sum(生成ISO校验码,确保完整性)、squashfs-tools(处理压缩的根文件系统,如Ubuntu的squashfs);syslinux(处理BIOS引导),Ubuntu需grub-pc-bin(处理UEFI引导)。yum install -y createrepo mkisofs isomd5sum squashfs-tools syslinux
~/custom-iso);squashfs的发行版,需解压根文件系统(casper/filesystem.squashfs)以便修改:mkdir /mnt/iso && mount -o loop original.iso /mnt/iso
rsync -a /mnt/iso/ ~/custom-iso/ # 复制内容
sudo unsquashfs /mnt/iso/casper/filesystem.squashfs # 解压到squashfs-root
sudo mv squashfs-root edit # 重命名便于操作
Chroot(Change Root)允许在隔离环境中修改系统文件,如同在真实系统中操作:
sudo mount --bind /dev edit/dev # 绑定虚拟设备
sudo mount -t proc none edit/proc # 绑定proc文件系统
sudo chroot edit /bin/bash # 进入chroot
在chroot中可执行以下定制操作:
apt update && apt install -y vim wget(Ubuntu)或yum install -y httpd(CentOS);/etc/ssh/sshd_config(开启SSH)、/etc/fstab(挂载点设置)等;/etc/rc.local(开机自动执行);apt clean(Ubuntu)或yum clean all(CentOS)。exit
sudo umount edit/dev edit/proc
修改完成后,需将edit目录重新压缩为squashfs(Ubuntu)或更新Packages元数据(CentOS):
sudo mksquashfs edit ~/custom-iso/casper/filesystem.squashfs -comp xz # 压缩
sudo bash -c "du -sx --block-size=1 edit > ~/custom-iso/casper/filesystem.size" # 更新大小
repodata(依赖元数据):createrepo -g repodata/comps.xml ~/custom-iso/ # 生成元数据
isolinux/isolinux.cfg,添加Kickstart自动安装参数(如ks=cdrom:/ks.cfg)和网卡命名设置(net.ifnames=0 biosdevname=0);isolinux/isolinux.cfg或grub.cfg,确保引导参数正确(如boot=casper)。使用mkisofs或xorriso将定制后的目录打包为ISO,添加引导信息和校验码:
cd ~/custom-iso
mkisofs -o custom-linux.iso \
-b isolinux/isolinux.bin -c isolinux/boot.cat \ # BIOS引导
-no-emul-boot -boot-load-size 4 -boot-info-table \ # 引导参数
-eltorito-alt-boot -e efi/boot/bootx64.efi -no-emul-boot \ # UEFI引导
-R -J -v -T . # Rock Ridge、Joliet扩展
isomd5sum custom-linux.iso > custom-linux.iso.md5 # 生成校验码
使用虚拟机(如VirtualBox、VMware)或物理机测试ISO的可引导性和定制功能:
qemu-system-x86_64 -boot d -cdrom custom-linux.iso -m 2048 # 使用QEMU模拟
sudo add-apt-repository ppa:cubic-wizard/release
sudo apt update && sudo apt install cubic
启动Cubic后,选择原始ISO,按向导完成定制。sudo避免权限不足;isolinux.bin)和UEFI(bootx64.efi)引导文件;initramfs(update-initramfs -u)。通过以上步骤,可制作出适配不同场景(如自动化安装、预装软件、系统优化)的Linux自定义镜像,满足企业或个人需求。