http://forum.ubuntu.org.cn/viewtopic.php?t=7505
原作者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:
代碼:
sudo 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伺服器。
原文http://www.ubuntuforums.org/showthread.php?t=89491