Ubuntu From Scratch (UFS) 是一个相对小众且硬核的项目,它旨在帮助用户从零开始构建自己的 Ubuntu 系统,而不是像常规安装那样直接使用现成的 ISO 镜像。这是一个极佳的学习 Linux 系统内部运作机制的方式,但难度较高。
以下是入门 Ubuntu From Scratch 的详细指南和步骤:
.deb)和仓库,手动组装一个 Ubuntu 系统。在开始之前,你需要具备以下基础:
物理/虚拟环境准备:
由于 Ubuntu From Scratch 没有像 Linux From Scratch 那样拥有极其完善的官方手册(其官方 Wiki 曾一度停止更新或变动),通常的构建流程如下:
更新你的宿主系统,并安装必要的工具:
sudo apt update
sudo apt install build-essential parted gdisk debootstrap grub-pc-bin
假设你的目标磁盘是 /dev/sdb(在虚拟机中通常是 /dev/sda 或 /dev/vda,请务必确认,数据无价)。
fdisk 或 parted 进行分区。/mnt/ufs。# 示例:假设 sdb1 是根分区
sudo mkfs.ext4 /dev/sdb1
sudo mount /dev/sdb1 /mnt/ufs
这是 UFS 的核心步骤。你需要指定 Ubuntu 的版本代号(如 focal 对应 20.04, jammy 对应 22.04)和镜像源。
# 安装基础系统到 /mnt/ufs
sudo debootstrap --arch amd64 jammy /mnt/ufs http://archive.ubuntu.com/ubuntu
这个过程会下载 Ubuntu 的最小化基础包(大约几百MB)到你的目标分区。
现在你需要进入这个“半成品”系统,进行配置。
# 挂载必要的虚拟文件系统
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
在 chroot 环境下,你现在是新系统的 root 用户。
echo "ufs-system" > /etc/hostname
/etc/netplan/01-netcfg.yaml。/etc/apt/sources.list,添加 Ubuntu 仓库。apt update
apt install linux-image-generic
apt install grub-pc
grub-install /dev/sdb # 注意是磁盘设备,不是分区
update-grub
passwd
exit)。sudo umount /mnt/ufs/dev
sudo umount /mnt/ufs/proc
sudo umount /mnt/ufs/sys
sudo umount /mnt/ufs
由于 UFS 的资料比较零散,建议结合以下资源:
chroot 和 fstab 的部分)是全 Linux 界最清晰的,极具参考价值。/etc/fstab 时,最好使用 blkid 命令获取分区的 UUID,而不是写死设备名(如 /dev/sda1),因为设备名可能会变。/dev, /proc, /sys,否则 grub-install 会找不到设备。iproute2, iputils-ping, netplan.io 等。入门 Ubuntu From Scratch 的最佳路径是:先玩虚拟机 -> 学习 LFS 的前几章概念 -> 使用 Debootstrap 搭建骨架 -> 手动配置内核和 GRUB。
如果你只是想体验“从零构建”的乐趣,LFS 的文档更完善;如果你必须得到一个 Ubuntu 环境且想了解其底层,UFS 是很好的选择。祝你构建顺利!