天天看點

加速ubuntu開機速度 【以後看】

原作者i3dmaster 譯者yang119345 

加速Ubuntu開機過程 

此HowTo 适合抱怨ubuntu啟動速度相當慢但不願意安裝任何可選擇工具提速的人群。 我在這裡使用的方式不是最終解決方案,但是無論如何它确實有所改變并且它确實起作用了。下面的做的一切是通過調整Ubuntu開機程序,因為每人的計算機 有所不同,存在一些風險——下面的一些東西可能損壞你的系統。 在你更改之前,做出你的判斷并為/etc目錄作一個備份總是好的。 

**此HowTo 主要适合筆記本和桌上型電腦,不适合伺服器。 ** 

此HowTo的建議: 

1. 我希望你能從中學到東西而不是僅僅簡單的拷貝。 是以請, **不要 ** 完全地按照我所作的并複制到你的計算機。閱讀服務的描述并自己判斷去決定是否需要保留他們。 例如, 在我的電腦上我關閉GDM用終端引導,但是如果你看到終端感到一點都不舒服,你應該保留GDM或KDM直接引導到使用者圖形界面。 

2.如果你對開機服務有疑問并且确實對該服務是什麼不是很确定, 在此張貼問題并且看看是否有人能幫助你。 在你行動之前如果你不知道。保持系統安全的底線是讓一種服務開着而不是關閉它,如果你不了解的該服務的話。 

3. 如果你在你機器上見過一個開機服務但不在這裡,告知我們它是什麼?正如我在這裡做的一樣 –給一些說明和建議關于是否它應該在一台正常的筆記本或者桌面環境上開或關。 

顔色參考: 我開啟的服務 

我關閉的服務 

I. 安裝一個工具 - sysv-rc-conf。 它是一款基于perl的開機程序調整工具。 

代碼: 

sudo apt-get update 

sudo apt-get install sysv-rc-conf 

它提供一種配置開機程序和運作等級的簡單方法, 但是如果你想要通過連結/解除連結檔案來手工操作的話,這不是必需的... 這由你決定 

II. Ok,一切就緒。現在讓我們通過以下代碼來運作它 

sudo sysv-rc-conf 

并一個一個的分析每種服務。 **注意 ** 我有的一些服務或許你沒有,完全可以。如果一些服務你有但是我沒有, 你将需要獨自研究或者在這裡提問 ... 但是此HowTo 涵蓋它們中的大多數 ... 

在我們開始搞亂它們之前,我要在這裡引入一些運作等級知識 ....全部開機程序執行順序如下: 

運作等級 S:開機程序中的第一個運作等級。/etc/init.d/rcS腳本将被調用到開啟并且/etc/rcS.d目錄下的所有程序将被執行。 

運作等級 1:單使用者模式。/etc/rc1.d目錄下的所有程序将被執行。 

運作等級 2,3,4,5:在debian系統裡是多使用者環境,可能不包含圖形使用者界面。同樣的,在相應目錄下的程序将被運作。 

**注意** 這和RedHat,SuSE, 以及其它基于RPM的系統不同。 

運作等級 0:關閉計算機 

運作等級 6:重起計算機 

好,讓我們回到sysv-rc-conf: 

1. acpi-support - 你最好使其在S運作等級處于“X”狀态。 

2. acpid - acpi守護程式.這兩個用于電源管理,對于筆記本和台式電腦很重要,是以讓它們開啟。 

3. alsa - 如果你使用alsa聲音子系統,是的,開啟它。 

4. alsa-utils -在我系統裡,此服務取代了alsa,是以我關閉了alsa并在S運作等級将此服務開啟。**注意**,我所說的“關閉”是指在所有運作等級裡面去除所有“X”。如果在你系統裡沒有它,沒問題。讓我們繼續。 

5. anacron - 一個cron子系統,當時間到達時用于執行任何沒有被執行的cron作業。當某種cron 作業時間準備好時,很可能你或許已經關閉了你的計算機。打個比方,updatedb被計劃在每天2點執行,但是在那個時候,你的計算機是關閉的,然後如果 ananron服務如果是開啟的話,它将設法抓起那個updatedb cron… 我将它關閉是因為我不經常關閉我的筆記本,但是否開啟此服務完全取決于你。 

