当前位置: 首页 > news >正文

如何在ubuntu下制作linux镜像

目录

方案一:使用 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          # 引导程序bashcurlnano# 添加所需软件包
  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/releasesudo apt updatesudo 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
http://www.dtcms.com/a/352459.html

相关文章:

  • 深度学习之卷积神经网络原理(cnn)
  • AT_abc401_f [ABC401F] Add One Edge 3
  • Rocky9配置完VMware桥接模式后没有自动获取IP
  • 系统架构设计师-【2025上半年论文题目分享】
  • 六足机器人系统设计与实现cad+设计说明书+电路原图模式+装配图+电路图
  • Java设计模式之《状态模式》
  • 从根源解决 VMware 每次重启 Windows 系统后无法进行复制文件等操作的问题
  • 矩阵的秩几何含义
  • openssh 版本回退
  • Spring Ai (Function Calling / Tool Calling) 工具调用
  • 78-dify案例分享-零基础上手 Dify TTS 插件!从开发到部署免费文本转语音,测试 + 打包教程全有
  • 使用【阿里云百炼】搭建自己的大模型
  • Linux网络设备分析
  • 构建绿色园区新方案:能源监测+用电安全的综合能源管理系统
  • LeetCode - 227. 基本计算器 II
  • C++ `std::map` 解析:`find`, `end`, `insert` 和 `operator[]`
  • redis 在 nodejs 中如何应用?
  • 常用 Kubernetes (K8s) 命令指南
  • DevSecOps 集成 CI/CD Pipeline:实用指南
  • 【RAGFlow代码详解-30】构建系统和 CI/CD
  • 【智能化解决方案】大模型智能推荐选型系统方案设计
  • 简明 | ResNet特点、残差模块、残差映射理解摘要
  • VGVLP思路探索和讨论
  • C++ 并发编程中的锁:总结与实践
  • 绝命毒师模拟器2|单机+联机+绝命毒师模拟器1 全DLC(Drug Dealer Simulator 2+1)免安装中文版
  • 事件驱动架构详解
  • AI Agent安全的“阿喀琉斯之踵”:深度解析MCP核心风险与纵深防御架构
  • Python爬虫: 分布式爬虫架构讲解及实现
  • mysql是怎样运行的(梳理)
  • Java基础第二课:hello word