SpeedUpUbuntuBootProcess

来自Ubuntu中文
Oneleaf留言 | 贡献2007年5月30日 (三) 18:15的版本 (新页面: == Speed up ubuntu boot process == 加速ubuntu开机过程 ---- 原文出处:http://www.ubuntuforums.org/showthread.php?t=89491 原文作者:i3dmaster 授权许可: 翻译人...)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航跳到搜索

Speed up ubuntu boot process

加速ubuntu开机过程


原文出处:http://www.ubuntuforums.org/showthread.php?t=89491

原文作者:i3dmaster

授权许可:

翻译人员:yang119345

校对人员:CaoXiaoboBUAA

贡献者:

适用版本: 文章状态:完成


此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服务器。

原文

This HowTo is for those who complaint ubuntu boot-up speed is pretty slow but not willing to install any alternative tools to speed up. The way I use here is not the altimate solution by any means but it does make differences and it does work. Everything done below is by tuning the boot process itself and because everyone's computer might be different, there is a little risk that something below might break your system. Take your own judgment before you perform a change and always good to do a backup for the /etc dir.

    • This HowTo is mainly for laptops and desktops, not for servers.**

Suggestions for this HowTo: 1. I hope you learn something from here but not just a simple copy. So please, **DO NOT** follow exactly what I did and copy to your box. Read the descriptions of services and use your own judgment to determine if you need to keep them on or not. For instance, I turned GDM off on mine to boot to console, but if you do not feel confortable to see console at all, you should keep GDM or KDM on to boot directly to GUI. 2. If you have a question about a boot up service and not really sure what it does, post a question here and see if anybody can help you. Ask before you do if you don't know. The bottom line to be safe is to leave a service on rather than turn it off if you do not understand. 3. If you see a boot up service that you have but not in here, let us know what it does just like what I did here - give some descriptions and suggestions on whether it should be on or off on a normal laptop or desktop environment.

Color reference : service I turned on service I turned off

I. Install a tool - sysv-rc-conf. It is a perl based boot process adjustment tool. Code:

sudo apt-get update sudo apt-get install sysv-rc-conf

It gives you a way to esaily config the boot process and runlevel configuration, but its not necessary if you want to do it manually by linking/unlinking the files... Its up to you.

II. Ok, that's all we need. Now let's fire it up by Code:

sudo sysv-rc-conf

and analyze each service one by one. **Note:** Some services I have here you might not have, perfectly ok. If some you have but I don't, then you will need to investigate on your own or ask here... But this HowTo should cover most of them...

Throw a littel bit of runlevel knowledge here before we start messing them up.... All the boot processes are executed in sequence as following: runlevel S: the first runlevel in boot process. /etc/init.d/rcS script will be invoked to start and all the processes underneath /etc/rcS.d will be executed. runlevel 1: the single user mode. All processes underneath /etc/rc1.d will be executed. runlevel 2,3,4,5: in debain system, the multi-user env, may not may not include GUI. The same, processes under each of the corresponding dirs will be run. **Note** this is different than RedHat, SuSE, and other RPM based systems. runlevel 0: computer shutdown. runlevel 6: computer reboot.

ok, back to sysv-rc-conf:

1. acpi-support - You'd better leave it on "X" at S runlevel. 2. acpid - The acpi daemon. These two are for power management, quite important for laptop and desktop computers, so leave them on. 3. alsa - If you use alsa sound subsystem, yes leave it on. 4. alsa-utils - On my system, this service supercedes the alsa, so I turn off the alsa and turn this on at S level. **Note**, I mean "turn off" is to remove all "X" at all runlevels. If you don't have it on your system, no problem. Just keep going. 5. anacron - A cron subsystem that executes any cron jobs not being executed when the time is on. Most likely you've probably turned your computer off when a certain cron job time is ready. For example, updatedb is scheduled at 2am everyday, but at that moment, you computer is off, then if anacron service is on, it will try to catch up that updatedb cron... I turn it off cause it didn't turn my laptop off very offen, but its totally up to you for this one. 6. apmd - This is the one that confused me a quite bit. I have acpid on already and what's the benefits of having apmd on too? If you computer is not that old which can't even support acpi, then you may try to turn this off. I did anyway. 7. atd - like cron, a job scheduler. I turned it off. 8. binfmt-support - Kernel supports other format of binary files. I left it on. 9. bluez-utiles - I turned it off. I don't have any bluetooth devices. 10. bootlogd - Leave it on. 11. cron - Leave it on. 12. cupsys - subsystem to manager your printer. I don't have so I turned it off, but if you do, just leave it on. 13. dbus - Message bus system. Very important, leave it on. 14. dns-clean - Mainly for cleaning up the dns info when using dial-up connection. I don't use dial up, so I turn it off. 15. evms - Enterprise Volumn Management system. I turned it off. 16. fetchmail - A mail receving daemon. I turned it off. 17. gdm - The gnome desktop manager. I turned it off anyway since I get use to boot to console first. This is up to you if you want to boot directly to GUI. 18. gdomap - Actually I have no idea why this one should on. I didn't see any other systems have this daemon, so I turned it off and I don't feel I lose anything. Any benefits to have it on a loptop or desktop? 19. gpm - Mouse support for console. If you feel you'd better have a mouse on console, go turn it on at runlevel 1 and 2. That's all you need. 20. halt - Don't change it. 21. hdparm - tuning harddisk script. I removed the 2,3,4,5 runlevel but add it to S runlevel. I feel that opening DMA, 32bit I/O, etc eariler will benefit the rest of the processes. Also I changed the original script to a very simple one that I made myself. I feel useless to put all those redundant checks if I know what I am doing. The configuration file is /etc/hdparm.conf. 22. hibernate - If your system support hibernate, leave it on. Otherwise, its useless for you. 23. hotkey-setup - This daemon setup some hotkey mappings for Laptop. Manufacturers supported are: HP, Acer, ASUS, Sony, Dell, and IBM. If you have a laptop in those brands, you can leave it on, otherwise, this might not have any benefits for you. 24. hotplug and hotplug-net #activating hotplug subsystems takes time. I'd consider to turn them off. I did some changes in my /etc/network/interfaces file. Instead of mapping my wireless card during hotplug process, I set it up to auto. So I can turn them off. I've tested even I turned them off, ubuntu can still detect my usb driver, my digital camera, etc. So I think its pretty safe to turn them off. **Note** If you find your sound card doesn't work after turning hotplug service off, you can turn it back. Or edit /etc/modules file to add your sound card's driver module. Tested out the later one is faster. 25. hplip - HP printing and Image subsystem. I turned it off. 26. ifrename - network interface rename script. Sounds pretty neat but I turned it off. Mainly for managing multiple network interfaces names. Since I have a wireless card and an ethernet card, they all assigned eth0 and ath0 from kernel, so its not really useful for me. 27. ifupdown and ifupdown-clean - Leave it on. They are network interfaces activation scripts for the boot time. 28. inetd or inetd.real - take a look your /etc/inetd.conf file and comment out any services that you don't need. If there aren't any services there, then its very safe to turn them off. 29. klogd - Leave it on. 30. linux-restricted-modules-common - You need to see if you really have any restricted modules loaded on your system. Since I need madwifi ath_pci module, so I left it on. The restricted modules can be found from /lib/linux-restricted-modules. If you find that you are not using any of the restricted modules, then its ok to turn it off. 31. lvm - I don't use it so I turned it off. Leave it on if you *DO* have lvm. 32. makedev - Leave it on. 33. mdamd - Raid management tool. I don't use it so I turned it off. 34. module-init-tools - Load extra modules from /etc/modules file. You can investigate your /etc/modules file and see if there is any modules that you don't need. Normally, this is turned on. 35. networking - bring up network interfaces and config dns info during boot time by scaning /etc/network/interfaces file. Leave it on. 36. ntpdate - Sync time with the ubuntu time server. I don't need it on boot time so I turned it off. 37. nvidia-kernel - I compiled the nvidia driver by myself, so its useless for me now. If you use the ubuntu nvidia driver from the restrict modules, just leave it on. 38. pcmcia - Active pcmcia device. I changed it to start on S runlevel instead of on each 2,3,4,5 cause I feel its better to have hardware device ready at first. Also, useless if you are using desktop which doesn't have pcmcia card. So in that case, turn it off please. 39. portmap - daemon for managing services like nis, nfs, etc. If your laptop or desktop is a pure client, then turn it off. 40. powernowd - client to manage cpufreq. Mainly for laptops that support CPU speed stepping technology. Normally, you should leave it on if you are configuring a laptop, but for desktop, it might be useless. 41. ppp and ppp-dns - Useless to me. I don't have dial-up. 42. readahead - **Thanks mr_pouit!** It seems readahead is a kind of "preloader". It loads at startup some libs on memory, so that some programs will start faster. But it increases startup time for about 3-4 seconds. So, you can keep it... or not . **update**, I tested and I just didn't feel difference loading programs. So I decided to turn it off. If you have a reason to keep it on, please do so. 43. reboot - Don't change it. 44. resolvconf - Automatically configuring DNS info according to your network status. I left it on. 45. rmnologin - Remove nologin if it finds it. It wouldn't happen on my laptop, so I got rid of it. 46. rsync - rsync daemon. I don't use it on my laptop, so turned it off. 47. sendsigs - send signals during reboot or shutdown. Leave it as it is. 48. single - Active single user mode. Leave it as it is. 49. ssh - ssh daemon. I need this so I turned it on. 50. stop-bootlogd - stop bootlogd from 2,3,4,5 runlevel. Leave it as it is. 51. sudo - check sudo stauts. I don't see any good to run it everytime on a laptop or desktop client, so I turned it off. 52. sysklogd - Leave it as it is. 53. udev and udev-mab - Userspace dev filesystem. Good stuff, I left them on. 54. umountfs - Leave it as it is. 55. urandom - Random number generator. Might not useful but I left it on. 56. usplash - Well, if you really want to see the nice boot up screen, leave it as it is. I just turned it off anyway. If you want to turn it off, you also need to edit /boot/grub/menu. lst file to comment out the splashimage line and get rid of the splash kernel boot option. 57. vbesave - video card BIOS configuration tool. Its able to save your video card status. I left it on. 58. xorg-common - setup X server ICE socket. I moved it from starting at runlevel S to runlevel 2,3,4,5. Since I don't need this if I boot to single user mode. This way it wouldn't occupy time during the initial booting. 59. adjtimex - This is a kernel hw clock time adjusting too. Normally, you shouldn't see this on your boot up list. In very rare case if you do see its on your boot up process, then there might be a reason why it is on, so better leave it that way. In my case, it is off. 60. dirmngr - A certification lists management tool. Work with gnupg. You will have to see if you need it or not. In my case, I turned it off. 61. hwtools - A tool to optimize irqs. Not sure what's the benefits of turning it on. In my case, I turned it off. 62. libpam-devperm - A daemon to fix device files permissions after a system crash. Sounds pretty good, so I left it on. 63. lm-sensors - If you matherboard has builtin some sensor chips, it might be helpful to see hw status via userspace. I ran it and it said "No sensors found", so I turned it off. 64. mdadm-raid - The same as mdadm service. Its to manage the RAID devices. If you don't have RAID, then its ok to turn it off. 65. screen-cleanup - A script to cleanup the boot up screen. Well, turn on or off is up to you. In my case, I left it on. 66. xinetd - A inetd super daemon to manage other damons. In my system, the xinetd is managing chargen, daytime, echo and time (find them from /etc/xinetd.d dir), I care none of them, so I turned it off. If you do have some important services configured under xinetd, then leave it on.

III. Alter the /etc/inittab file Code:

vi /etc/inittab

then comment out tty4,tty5, and tty6. Just leave tty1, tty2, and tty3. Three vts should be enough for a laptop or desktop user. Save the file.

IV. Ok, now, we can reboot our box and see how it goes. From what I've tested, before I got tons of services stopped, the whole process is about 85 secs to 90 secs to boot to console. (At that time, I also has samba and nfs services turned on which I shouldn't. Apparently, I turned them off too). After this change, the whole boot up process took about 50 secs. I have a P4M 1.8G CPU laptop. Some of the high-end desktops or laptops should take even less time.

    • UPDATE**: speed up/clean system reboot or shutdown process.