6. apmd - 這是十分困惑我的一個服務。我已經開啟了acpid服務,那同時開啟apmd有啥好處呢?如果你的計算機不是那麼老,甚至不能支援acpi,然後你可以設法關閉它。無論如何,我是關閉它的。 

7. atd - 就像cron,一個作業排程程式。我把它關了 

8. binfmt-support - 核心支援其他二進制的檔案格式。我讓它開着 

9. bluez-utiles - 我把它關了因為我沒有任何藍牙裝置 

10. bootlogd - 開啟它 

11. cron – 開啟它 

12. cupsys – 管理列印機的子系統。我沒有列印機是以我關閉它了,如果你有列印機,開啟他。 

13. dbus – 消息總線系統(message bus system)。非常重要,開啟它。 

14. dns-clean – 當使用撥接上網,主要用于清除dns資訊。我不用撥号,是以我關閉了它。 

15. evms – 企業卷管理系統(Enterprise Volumn Management system). 我關閉了它。 

16. fetchmail – 一個郵件接受守護程序,我關閉了它。 

17. gdm – gnome桌面管理器。 無論如何我關閉它了,因為我将系統用終端引導。如果你想直接引導到圖形使用者界面,這取決于你。 

18. gdomap – 事實上我也不知道為什麼此服務必需開啟。我沒有在其他系統見過這個守護程式,是以我将其關閉并且我沒覺得我失去了什麼。開啟它對筆記本或者桌上型電腦有任何好處嗎? 

19. gpm – 終端滑鼠支援。如果你覺得你在終端使用滑鼠更好,那麼在運作等級 1 和2 開啟它。那正是你所需要的。 

20. halt - 别更改它。 

21. hdparm – 調整硬碟的腳本。我在運作等級 2,3,4,5去除了它但是在S 運作等級添加了它。我覺得早點打開DMA,32bit I/O等等将對其餘過程有益。我自己也将原來的腳本精簡了一下。如果我知道我正做什麼,我覺得做過多的檢查沒用。相應配置檔案是 /etc/hdparm.conf。 

22. hibernate – 如果你的系統支援休眠,把它打開,否則它對你沒用。 

23. hotkey-setup – 此守護程序為你的筆記本建立一些熱鍵映射。支援的制造商包括: HP, Acer, ASUS, Sony, Dell, 和IBM。如果你有那些品牌的筆記本,你可以打開它,否則它或許對你沒有任何好處。 

24. hotplug and hotplug-net #激活熱插拔系統是費時的。我将考慮關掉它們。我在的/etc/network/interfaces檔案作了很多修改,并将其設定為自動運作,而不是在 熱插拔程序期間映射我的無線網卡。是以我可以将它們關掉。我已經測試過了,甚至我将它們關閉,ubuntu仍舊可以檢測到我的usb驅動器,我的數位相 機,等等。是以我認為關掉它們是很安全的**注意**如果在關閉熱插拔服務以後發現你的聲霸卡部工作了,你可以将服務打開,或者編輯 /etc/modules檔案并添加聲霸卡驅動子產品。經測試,後者比較快。 

25. hplip – HP列印機和圖形子系統,我将其關閉了。 

26. ifrename – 網絡接口重命名(network interface rename)腳本。聽上去很酷但是我把它關掉了。主要用于管理多網絡接口名稱。雖然我有無線網卡和以太網卡,兩者被核心辨別為eth0和ath0,是以此服務對我不是很有用。 

27. ifupdown and ifupdown-clean – 打開它,它們是開機時網絡及口激活腳本。 

28. inetd or inetd.real – 檢視檔案/etc/inetd.conf 注釋掉所有你不需要的服務。如果該檔案不包含任何服務,那關閉它是很安全的。 

29. klogd – 打開它。 

30. linux-restricted-modules-common – 你應該去檢視下是否你的系統裝載有任何受限制的子產品。既然我需要madwifi ath_pci 子產品,是以我将其開啟。受限制的子產品可以從/lib/linux-restricted-modules檢視到。如果你發現你沒有使用任何受限制的子產品, 那關掉這個服務沒事。 

