如何制作Linux镜像
导读:制作 Linux 镜像的常用方法与步骤 一、常见镜像类型与适用场景 ISO 镜像:用于光盘/U 盘启动与系统安装,适合做安装介质或自定义 LiveCD/安装器。 磁盘/分区镜像(img/raw/qcow2):用于整机备份、克隆与虚拟化部署...
制作 Linux 镜像的常用方法与步骤
一、常见镜像类型与适用场景
- ISO 镜像:用于光盘/U 盘启动与系统安装,适合做安装介质或自定义 LiveCD/安装器。
- 磁盘/分区镜像(img/raw/qcow2):用于整机备份、克隆与虚拟化部署,适合批量复制与快速回滚。
- 容器镜像(Docker 等):用于应用与运行环境分发,适合微服务与云原生场景。
二、制作可启动 ISO 镜像
- 准备与挂载原镜像
- 挂载现有 ISO:
mount /dev/sr0 /mnt - 拷贝到工作目录:
cp -ar /mnt/* customISO/
- 挂载现有 ISO:
- 安装必要工具(以 CentOS/RHEL 为例)
yum install -y createrepo mkisofs dosfstools syslinux
- 自定义内容
- 按需更新软件包、修改 isolinux/grub 启动项、加入 Kickstart(ks.cfg) 实现无人值守安装。
- 生成 ISO
- 基本:
mkisofs -r -o output.iso /path/to/customISO - 常用参数:
-J(Joliet 兼容 Windows)、-l(长文件名)、-V 卷标名、-o 输出文件 - 制作混合 ISO(可 dd 写入 U 盘并可直接启动):
isohybrid output.iso
- 基本:
- 刻录 U 盘
- 先分区并格式化为 FAT32:
mkfs.vfat /dev/sdX1 - 写入镜像:
dd if=output.iso of=/dev/sdX bs=4M status=progress & & sync
- 先分区并格式化为 FAT32:
- 说明
- 在 CentOS 6 上
mkisofs的软件包名为 genisoimage,用法一致。
- 在 CentOS 6 上
三、制作磁盘或分区镜像 img/raw
- 整机磁盘镜像(备份/克隆)
- 备份整盘到镜像:
sudo dd if=/dev/sda of=system.img bs=4M status=progress - 从镜像恢复到磁盘:
sudo dd if=system.img of=/dev/sdb bs=4M status=progress
- 备份整盘到镜像:
- 仅备份某个分区
- 先查看分区:
sudo fdisk -l /dev/sda - 备份分区:
sudo dd if=/dev/sda1 of=part1.img bs=4M status=progress
- 先查看分区:
- 挂载与修改镜像
- 挂载镜像的某分区(示例为 loop 挂载第一个分区):
sudo losetup -fP system.img sudo mount /dev/loop0p1 /mnt # 修改完成后 sudo umount /mnt sudo losetup -d /dev/loop0
- 挂载镜像的某分区(示例为 loop 挂载第一个分区):
- 虚拟化使用
- 转换为 qcow2(便于稀疏存储与快照):
qemu-img convert -f raw -O qcow2 system.img system.qcow2
- 转换为 qcow2(便于稀疏存储与快照):
- 提示
- 目标介质容量需不小于原盘;跨硬件部署时,优先使用通用驱动与通用内核启动参数。
四、制作容器镜像用于分发
- 基于容器定制系统环境
- 启动并进入容器:
docker run -it --name mylinux ubuntu:latest - 在容器内配置:
apt-get update & & apt-get install -y < your-packages>
- 启动并进入容器:
- 提交为镜像
docker commit mylinux mylinuximg:latest- 查看:
docker images
- 导出与导入
- 导出:
docker save -o mylinuximg.tar mylinuximg:latest - 导入:
docker load -i mylinuximg.tar
- 导出:
- 说明
- 容器镜像适合分发应用与轻量环境;若需完整 init/systemd 体验,需使用特权容器或专用基础镜像。
五、实用建议与常见问题
- 镜像瘦身
- 清理包缓存与临时文件:
apt-get clean、yum clean all、rm -rf /var/tmp/* /tmp/* - 移除无用日志与历史:
journalctl --vacuum-time=7d、history -c
- 清理包缓存与临时文件:
- 校验与测试
- ISO 校验:计算并记录 SHA256:
sha256sum output.iso - 启动测试:在虚拟机(如 QEMU/KVM、VirtualBox)或物理机验证能否正常引导与安装。
- ISO 校验:计算并记录 SHA256:
- 自动化安装
- 在 ISO 的 isolinux/grub 中指定 ks.cfg,实现无人值守安装与标准化交付。
- 数据安全
- 操作前完整备份;
dd操作务必确认 if=/dev/sdX 为目标磁盘,避免误写系统盘。
- 操作前完整备份;
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何制作Linux镜像
本文地址: https://pptw.com/jishu/750617.html
