制作 Ubuntu From Scratch(UFB,类似 LFS 但基于 Ubuntu) 的核心思路是:从零构建一套可用的 Ubuntu 用户空间(rootfs),而不是从内核开始完全手写系统。Ubuntu 官方并没有像 LFS 那样完整的“From Scratch”手册,但可以通过 debootstrap + chroot 来实现“自己做一个 Ubuntu”。
下面是一套可行、实用、接近 From Scratch 的方法。
debootstrap 安装最小 Ubuntu 基础系统chroot 进入新系统结果:一个“你自己构建的 Ubuntu”
sudo apt update
sudo apt install debootstrap schroot mmdebstrap
mkdir -p /mnt/ubuntu-from-scratch
cd /mnt/ubuntu-from-scratch
以 Ubuntu 22.04 为例:
sudo debootstrap jammy ./rootfs http://archive.ubuntu.com/ubuntu
说明:
jammy = Ubuntu 22.04./rootfs = 新系统根目录成功后:
./rootfs/
├── bin
├── etc
├── usr
├── var
└── ...
✅ 这已经是一个“从零开始的 Ubuntu”
sudo mount -t proc proc ./rootfs/proc
sudo mount -t sysfs sys ./rootfs/sys
sudo mount -o bind /dev ./rootfs/dev
sudo chroot ./rootfs /bin/bash
现在你已经在“自己做的 Ubuntu”里了。
cat > /etc/apt/sources.list <<EOF
deb http://archive.ubuntu.com/ubuntu jammy main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu jammy-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu jammy-security main restricted universe multiverse
EOF
apt update
echo ubuntu-from-scratch > /etc/hostname
passwd
adduser ubuntu
usermod -aG sudo ubuntu
apt install -y nano vim bash-completion net-tools iproute2 systemd
如果你的目标是可启动系统:
apt install -y linux-image-generic grub-pc
常用方式:
live-build示例(非常简化):
dd if=/dev/zero of=ubuntu.img bs=1G count=4
mkfs.ext4 ubuntu.img
mount ubuntu.img /mnt/img
cp -a rootfs/* /mnt/img/
| 项目 | LFS | Ubuntu From Scratch |
|---|---|---|
| 编译所有软件 | ✅ | ❌ |
| 使用 apt | ❌ | ✅ |
| 学习深度 | 极高 | 中 |
| 实用性 | 低 | 高 |
如果你想要**“真正从源码编译 Ubuntu”**,那基本不现实(Debian/Ubuntu 生态不支持)。
man debootstrap如果你愿意,我可以:
你想做到哪一步?