31. lvm – 我沒有使用邏輯卷是以我将此服務關閉。讓它開啟如果你 *确實* 有lvm(lvm是邏輯卷管理器在此不再擴充). 

32. makedev – 打開它。 

33. mdamd – Raid管理工具。不使用Raid是以我将此服務關閉。 

34. module-init-tools – 從/etc/modules加載擴充子產品。你可以研究/etc/modules檔案檢視是否有一些你不需要的子產品。通常我們将此服務開啟。 

35. networking – 在啟動期間通過掃描/etc/network/interfaces檔案增加網絡接口和配置dns資訊。讓它開着。 

36. ntpdate – 通過ubuntu時間伺服器同步時間 。在開機的時候我不需要它,故我關掉了此服務。 

37. nvidia-kernel – 我自己編譯了nvidia驅動,是以此服務對我沒用。如果你從受限制子產品中使用nvidia驅動,那打開此服務。 

38. pcmcia – 激活pcmica裝置。我将此服務打開在S運作等級而不是分别在2,3,4,5運作等級打開此服務,因為我覺得起先讓硬體裝置準備更好。如果你在使用沒有pcmica卡的桌上型電腦的話,請關閉此服務。 

39. portmap – 管理像nis,nfs等等之類服務的守護程式。如果你的筆記本或桌上型電腦是純粹的用戶端,那麼關閉此服務。 

40. powernowd – 管理CPU頻率的用戶端程式。主要用于支援CPU speed stepping技術的筆記本。通常如果你在配置一台筆記本,你應該開啟此服務。如果是桌上型電腦,那此服務應該沒有用。 

41. ppp and ppp-dns - 對我沒用,我不使用撥号。 

42. readahead - **感謝 mr_pouit!** readahead似乎是一種“預加載程式”。在開機時它将一些庫檔案加載到記憶體,以便一些程式啟動的更快。但是它給啟動時間增加了3-4秒。是以,你可 以留着它…或者不。**更新**,經我測試我覺得加載程式沒有什麼不同。是以我決定關閉此服務。如果你有打開此服務的理由,那就打開它 。 

43. reboot - 别更改它。 

44. resolvconf – 按照你的網絡狀态自動配置DSN資訊,我将它打開着。 

45. rmnologin – 如果發現nologin,那麼去除它。此情況不會在筆記本上面發生,是以我擺脫它。 

46. rsync – rsync守護程式. 我不打算在我的筆記本上使用rsync協定,是以我将其關閉 

47. sendsigs – 在重新開機和關機期間發送信号。順其自然。 

48. single – 激活單使用者模式。順其自然。 

49. ssh – ssh守護程式。 我需要ssh,是以我将此服務打開。 

50. stop-bootlogd – 從2,3,4,5運作等級停止bootlogd。順其自然。 

51. sudo – 檢查sudo 狀态。我沒在一台筆記本或者桌上型電腦用戶端上看到任何使用sudo的好處,是以我關閉了它。 

52. sysklogd - 順其自然。 

53. udev and udev-mab – 使用者空間dev檔案系統(userspace dev filesystem)。好東西,我将它們打開。 

54. umountfs - 順其自然。 

55. urandom – 随機數生成器。可能沒什麼用處,但是我留着它。 

56. usplash - 嗯,如果你想看到漂亮的開機畫面,順其自然。 無論如何沃關閉此服務了。如果你想關閉它,你也可以編輯/boot/grub/menu.lst檔案注釋掉splashimage行,除去開機splash核心選項。 

57. vbesave – 顯示卡BIOS配置工具。它能儲存你顯示卡的狀态。我将其開啟。 

58. xorg-common – 設定X服務ICE socket。我将其從在S運作等級開啟移動到2,3,4,5,運作等級。如果我引導到單使用者模式,那我不需要此服務。在最初引導期間這種方法将不占用時間。 

59. adjtimex – 這也是調整核心hw時鐘的工具。通常你不會在開機清單中看見它。在非常少有的情況如果你确實在開機程序中看見它了,事出有因,是以最好順其自然。在我的情況裡,它是關閉的。 

