温馨提示×

Ubuntu如何优化启动速度和关机时间

小樊
35
2026-01-04 13:21:27
栏目: 智能运维

Ubuntu 启动与关机优化实操指南

一 诊断与总体思路

  • 用 systemd 提供的工具定位瓶颈:
    • 查看总体耗时:systemd-analyze time
    • 查看各服务耗时:systemd-analyze blame
    • 查看关键路径:systemd-analyze critical-chain
  • 原则是“先测量、后优化”,优先处理占用时间长的服务与挂载点,再考虑配置层面的调整。

二 启动速度优化

  • 精简与禁用不必要的服务
    • 列出并评估:systemctl list-unit-files --type service
    • 禁用不需要的服务(示例):sudo systemctl disable bluetooth.service cups.service ModemManager.service
    • 彻底屏蔽顽固服务:sudo systemctl mask <service>
    • 桌面会话自启项精简:运行 gnome-session-properties,关闭不需要的启动程序(如蓝牙、打印队列、远程桌面等)。
  • 缩短 GRUB 菜单等待
    • 编辑 /etc/default/grub,将 GRUB_TIMEOUT=2(单位秒),保存后执行 sudo update-grub。如需保留选择内核/恢复模式,不要设为 0。
  • 优化网络获取地址耗时
    • 若网络环境稳定,可为网卡配置静态 IP,避免启动时等待 DHCP 分配地址(注意笔记本在不同网络间切换时不建议静态 IP)。
  • 使用 SSD 并启用 TRIM
    • 确认挂载选项含 discard 或启用定时 TRIM:sudo systemctl enable fstrim.timer
  • 清理旧内核与无用镜像
    • sudo apt autoremove --purge,释放 /boot 空间,避免内核选择界面过长。
  • 可选:重建预读(readahead)列表
    • 重启,在 GRUB 菜单选中 Ubuntu 条目按 E,在 linux 行末尾追加 profile,按 Ctrl+X 启动一次以生成新列表(下次启动生效)。

三 关机时间优化

  • 找出“卡住”的服务或进程
    • 查看上次关机前的日志:journalctl -rb -1(倒序查看)。若未见日志,确保持久化日志已开启:创建 /var/log/journal 并检查 /etc/systemd/journald.confStorage=auto|persistent
  • 调整 systemd 停止超时(快速缓解)
    • 备份并编辑:sudo cp /etc/systemd/system.conf /etc/systemd/system.conf.orig
    • DefaultTimeoutStopSec=90s 改为更小值(如 5s10s),保存后执行 sudo systemctl daemon-reload
    • 注意:不要将 DefaultTimeoutStartSec 设得过小(例如 1s 可能导致无法正常进入系统),如需调整请谨慎并保留恢复入口。
  • 可选:处理看门狗导致的延迟
    • 检查是否运行看门狗:ps -af | grep watch
    • 桌面环境通常无需看门狗,可在 /etc/systemd/system.conf 中降低 ShutdownWatchdogSec(如从默认 10 分钟调低),或按需禁用相关服务。

四 常见问题与注意事项

  • 出现 “A stop job is running for … (1min 30s / 90s)” 多为某服务未正常退出,先用 journalctl -rb -1 定位,再决定是修复该服务还是调整超时。
  • 关闭开机动画便于观察真实卡点:编辑 /etc/default/grub,将 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 改为 "",保存并执行 sudo update-grub;排查完成后可恢复。
  • 不建议把 GRUB_TIMEOUT 设为 0,否则无法进入高级选项与恢复模式;建议保留 1–2 秒 并可在倒计时时按键中断。
  • 修改系统级配置前务必备份(如 system.confgrub),并确保有可用的恢复模式入口,避免配置不当导致无法启动。

0