Linux镜像怎么制作
小樊
49
2025-11-16 13:56:10
Linux镜像制作实用指南
常见镜像类型与适用场景
- ISO 镜像:用于光盘或U 盘启动安装;可通过工具如 mkisofs/genisoimage 制作,配合 isohybrid 可生成可在 U 盘启动的“混合 ISO”。适合制作安装介质或自定义 LiveCD。
- 磁盘/SD 卡镜像(.img):用于整机克隆、嵌入式设备、树莓派等;常用 dd 直接整盘克隆,或用 qemu-img 转换/调整大小,便于在虚拟机或设备上快速恢复与部署。
- 安装器定制 ISO:在现有发行版 ISO 基础上替换/追加内容,修改 isolinux/GRUB 启动项与 Kickstart(ks) 文件,实现无人值守安装与软件预装。
方法一 制作可启动的 ISO 安装镜像
- 安装工具(以 CentOS/RHEL 系为例):sudo yum install -y createrepo mkisofs dosfstools syslinux
- 准备目录并拷贝现有 ISO 内容:
- mount /dev/sr0 /mnt
- mkdir customISO && cp -ar /mnt/* customISO/
- 按需定制:
- 更新软件包或替换文件;编辑 isolinux/isolinux.cfg 或 EFI/BOOT/grub.cfg 的启动参数;
- 配置 ks.cfg 实现无人值守安装(如 url/ksdevice 等)。
- 生成 ISO:
- mkisofs -o custom.iso -b isolinux/isolinux.bin -c isolinux/boot.cat
-no-emul-boot -boot-load-size 4 -boot-info-table
-R -J -v -T customISO
- 转换为混合 ISO(U 盘可启动):isohybrid custom.iso
- 刻录/写入 U 盘(示例):dd if=custom.iso of=/dev/sdX bs=4M status=progress && sync
- 提示:不同发行版目录名与引导配置可能不同,请以实际 ISO 结构为准。
方法二 制作磁盘或 SD 卡的 img 镜像
- 整盘克隆(快速备份/还原)
- 查看设备:lsblk;确认目标盘(如 /dev/sda),谨慎操作避免覆盖系统盘
- 克隆:sudo dd if=/dev/sda of=system.img bs=4M status=progress
- 写回:sudo dd if=system.img of=/dev/sdX bs=4M status=progress && sync
- 从零创建空镜像并分区(嵌入式/定制场景)
- 创建空白镜像:sudo dd if=/dev/zero of=test.img bs=1M count=8452(示例约 8.45GB)
- 分区(示例 msdos 分区表,保留前 1MB 引导空间):
- parted test.img --script – mklabel msdos
- parted test.img --script – mkpart primary fat32 8192s 532479s
- parted test.img --script – mkpart primary ext4 532480s -1
- 关联循环设备并格式化:
- losetup -P /dev/loop46 test.img
- mkfs.msdos -L bootfs /dev/loop46p1
- mkfs.ext4 -L rootfs /dev/loop46p2
- 挂载分区并拷入引导与根文件系统,卸载后可用 qemu-img 转换/压缩
- 挂载与修改现有 img:
- losetup -P /dev/loopX your.img
- mount /dev/loopXp2 /mnt/root && mount /dev/loopXp1 /mnt/boot
- 修改完成后 umount 并 losetup -d /dev/loopX
- 提示:分区偏移与文件系统类型需与目标设备/平台匹配(如 FAT32/ext4)。
方法三 将现有 Linux 系统打包为压缩归档
- 清理与准备:
- Debian/Ubuntu:sudo apt-get clean && sudo rm -rf /var/cache/*
- RHEL/CentOS:sudo yum clean all && sudo rm -rf /var/cache/yum/*
- 打包根文件系统(示例排除虚拟文件系统与挂载点):
- sudo tar --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run
–exclude=/mnt --exclude=/media --one-file-system -czvf system.tar.gz -C / .
- 分发与恢复:
- 在新磁盘/根分区上解压:sudo tar xzvf system.tar.gz -C /mnt/newroot
- 配置 fstab、bootloader(如 GRUB)后重启
- 适用:快速迁移配置与软件环境,非可启动介质;适合云主机初始化或容器基底。
验证与常见问题
- 验证方式:
- ISO:用虚拟机(如 qemu/KVM)或实体机从 U 盘启动测试;检查是否能进入安装界面/无人值守流程
- IMG:用 qemu-system-x86_64 -drive file=system.img,format=raw 启动;或 dd 到测试盘验证
- 常见问题与要点:
- 权限与设备:涉及块设备与挂载操作需 root;操作前确认设备名,避免误写系统盘
- 分区对齐与空间:嵌入式/SD 卡镜像注意前导空间与分区对齐;必要时用 parted 的 s 单位精确设置
- U 盘启动:ISO 需转换为混合 ISO(isohybrid)才能在多数 U 盘固件上启动
- 镜像大小:dd 整盘会保留未用空间;可用 qemu-img resize/convert 调整或压缩后再分发。