Ubuntu From Scratch (UFS) 部署指南
Ubuntu From Scratch 是一个从源码或基础组件开始构建自定义 Ubuntu 系统的项目,适合希望深入了解 Linux 系统内部机制的用户。以下是详细的部署步骤:
build-essential(编译工具链)、debootstrap(创建基础系统)、fakeroot(模拟 root 权限)等:sudo apt update && sudo apt install -y build-essential debootstrap fakeroot linux-image-generic linux-headers-generic
~/ubuntu-from-scratch)用于存放构建文件:mkdir ~/ubuntu-from-scratch && cd ~/ubuntu-from-scratch
debootstrap 下载 Ubuntu 官方镜像(以 Ubuntu 22.04 LTS/focal 为例),创建基础系统目录:debootstrap focal main ./base
此命令会从 Ubuntu 官方仓库下载基础软件包到 ./base 目录。chroot 切换到基础系统环境,模拟真实系统操作:sudo chroot ./base
ubuntu-standard):apt-get update && apt-get upgrade -y
apt-get install -y ubuntu-standard
timedatectl set-timezone UTC
ubuntu-from-scratch):hostnamectl set-hostname ubuntu-from-scratch
/etc/netplan/01-netcfg.yaml),设置静态 IP 或 DHCP(示例为静态 IP):network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
应用配置:netplan apply
apt-get install -y ubuntu-desktop vim git wget curl
exit 退出 chroot。~/ubuntu-from-scratch/rootfs),并挂载临时文件系统(tmpfs):sudo mkdir rootfs
sudo mount -t tmpfs -o size=4G tmpfs rootfs
bzImage)和 initramfs(初始 RAM 文件系统)复制到根文件系统:sudo cp ./base/boot/vmlinuz-* rootfs/boot/
sudo cp ./base/boot/initrd.img-* rootfs/boot/
sudo grub-install /dev/sda # 假设系统安装在 /dev/sda
sudo update-grub
sudo qemu-system-x86_64 -kernel rootfs/boot/vmlinuz-$(uname -r) -initrd rootfs/boot/initrd.img -append "root=/dev/ram0 ramdisk_size=4096000"
若系统正常启动,说明构建成功。sudo 组(可选,可在构建后通过 adduser 命令完成):adduser yourusername
usermod -aG sudo yourusername
sysctl.conf)、清理无用软件包等方式提升系统性能。chroot、apt、grub-install)和系统原理(如内核编译、文件系统挂载)。