60. dirmngr – 證書清單管理工具(certification lists management tool)。和gnupg一起工作。你必須看看你是否需要它。在我的情況裡,我是關掉它的。 

61. hwtools – 一個優化irqs的工具。不确定打開它的好處。在我的情況裡,我是關掉它的。 

62. libpam-devperm - 在系統崩潰之後用于修理裝置檔案許可的一個守護程式。聽起來不錯,是以我打開它了。 

63. lm-sensors – 如果你的主機闆内建一些傳感晶片,通過使用者空間(userspace)檢視hw狀态可能是有幫助的。我運作了它,但是它提示“沒有發現傳感器”,是以我關閉 了此服務。64. mdadm-raid – 作用和mdadm服務相同。用來管RAID裝置。如果你沒有此類裝置,那盡管關掉它好了。 

65. screen-cleanup – 一個用來清除開機螢幕的腳本。嗯,是否關閉它有你決定。在我的情況裡,我打開它了。 

66. xinetd – 用來管理其他守護程序的一個inetd超級守護程式。在我的系統裡,xinetd管理chargen, daytime, echo和time (在 /etc/xinetd.d 目錄找到的),我不關系任何一個,是以我關掉了此服務。如果在xinetd下你确實有一些重要的服務,那打開它。 

III.修改 /etc/inittab 檔案 

vi /etc/inittab 

然後注釋掉tty4,tty5, 和tty6。隻留下tty1, tty2,和 tty3.。對于筆記本或桌上型電腦使用者3個終端應該足夠了。儲存檔案。 

IV. Ok,好,我們可以重新開機計算機并看看它變的如何了。從我測試來看:在我停止大量服務之前,引導到終端整個過程大約花費了85到90秒。 (在那時,我也打開了我不需要的samba和nfs服務。 我也将它們關閉了)。之後,整個過程花費了50秒。我有一台 P4M 1.8G CPU的筆記本。一些高檔桌上型電腦或者筆記本應該花費更少時間。 

**更新**: 加速/打掃系統重新開機或關機程序 

1. 通過以下代碼運作sysv-rc-conf: 

2. OK,睜開你的眼睛并仔細尋找那些在所有運作等級都沒有“X”的服務。(所有運作等級包括 1,2,3,4,5,6, 和S), 一個一個的把它們寫下來。在這裡千萬别出錯。再你搞定以後再來一遍。 

3. 退出sysv-rc-conf。 

4. 

cd /etc/rc0.d 

- 此目錄關于系統關機程序。 

5. OK, 現在開始 

ls K* 

将列出所有以大寫K開頭的連結。比較你的清單,将你清單中每個包含服務名的檔案名改為小寫k開頭。例如,在你清單中你有一個ppp服務(意思是說ppp将在所有運作等級關閉),然後你可以這樣做: 

sudo mv K00ppp k00ppp 

你隻要将大寫K改成小寫k就好了,保留其餘的。将此舉應用到你清單中存在的所有服務 。 

6. 

cd ../rc6.d 

- 此目錄關于系統重新開機程序。 

7. ok,你應該也看到了相似的東西了吧,是以在此做和rc0.d中同樣的修改。 

8. 現在,你的重新開機和關機程序被清理了,你的重新開機和關機過程将變的更快。 

關 于什麼是你要做的已經相當明了了。在每個運作等級/etc/rc和/etc/rcS腳本通過掃描每個連結是否以大寫S開頭來決定開啟與否,通過掃描每個鍊 接是否它是以大寫K開頭來決定停止與否。是以對于重新開機和關機運作等級,我們更關心的是大寫K開頭的連結,因為那寫服務不運作在所有運作等級,不必停止他 們。它們更本沒有運作。如果有一天你想重新開啟其中的一些服務, 隻要将小寫的k改為大寫的K即可。就這些了。 

無論如何,它不适用伺服器,但是我确實在我的一台擁有2.7G P4 ,1.5G記憶體的伺服器上測試過。它将整個啟動過程縮短為31秒。我用我的手表計算的。而且,其中還包括了開啟的ftp伺服器和nft伺服器。