因为换硬盘,重新安装了ubuntu,并且用了lvm,结果发现启动奇慢,ssd硬盘居然用了12s,以前一般是3s到桌面。
查看日志和观察启动过程,发现是在挂载root分区时占用了过多时间。
解决过程很曲折,直接说结论:
- 和LVM无关 (重新安装到非lvm分区试过了)
- 和系统服务无关 (虽然systemd-analyze可以看到某个服务占用过多时间)
-
罪魁在于:不能把/bin 或 /usr/bin 挂载到单独的分区!!!
以前的老linux这样或许可以,但是现在的系统越来越多的依赖这些bin,单独挂载将会极大的降低系统性能。血的教训啊!
网上一直有人说boot分区不能放到lvm里面,其实这是很早以前的事情了。
grub2 早就支持lvm分区了。所以grub2是可以启动lvm里面的boot kernel的。
但这里要注意两个问题
- 如果是自己编译grub2, 需要加上 lvm 模块。
- kernel起来以后,还需要去加载boot,所以kernel 也必须要支持lvm. 在Arch Linux里面就是修改一个文件,加一个命令即可。(有点忘了,回头找一下)