1. start sysv-rc-conf by issuing: Code:

sudo sysv-rc-conf

2. ok, open your eyes and look very carefully for those SERVICES DO NOT HAVE "X" ON ALL RUNLEVELS (All runlevel means 1,2,3,4,5,6, and S), write them down one by one. Don't make mistakes here. Double check after you've done. 3. quit sysv-rc-conf. 4. Code:

cd /etc/rc0.d

- This is for the system shutdown process. 5. ok, now, Code:

ls K*

will list all links starting from UPPERCASE letter "K". Compare with your list, change each of the filename containing the service name in your list to start from a lowercase "k". For example, in your list, you have ppp service (which means ppp is turned off at all runlevels), then you can do like: Code:

sudo mv K00ppp k00ppp

. You just change the UPPERCASE K to lowercase k, keep the rest the same. Do this on all of the services in your list. 6. Code:

cd ../rc6.d

- This is for the system reboot process. 7. ok, you should see similar things here too. So do the same thing here as you did on rc0.d. 8. Now, you reboot and shutdown process should be cleaned up and faster.

The explanation for what you did is pretty simple. The /etc/rc and /etc/rcS scripts run start on each link on each runlevel by scaning if it is starting with a UPPERCASE "S" and run stop on each by scaning if it is starting with a UPPERCASE "K". So for reboot and shutdown runlevels, the most thing we care is the "K" links cause for those services not running on all runlevels, its just not needed to stop them. They are not runing at all. If some day you want to turn some of the services back on, just change the lowercase "k" to UPPERCASE "K". That's all.

Anyway, it is not intend to work on servers, but I did try on one of my servers has 2.7G P4 and 1.5G mem. It brought the boot process down to 31 secs. I calc'ed it with my watch. Besides, this is with my ftp server and nfs server started on boot time.