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(注意内存占用与数据易失性)。
二 操作步骤
- 调整 GRUB 等待时间
- 编辑配置文件:sudo nano /etc/default/grub
- 建议将 GRUB_TIMEOUT=2(或更小),或将 GRUB_TIMEOUT_STYLE=hidden(隐藏菜单,保留需要时按 Esc 呼出)。
- 更新配置:sudo update-grub
- 说明:缩短等待能直接减少“黑屏选择”阶段的耗时。
- 优化 /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 通常安全且有效。
- 降低 swap 使用倾向以优化启动体感
- 临时生效:sudo sysctl vm.swappiness=10
- 永久生效:echo “vm.swappiness=10” | sudo tee -a /etc/sysctl.conf
- 说明:降低 swappiness 能减少开机阶段的内存换出,提升登录后流畅度;数值过低可能影响后台内存回收,需结合内存容量与负载权衡。
- 可选 将 /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 进入救援与多系统选择能力。