温馨提示×

如何配置 Ubuntu From Scratch

小樊
42
2026-07-01 04:51:49
栏目: 智能运维

Ubuntu From Scratch (UFS) 是一个用于从零开始构建 Ubuntu 系统的项目,它借鉴了 Linux From Scratch (LFS) 的思想,但目标是构建一个 Ubuntu 兼容的系统。

由于 Ubuntu 的构建过程高度依赖 Debian 的包管理系统(dpkg/apt)和复杂的初始化脚本,目前并没有一个像 LFS 手册那样官方且持续维护的“UFS 手册”。大多数情况下,如果你在网上搜索 “Ubuntu From Scratch”,你找到的可能是一些过时的教程、个人博客,或者是基于旧版本(如 12.04)的脚本。

不过,如果你真的想尝试从零构建 Ubuntu,以下是两种主流的实现路径以及详细的配置思路:


方法一:手动构建(最接近 LFS 的体验)

这是最硬核的方法,类似于 LFS,但你需要手动处理 Debian 包的依赖关系。

1. 准备工作

你需要一个已经安装好的 Linux 系统(可以是 Ubuntu 或 Debian)作为宿主机(Host System)。

# 安装必要的构建工具和依赖
sudo apt update
sudo apt install build-essential bison flex m4 texinfo gawk \
                 debootstrap parted qemu-utils

2. 准备分区和挂载

假设你要构建的系统在 /mnt/ufs

sudo mkdir -p /mnt/ufs
# 假设你有一个分区 /dev/sdb1
sudo mount /dev/sdb1 /mnt/ufs

3. 使用 Debootstrap 构建基础系统

这是构建 Ubuntu/Debian 系统的标准方法。debootstrap 会下载最小化的基础包并解压到目标目录。

# 以 Ubuntu 22.04 (Jammy) 为例
sudo debootstrap jammy /mnt/ufs http://archive.ubuntu.com/ubuntu

这一步相当于 LFS 的“构建临时工具”之前的准备阶段,它直接给你了一个能跑的最小系统。

4. 进入 Chroot 环境

进入你刚构建的“裸机”系统。

sudo mount --bind /dev /mnt/ufs/dev
sudo mount --bind /proc /mnt/ufs/proc
sudo mount --bind /sys /mnt/ufs/sys
sudo chroot /mnt/ufs /bin/bash

5. 配置基础系统

现在你已经在 UFS 系统内部了,需要配置它:

  • 设置主机名和时区:
    echo "ufs-system" > /etc/hostname
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    
  • 配置网络(systemd):
    echo "nameserver 8.8.8.8" > /etc/resolv.conf
    
  • 安装内核和引导程序:
    apt update
    apt install linux-image-generic grub-pc
    
  • 设置密码:
    passwd root
    

6. 安装 GRUB 并退出

在 Chroot 外部(宿主机)安装引导加载程序到磁盘(假设磁盘是 /dev/sdb):

# 退出 chroot
exit
# 安装 grub
sudo grub-install --root-directory=/mnt/ufs /dev/sdb
sudo update-grub

方法二:使用自动化脚本(Ubuntu Base)

如果你不想手动敲命令,可以使用社区提供的脚本。最著名的是 Uri Herrera 开发的 “Ubuntu From Scratch” 项目,它基于 Ubuntu Base 镜像。

注意: 这类项目通常更新较慢,可能不支持最新的 Ubuntu 版本。

  1. 下载 Ubuntu Base: 前往 Ubuntu Base 官方页面,下载 ubuntu-base-xx.xx-base-amd64.tar.gz

  2. 解压并配置:

    mkdir ~/ufs-root
    cd ~/ufs-root
    sudo tar -xpf ~/Downloads/ubuntu-base-*.tar.gz
    
  3. 使用脚本进行配置: 你可以编写脚本自动化上述的 chrootapt install 过程,安装桌面环境(如 GNOME 或 KDE)和必要软件。


方法三:替代方案(强烈推荐)

如果你想要“从零构建”的体验,但不一定非要死磕 Ubuntu,以下方案更成熟、文档更全:

1. Linux From Scratch (LFS)

这是真正的从源码编译。你会学到 Linux 系统最底层的运作方式。

  • 官网: linuxfromscratch.org
  • 特点: 完全从源码编译 GCC, Glibc, Binutils 等,不使用 apt。

2. Arch Linux (Installation Guide)

Arch 的安装过程本质上就是手动构建系统。

  • 过程: 分区 -> 挂载 -> pacstrap 安装基础包 -> arch-chroot -> 配置 -> 安装 GRUB。
  • 特点: 滚动更新,文档极其丰富(Arch Wiki),比 Ubuntu 更容易从零搭建。

3. Debian (Minimal Install)

如果你喜欢 Debian 系(Ubuntu 的母版),直接下载 Debian 的 netinst 镜像,在安装时取消勾选所有桌面环境,只保留“标准系统工具”,这其实就是最纯净的 Debian 系统。


总结

方法 难度 推荐度 说明
Debootstrap ⭐⭐⭐⭐ 最实用的方法。通过 debootstrap + chroot 在空白分区上安装 Ubuntu。
手动编译 (LFS风格) 极高 极不推荐。Ubuntu 的包依赖极其复杂,手动编译所有 .deb 包几乎不可能完成。
Arch Linux 中高 ⭐⭐⭐⭐⭐ 如果你是为了学习 Linux 结构,Arch 比 Ubuntu 更适合“从零开始”。
LFS 极高 ⭐⭐⭐⭐ 纯粹的学习目的,但构建出来的不是 Ubuntu,是“我的 Linux”。

建议: 如果你想体验“构建 Ubuntu”,请直接使用 Debootstrap 方法。这能让你理解 Ubuntu 系统的目录结构、包管理以及初始化过程,同时比完全从源码编译要现实得多。

0