自從將公司電腦的Ubuntu系統(tǒng)升級到了Ubuntu 16.04 (之前是15.04), 每次開機竟然耗時2分鐘左右, 簡直不能忍! 咋能向Windows看齊(Windows都沒這么慢好嘛), 話說以前的Macbook Pro高配開機只要2秒鐘...
那么如何找出拖慢開機速度的元兇并將其禁用呢?
systemd自帶分析利器systemd-analyze
systemd-analyze有一些參數(shù),大體上來講就是一些功能, 可以用
man systemd-analyze
來看看:
其中, 對我們比較有用的參數(shù)就是blame。
blame : blame是"指責(zé)"的意思。
如果你平時使用git來進(jìn)行版本控制, 那你應(yīng)該知道有個命令叫
git blame
用git blame加文件名就可以看到文件中每一行最近是誰更改的。
同理, systemd-analyze blame就是顯示開機啟動項的時間, 從最慢依次列出。
systemd-analyze blame
可以看到, 最慢的啟動項是NetworkManager-wait-online.service, 竟然用了30秒, 不能忍!
禁用之:
sudo systemctl disable NetworkManager-wait-online.service
其實, 昨天我還禁用了兩個啟動項, 都是fstab中的, 用于掛載(mount)服務(wù)器上的nfs磁盤, 每一個竟然用了1分鐘左右 (用systemd-analyze blame看到的):
sudo vim /etc/fstab
就是上圖中
172.19.0.133:/mnt/androidstorage/NFS_RO /mnt/nfs_ro
172.19.0.133:/mnt/androidstorage/NFS_RW /mnt/nfs_rw
那兩行, 表示
把遠(yuǎn)端服務(wù)器172.19.0.133上的/mnt/androidstorage/NFS_RO掛載(sudo mount)到本機的/mnt/nfs_ro
把遠(yuǎn)端服務(wù)器172.19.0.133上的/mnt/androidstorage/NFS_RW掛載(sudo mount)到本機的/mnt/nfs_rw
如何禁用呢?
在options那一列中加上 noauto即可, 表示不自動啟動。
auto是automatic的縮寫, 表示"自動"。而noauto就是not/no automatic的縮寫, 表示"不自動"。
用man fstab可以看到:
如此處理之后, 再次重啟電腦:
sudo reboot
這回, 電腦啟動只要幾秒啦!
所以, 如果想加快開機啟動, 只要先用
systemd-analyze blame
列出開機啟動項的時間, 然后禁用那些很慢的即可, 不過也要小心, 不要近用了系統(tǒng)的關(guān)鍵啟動項。
說明:
1 . 在宿主機下cmd下運行如下命令
#設(shè)置在進(jìn)入子系統(tǒng)時使用root權(quán)限運行
ubuntu2004.exe config --default-user root
2 . 使用wsl命令啟動 子系統(tǒng)
3 .進(jìn)入到子系統(tǒng),編輯/etc/profile這個文件
4 . 在文件底部添加啟動docker 命令
/etc/init.d/docker start
5 . 重啟生效
wsl 2 使用的 DNS 解析服務(wù)器設(shè)置在文件:/etc/resolv.conf 內(nèi)設(shè)置,這是一個 link 文件,
真正的文件路徑是:/run/resolvconf/resolv.conf,這個文件是每次 wsl 啟動時自動生成的,
我需要使用指定的dns來解析,步驟如下
步驟
1 . 新建/etc/wsl.conf,內(nèi)容如下
[network]
generateResolvConf=false
以上配置好就不會自動創(chuàng)建 /run/resolvconf/resolv.conf 文件了。
2 . 退出wsl,關(guān)機然后重啟
exit #退出
wsl --shutdown #關(guān)機
wsl #重啟
3 .進(jìn)入子系統(tǒng)刪除/etc/resolv.conf
rm /etc/resolv.conf
4 . 新建/etc/resolv.conf,內(nèi)容如下
nameserver 114.114.114.114
5 . 再次退出 wsl,關(guān)機然后重新啟動: