“Ubuntu From Scratch(UFS)” 并不是一个官方标准术语,通常可能指以下几种情况之一:
下面我按最常见的理解:从零构建或深度定制 Ubuntu 系统来给你一套实用优化思路。如果你指的是别的场景,也可以再具体说明。
在优化前先明确目的:
Ubuntu 默认安装大量桌面/服务组件,第一步就是砍包。
建议原则:
ubuntu-desktoptasksel 的全功能任务base-install:
- base-files
- apt
- systemd
- network-manager 或 systemd-networkd
- sudo
避免:
- snapd(除非你真的需要)
- cloud-init(本地系统可移除)
- bluetooth / printer / modemmanager(服务器不需要)
如果目标非常激进:
| 场景 | 替代方案 |
|---|---|
| glibc | musl libc |
| bash | dash / busybox |
| coreutils | busybox |
⚠️ 但这会失去 Ubuntu 软件生态兼容性,接近 LFS / Alpine,不建议新手。
noatime,nodiratime
示例:
UUID=xxxx / ext4 defaults,noatime 0 1
查看启动时间:
systemd-analyze blame
关闭示例:
sudo systemctl disable bluetooth
sudo systemctl disable cups
sudo systemctl disable ModemManager
减少 initrd 大小:
sudo nano /etc/initramfs-tools/modules
只保留必要模块(磁盘、文件系统、键盘)。
然后:
sudo update-initramfs -u
sudo apt install linux-generic
make localmodconfig⚠️ 不建议新手,维护成本高。
sudo systemctl disable snapd
sudo apt purge snapd
改用:
sudo apt autoremove --purge
sudo apt clean
只保留你需要的语言:
sudo dpkg-reconfigure locales
删除多余:
sudo apt purge language-pack-*
PermitRootLogin no
Ubuntu 默认 AppArmor:
sudo systemctl enable apparmor
sudo debootstrap noble /mnt/ubuntu http://archive.ubuntu.com/ubuntu
这是最接近“Ubuntu From Scratch”的官方方式。
mksquashfs rootfs rootfs.squashfs -comp zstd
❌ 删除 /usr 中“看不懂”的文件
❌ 盲目关闭 systemd
❌ 使用未知 PPA
❌ 过度裁剪导致 apt 无法工作
如果你只是想“精简 Ubuntu”,其实更推荐:
| 目标 | 推荐 |
|---|---|
| 最小 Ubuntu | Ubuntu Minimal |
| 容器 | Ubuntu Base / Docker |
| 服务器 | Ubuntu Server |
| 极致精简 | Debian Netinst / Alpine |
你可以直接告诉我:
我可以给你一份针对你场景的 UFS 构建清单。