温馨提示×

怎么定制Ubuntu From Scratch

小樊
33
2026-07-14 09:12:59
栏目: 智能运维

Ubuntu From Scratch (UFS) 严格来说并不是一个像 Linux From Scratch (LFS) 那样官方、标准化的项目。LFS 是教你从源码编译一个 Linux 系统,而 Ubuntu 的核心是基于 Debian 的预编译包。

因此,“定制 Ubuntu From Scratch” 通常有两种含义:

  1. 真正的从零构建:基于 Debian 的构建工具(debootstrap)创建一个最小系统,然后像 LFS 一样手动配置(这是最接近你字面意思的做法)。
  2. 定制 Ubuntu 安装镜像:修改官方的 Ubuntu ISO,加入你想要的软件、驱动或配置,然后制作成新的安装盘(这是大多数用户想要做的)。

以下是这两种方法的详细指南:


方法一:基于 Debootstrap 构建最小 Ubuntu(最接近“From Scratch”)

这种方法是在你现有的 Linux 系统里,利用 debootstrap 工具从零开始安装一个 Ubuntu 的基础文件系统。

适用场景:制作容器基础镜像、极简系统、理解 Ubuntu 的目录结构。

步骤 1: 准备工作

你需要一个正在运行的 Linux 系统(可以是 Ubuntu 或 Debian)。

sudo apt update
sudo apt install debootstrap schroot

步骤 2: 使用 Debootstrap 拉取基础系统

假设我们要构建一个 Ubuntu 22.04 (Jammy) 的 amd64 架构系统,放在 /mnt/ubuntu-base 目录下。

# 创建目标目录
sudo mkdir -p /mnt/ubuntu-base

# 运行 debootstrap
# 格式: sudo debootstrap <版本代号> <目标目录> <镜像源>
sudo debootstrap jammy /mnt/ubuntu-base http://archive.ubuntu.com/ubuntu

这个过程会下载 Ubuntu 的最小必要文件(大约 200-300MB)。

步骤 3: 进入新系统 (Chroot)

现在你已经有了一个 Ubuntu 的骨架,进入它进行配置:

# 挂载必要的虚拟文件系统
sudo mount --bind /dev /mnt/ubuntu-base/dev
sudo mount --bind /proc /mnt/ubuntu-base/proc
sudo mount --bind /sys /mnt/ubuntu-base/sys

# 切换根目录到新系统
sudo chroot /mnt/ubuntu-base

步骤 4: 基础配置

现在你已经在“新系统”里了(提示符可能会变)。

  1. 设置语言和时区

    apt update
    apt install locales
    dpkg-reconfigure locales  # 选择 en_US.UTF-8 或 zh_CN.UTF-8
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    
  2. 设置主机名

    echo "my-custom-ubuntu" > /etc/hostname
    
  3. 设置 root 密码(非常重要,否则可能无法登录):

    passwd
    
  4. 安装内核和引导程序(如果你想把它做成实体机系统):

    apt install linux-image-generic grub-pc
    

    注意:如果你只是做实验,可以不装内核。

  5. 安装网络工具

    apt install network-manager systemd networkd
    

步骤 5: 退出并打包

# 在 chroot 内输入 exit
exit

# 卸载挂载
sudo umount /mnt/ubuntu-base/dev
sudo umount /mnt/ubuntu-base/proc
sudo umount /mnt/ubuntu-base/sys

现在 /mnt/ubuntu-base 就是一个定制的 Ubuntu 基础系统。你可以把它打包成 tar 包,或者制作成 Live CD。


方法二:定制 Ubuntu ISO 镜像(最实用的方法)

如果你是想做一个安装盘,里面预装了 Chrome、WPS、特定驱动,或者删除了 Snap,这是最推荐的方法。

工具推荐Cubic (Custom Ubuntu ISO Creator)。这是目前最简单、最强大的图形化工具。

步骤 1: 安装 Cubic

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

步骤 2: 使用 Cubic

  1. 打开 Cubic。
  2. 选择项目目录:创建一个文件夹存放临时文件。
  3. 选择 ISO:加载你下载的官方 Ubuntu ISO。
  4. 进入 Chroot 环境:Cubic 会自动解包,并给你一个终端窗口(这就是你定制系统的环境)。

步骤 3: 在 Cubic 的终端里定制

在这个终端里,你可以像在真实的 Ubuntu 系统里一样操作:

  • 删除软件apt remove thunderbird snapd
  • 安装软件apt install vim git curl
  • 预配置:你可以修改 /etc/default/grub,或者放入你的脚本到 /etc/init.d/
  • 清理apt cleanapt autoremove

步骤 4: 生成 ISO

配置完成后,点击 “Next” 直到生成 ISO。Cubic 会生成一个 .iso 文件,你可以拿去虚拟机或实体机安装。


方法三:使用 Ubuntu Base (官方提供的“半成品”)

Ubuntu 官方其实提供了一个叫 “Ubuntu Base” 的极小镜像(类似 Core 版),专门给开发者做定制。

  1. 下载地址:Ubuntu Base Releases
  2. 下载 ubuntu-base-22.04-base-amd64.tar.gz
  3. 解压到某个目录,然后使用 chroot 进行配置(类似于方法一,但比 debootstrap 手动一点)。

总结建议

你的需求 推荐方案
我想学习 Linux 底层原理,从源码编译 请直接去学 Linux From Scratch (LFS),不要折腾 Ubuntu。
我想做一个极其精简的 Ubuntu 容器或系统 使用 方法一 (Debootstrap)
我想做一个安装盘,装完就有我常用的软件 使用 方法二 (Cubic),这是最省事且效果最好的。
我想做嵌入式开发或 IoT 设备 使用 方法三 (Ubuntu Base)

警告:如果你从未接触过 Linux 系统管理,直接尝试“从零构建”可能会非常困难(涉及分区、fstab、内核编译、grub 引导修复等)。建议先在虚拟机里尝试。

0