Ubuntu分区后如何提升启动速度
小樊
37
2025-11-18 13:47:07
Ubuntu分区后提升启动速度的可操作清单
一 基线测量与定位瓶颈
- 使用以下命令量化启动各阶段耗时,优先处理占用时间长的阶段(如 firmware、loader、kernel、userspace)。
- 查看总体与分阶段时间:systemd-analyze
- 列出最慢的单元:systemd-analyze blame
- 绘制启动时间线:systemd-analyze plot > boot.svg(用浏览器打开分析)
- 查看关键服务依赖与顺序:systemd-analyze critical-chain
- 若你刚完成分区,建议先确认分区与文件系统无错误,避免因磁盘检查拖慢启动。
二 与分区布局直接相关的优化
- 减少开机文件系统检查
- 编辑 /etc/fstab,将非系统盘的 pass(最后一列)设为 0,表示跳过开机 fsck;系统盘保留检查。示例:
- UUID=… /media/data ext4 defaults,noatime 0 0
- 注意:错误的 fstab 改动可能导致无法启动,务必保留至少一个可启动内核与正确的根分区配置。
- 缩短 GRUB 菜单等待
- 编辑 /etc/default/grub,将 GRUB_TIMEOUT 设为 2 或 1,保存后执行 sudo update-grub。示例:
- 若需默认进入其他系统,可调整 /etc/grub.d 脚本顺序(如将 30_os-prober 改为 08_os-prober),再运行 sudo update-grub。
- 清理旧内核减少菜单项
- 列出已安装内核:dpkg --get-selections | grep linux-image
- 卸载不再需要的旧内核(保留至少 1–2 个最新内核,含一个恢复模式):sudo apt-get remove linux-image-<版本>;随后 sudo update-grub。
- 可选 使用 LZ4 压缩 initramfs(18.04+ 默认)
- 若仍为 gzip,可改用 LZ4 提升解压速度(需重生成 initramfs):
- echo “COMPRESS=lz4” | sudo tee -a /etc/initramfs-tools/initramfs.conf
- sudo update-initramfs -u
三 启动服务与用户会话精简
- 禁用不必要的系统服务
- 列出服务:systemctl list-unit-files --type=service
- 关闭不需要的自启服务:sudo systemctl disable
- 注意:不要随意禁用 systemd-journald、dbus、networkd 等核心服务。
- 精简图形会话自启
- 打开“启动应用程序”(命令:gnome-session-properties),取消不必要的程序;对耗时应用可设置延迟启动(如在命令前加 sleep 10;)。
- 使用轻量级桌面环境(旧机器效果明显)
- 如 Xfce、LXDE、MATE 等,资源占用更低,登录与首屏加载更快。
四 存储 内存与内核层面的优化
- 使用 SSD 或将系统盘放在更快的存储上,对启动各阶段都有显著收益。
- 适度降低 vm.swappiness,减少开机及早期用户态的交换倾向(示例设为 10):
- 临时:sudo sysctl vm.swappiness=10
- 永久:在 /etc/sysctl.conf 添加 vm.swappiness=10 后重启。
- 可选 预加载常用应用库与二进制(对“应用启动”更快,非系统启动本身)
- 安装:sudo apt-get install preload
- 一般保持默认配置即可。
五 维护与验证
- 控制日志体积,避免日志写入影响早期启动与磁盘占用
- 清理 journal 日志:sudo journalctl --vacuum-size=100M
- 每次调整后,使用 systemd-analyze 复核优化成效,并保留一份优化前的 boot.svg 以便对比。