温馨提示×

Ubuntu分区怎样优化启动速度

小樊
45
2025-12-27 23:56:44
栏目: 智能运维

Ubuntu 分区与挂载优化启动速度

一 核心思路

  • 减少开机时的文件系统检查:对非系统盘(如 NTFS/FAT/VFAT 的数据盘)在 /etc/fstab 中将“第 6 字段”(pass,fsck 顺序)设为 0,避免开机并行检查拖慢启动。
  • 缩短或隐藏 GRUB 菜单等待:在 /etc/default/grub 调整 GRUB_TIMEOUT/GRUB_TIMEOUT_STYLE,减少选择等待时间。
  • 降低 swap 依赖以缩短用户态就绪:将 vm.swappiness 从默认 60 调低(如 10),减少早期 swap 抖动对启动体感的影响。
  • 减少无关磁盘挂载:对不常用或不需开机挂载的分区,使用 nofail 或直接注释条目,避免挂载失败重试造成阻塞。
  • 可选加速项:使用 tmpfs /tmp 减少磁盘 I/O(注意内存占用与数据易失性)。

二 操作步骤

  1. 调整 GRUB 等待时间
  • 编辑配置文件:sudo nano /etc/default/grub
  • 建议将 GRUB_TIMEOUT=2(或更小),或将 GRUB_TIMEOUT_STYLE=hidden(隐藏菜单,保留需要时按 Esc 呼出)。
  • 更新配置:sudo update-grub
  • 说明:缩短等待能直接减少“黑屏选择”阶段的耗时。
  1. 优化 /etc/fstab 减少开机检查与挂载阻塞
  • 备份:sudo cp /etc/fstab /etc/fstab.bak
  • 对数据盘(如 NTFS/FAT/VFAT)将“第 6 字段”改为 0(不做 fsck):
    • 示例:UUID=XXXX /mnt/data ntfs defaults,uid=1000,gid=1000,umask=022,0 0
  • 对可选挂载点加 nofail,避免设备未就绪导致阻塞:
    • 示例:UUID=XXXX /mnt/backup ext4 defaults,nofail 0 2
  • 仅对系统盘保留周期性 fsck(通常 / 分区 保持原设置)。
  • 验证并应用:
    • 检查语法:sudo findmnt --verify
    • 无报错后重启:sudo reboot
  • 说明:并行 fsck 会显著拖慢启动,非系统盘设为 0 通常安全且有效。
  1. 降低 swap 使用倾向以优化启动体感
  • 临时生效:sudo sysctl vm.swappiness=10
  • 永久生效:echo “vm.swappiness=10” | sudo tee -a /etc/sysctl.conf
  • 说明:降低 swappiness 能减少开机阶段的内存换出,提升登录后流畅度;数值过低可能影响后台内存回收,需结合内存容量与负载权衡。
  1. 可选 将 /tmp 放入内存
  • 编辑 /etc/fstab,加入:
    • tmpfs /tmp tmpfs defaults,mode=1777,size=1G 0 0
  • 说明:将临时目录放入 tmpfs 可减少磁盘 I/O,适合内存 ≥4GB 的机器;注意 /tmp 内容重启后消失,且不要将 size 设得过大。

三 验证与回滚

  • 启动耗时分析:
    • 查看服务耗时:systemd-analyze blame
    • 查看关键链:systemd-analyze critical-chain
    • 生成图形报告:systemd-analyze plot > ~/boot.svg
  • 回滚要点:
    • GRUB:恢复 /etc/default/grub 原值后执行 sudo update-grub
    • fstab:用备份 /etc/fstab.bak 覆盖,或逐项撤销修改;变更前务必用 findmnt --verify 检查。

四 注意事项

  • 修改 /etc/fstab 前务必备份,并确保对关键字段(如 UUID、挂载点、fs 类型、options、dump、pass)理解正确。
  • 将非系统盘 pass=0 仅影响开机 fsck,不会损坏数据;系统盘请保留检查以保障一致性。
  • 使用 tmpfs /tmp 时控制 size,避免占用过多内存;对重要临时文件请另行保存。
  • 若系统为 服务器/无图形环境,不建议隐藏 GRUB 菜单,保留 Esc 进入救援与多系统选择能力。

0