优化 Ubuntu From Scratch(UFS) 本质上是在最小化、从零构建的 Ubuntu 系统基础上,提高性能、稳定性、可维护性和安全性。下面我从系统层级、构建过程、运行效率、安全与维护四个方面,给出一套实用优化建议(偏进阶,但结构清晰)。
一、系统构建阶段的优化(最关键)
1. 精简软件包选择
- 只安装真正需要的包
- 使用
debootstrap --variant=minbase - 避免直接装
ubuntu-desktop或build-essential
- 使用
- 常见最小集:
base-files
base-passwd
bash
coreutils
dpkg
libc
login
passwd
systemd
✅ 好处:
- 减少攻击面
- 降低升级复杂度
- 提升启动速度
2. 使用轻量级 init / 服务管理
- 推荐方案
systemd(官方,但较重)OpenRC/runit(轻量,适合高级用户)
- 若用 systemd:
systemctl disable bluetooth cups avahi
3. 定制内核(强烈推荐)
UFS 允许你完全控制内核:
make localmodconfig
make menuconfig
优化点:
- 关闭:
- 不需要的文件系统
- 无用的驱动
- 调试选项
- 开启:
PREEMPTNO_HZ_FULLCPU_FREQ
✅ 结果:
- 内核体积小
- 启动快
- 内存占用更少
二、系统运行性能优化
4. 文件系统的选择
| 场景 | 推荐 |
|---|---|
| 桌面 / 通用 | ext4 |
| 高性能 / 服务器 | XFS |
| 极端 I/O | F2FS / Btrfs(需调优) |
ext4 优化挂载参数:
defaults,noatime,commit=60
5. 服务与启动优化
systemd-analyze blame
systemd-analyze critical-chain
- 禁用:
- snapd(如不用)
- cloud-init(物理机)
apt purge snapd cloud-init
6. 内存与缓存优化
- 禁用 swap(内存充足时):
swapoff -a
- 限制 journal 日志大小:
journalctl --vacuum-size=50M
三、安全与维护优化
7. 用户与权限
- 禁用 root SSH
- 使用
sudo - 设置
/etc/sudoers:
Defaults secure_path
Defaults use_pty
8. 日志与审计
- 使用
auditd - 限制日志轮转:
/etc/logrotate.conf
9. 自动化维护
- 使用:
apt-cacher-ng(构建机缓存)cron-apt/unattended-upgrades
四、构建流程本身的优化
10. 使用构建脚本
不要手动一步步敲命令,推荐:
ufsbuilder.sh
- 易复现
- 易版本化
- 易 CI 化(GitHub Actions)
11. 复用 debootstrap 缓存
debootstrap --cache-dir=/var/cache/debootstrap
五、适合不同场景的优化建议
| 场景 | 建议 |
|---|---|
| 服务器 | 无 GUI、最小 systemd、定制内核 |
| 嵌入式 | busybox + musl + 最小结构 |
| 桌面 | 启用 GPU 驱动、音频、Wayland |
| 安全系统 | AppArmor + 只读根目录 |
六、进阶建议(可选)
- Immutable Rootfs
- OverlayFS
- Flatpak / Container 化应用
- Debian Policy 合规化
总结一句话
Ubuntu From Scratch 的优化核心在于:在“你真正需要的最小系统”上做极致精简、控制和自动化。
如果你愿意,我可以:
- ✅ 给你一个 可用的 UFS 构建脚本
- ✅ 针对 服务器 / 桌面 / 容器 / 嵌入式 分别优化
- ✅ 帮你 从零设计一个 50MB 级 Ubuntu 系统
你现在是打算用于哪一类场景?