目录

方案一:使用 mkosi 工具(推荐)

步骤:

方案二:手动定制现有ISO(以Ubuntu为例)

步骤:

方案三:`Cubic`工具

测试镜像

关键注意事项


方案一:使用 mkosi 工具(推荐)

适用于创建基于当前系统的自定义镜像,支持多种格式(ISO、磁盘镜像等)。

步骤:
  1. 安装依赖:

    sudo apt update
    sudo apt install mkosi systemd-container  # 基础工具
    sudo apt install squashfs-tools grub-pc-bin  # ISO构建依赖
  2. 创建配置文件(如 mkosi.conf):

    [Distribution]
    Distribution=ubuntu
    Release=jammy  # Ubuntu 22.04代号
    
    [Output]
    Format=disk
    Output=custom-linux.img  # 输出镜像名称
    Bootable=yes
    
    [Content]
    Packages=
      linux-image-generic   # 内核
      systemd-boot          # 引导程序
      bash
      curl
      nano
      # 添加所需软件包
  3. 构建镜像:

    bash

    sudo mkosi build  # 自动下载包并生成镜像
    • 输出文件:custom-linux.img
  4. 转换为ISO:

    bash

    mkdir iso-root
    sudo mount custom-linux.img iso-root
    sudo mkisofs -o custom-linux.iso -b boot/grub/x86_64-efi/grub.img iso-root
    sudo umount iso-root

方案二:手动定制现有ISO(以Ubuntu为例)

适用于深度修改官方ISO(如预装软件、修改系统配置)。

步骤:
  1. 准备环境:

    sudo apt install squashfs-tools genisoimage xorriso
    mkdir ~/custom-iso && cd ~/custom-iso
  2. 解压原版ISO:

    sudo mount -o loop ubuntu-22.04.iso /mnt  # 挂载原版ISO
    rsync -a /mnt/ ./  # 复制内容(排除squashfs)
    sudo umount /mnt
  3. 解压系统文件:

    sudo unsquashfs ./casper/filesystem.squashfs  # 解压根文件系统
    sudo mv squashfs-root edit  # 重命名目录
  4. 进入Chroot环境修改系统:

    sudo mount --bind /dev edit/dev
    sudo mount -t proc none edit/proc
    sudo chroot edit /bin/bash
    
    # 在chroot中操作:
    apt update
    apt install -y your-package  # 安装软件
    apt clean  # 清理缓存
    exit  # 退出chroot
    
    # 卸载虚拟文件系统
    sudo umount edit/dev
    sudo umount edit/proc
  5. 重新生成squashfs文件:

    bash

    sudo mksquashfs edit filesystem.squashfs -comp xz
    sudo mv filesystem.squashfs ./casper/  # 替换原文件
  6. 更新校验信息:

    bash

    sudo bash -c "du -sx --block-size=1 edit > casper/filesystem.size"  # 更新大小
    find . -type f -print0 | xargs -0 md5sum > md5sum.txt  # 更新MD5
  7. 生成新ISO:

    bash

    sudo mkisofs -o ../custom-linux.iso \
      -V "My Linux" \
      -b isolinux/isolinux.bin \
      -c isolinux/boot.cat \
      -no-emul-boot -boot-load-size 4 -boot-info-table \
      -eltorito-alt-boot -e efi/boot/bootx64.efi -no-emul-boot \
      .

方案三:`Cubic`工具

        还有一种方法是使用`Cubic`工具,它提供了一个图形界面来制作自定义的Ubuntu ISO,使用起来更简单。

        使用Cubic

        如果你希望使用图形化工具,可以尝试安装Cubic:

sudo apt-add-repository ppa:cubic-wizard/release

sudo apt update

sudo apt install cubic

Cubic会引导你完成选择基础ISO、解压、进入chroot环境修改,然后重新打包ISO的步骤。
Cubic问题解决

测试镜像

使用QEMU虚拟机测试:

bash

qemu-system-x86_64 -boot d -cdrom custom-linux.iso -m 2048

关键注意事项

  1. 空间要求:构建过程需要15GB+磁盘空间
  2. 权限管理:所有文件操作需用sudo
  3. 引导兼容性:
    • BIOS模式:确保isolinux/isolinux.bin存在
    • UEFI模式:检查efi/boot/bootx64.efi路径
  4. 内核兼容:如果修改内核版本,需同步更新initramfs:
    chroot edit
    update-initramfs -u
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