LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 11066|回复: 15

arch启动速度的优化

[复制链接]
发表于 2006-2-23 10:46:47 | 显示全部楼层 |阅读模式
最近lsmod一下,发现列出的模块N多,好几个屏幕才显示完,故查了一下,找到篇文章解决这个问题http://bbs.archlinux.org/viewtopic.php?t=19097

1. 重新制作initrd.首先备份/boot/initrd26.img,修改 /etc/mkinitrd.conf. 这里的模块只是用来支持arch的启动,所以usb,cd的模块可以禁用掉,启动以后需要时再加载. 例如我的硬盘是sata的:

  1.       REMOVE_IDE=1
  2.       REMOVE_SCSI=
  3.       REMOVE_SATA=
  4.       REMOVE_CDROM=1
  5.       REMOVE_USB=1
  6.       REMOVE_FW=1
  7.       REMOVE_RAID=1
  8.       REMOVE_DM=1
  9.       REMOVE_FS=
复制代码

然后

  1. [arch@Archlinux ~]$ hwdetect --sata
  2. HOSTCONTROLLER_SATA: ata_piix
  3. [arch@Archlinux ~]$ hwdetect --scsi
  4. HOSTCONTROLLER_SCSI: sd_mod
复制代码

把上面检测的两个模块添加到下面

  1. HOSTCONTROLLER_IDE=
  2. HOSTCONTROLLER_SCSI="sd_mod"
  3. HOSTCONTROLLER_SATA="ata_piix"
  4. HOSTCONTROLLER_USB=
  5. FILESYSTEMS="reiserfs"
复制代码

我的分区是reiserfs,然后
  1.    
  2. sudo mkinitrd auto --show
复制代码

      如果你的是ide硬盘,将REMOVE_SCSI,REMOVE_SATA都设为1

  1. [arch@Archlinux ~]$ hwdetect --ide
复制代码

将显示的模块加入HOSTCONTROLLER_IDE= 即可. 现在initrd26.img体积小多了.

  1. -rw-r--r-- 1 root root 3576874 2006-02-21 19:21 initrd26-full.img
  2. -rw-r--r-- 1 root root 3079937 2006-02-23 08:54 initrd26.bak.img
  3. -rw-r--r-- 1 root root 808558 2006-02-23 10:01 initrd26.img
复制代码

后两个大家都熟悉了.

2. 编辑 /etc/rc.conf,将不需要的模块加入 BLACKLIST.
3. 编译 /etc/rc.conf 在某些daemons前加上@,使之在后台运行.加快启动速度. 例如我的
DAEMONS=(syslog-ng network @crond @sshd @squid !alsa)
发表于 2006-2-23 23:29:27 | 显示全部楼层
good,thanks
回复 支持 反对

使用道具 举报

发表于 2006-2-24 09:31:03 | 显示全部楼层
我这里是自动获取ip,network是最费时间的,把network前面加了@,呵呵
回复 支持 反对

使用道具 举报

发表于 2006-6-8 13:03:26 | 显示全部楼层
楼主,你的
DAEMONS=(syslog-ng network @crond @sshd @squid !alsa)

把alsa都禁了会不会没有声音啦?我的蛮多的,譬如:
DAEMONS=(syslog-ng @gdm dbus @alsa portmap hal !hotplug !pcmcia network netfs crond)

我不知道dbus, crond是做什么的。楼主连hal和portmap都没有不只对系统有没有影响呢?
回复 支持 反对

使用道具 举报

发表于 2006-6-8 17:32:17 | 显示全部楼层
Post by wd_afei
我这里是自动获取ip,network是最费时间的,把network前面加了@,呵呵

不错。另外,对于有多个网络接口的机器,如果在不同的场合下想用不同的网络接口,可以通过向内核传递NET参数来初始化相应端口。
如,我的机器有一个以太网卡(被我固定为eth0),一个无线网卡(eth1),我在家通过eth0连接局域网,根本没有无线连接,而在公司则通过无线HUB接驳,无需以太连接。
所以我在GRUB中配置两个启动项,分别是OFFICE和HOME
其中OFFICE的kernel有NET=wireless,HOME的有NET=lan的参数
lan和wireless分别为/etc/network-profile/中针对eth0,eth1的配置文件。
可以省去双重启动的等待时间。
同时,如果是DHCP的话,可以在这些配置文件中配置DHCPCD_ARGS="-t 5 -h $HOSTNAME"把dhcpcd的时间规定到5秒内完成。不完成直接报错跳过。
回复 支持 反对

使用道具 举报

发表于 2006-6-9 09:28:02 | 显示全部楼层
精华区有这篇文章,为什么要重发一遍?
回复 支持 反对

使用道具 举报

发表于 2006-11-11 14:36:06 | 显示全部楼层
Post by wangyb
不错。另外,对于有多个网络接口的机器,如果在不同的场合下想用不同的网络接口,可以通过向内核传递NET参数来初始化相应端口。
如,我的机器有一个以太网卡(被我固定为eth0),一个无线网卡(eth1),我在家通过eth0连接局域网,根本没有无线连接,而在公司则通过无线HUB接驳,无需以太连接。
所以我在GRUB中配置两个启动项,分别是OFFICE和HOME
其中OFFICE的kernel有NET=wireless,HOME的有NET=lan的参数
lan和wireless分别为/etc/network-profile/中针对eth0,eth1的配置文件。
可以省去双重启动的等待时间。
同时,如果是DHCP的话,可以在这些配置文件中配置DHCPCD_ARGS="-t 5 -h $HOSTNAME"把dhcpcd的时间规定到5秒内完成。不完成直接报错跳过。


受教了!
启动速度真的快了一倍以上,楼主高见
回复 支持 反对

使用道具 举报

发表于 2006-11-11 15:24:40 | 显示全部楼层
硬盘模块的定义现在在arch里面已经失去作用了,arch不用mkinitrd了
回复 支持 反对

使用道具 举报

发表于 2006-11-11 15:30:04 | 显示全部楼层
Post by wd_afei
我这里是自动获取ip,network是最费时间的,把network前面加了@,呵呵


我以前也是把network前面加了@,但进入桌面后不能马上上网,上网还容易出错,因为我小孩也在用此arch,只得去掉@。现在启动network最花时间,郁闷
回复 支持 反对

使用道具 举报

发表于 2006-11-11 17:57:51 | 显示全部楼层
Post by blance
硬盘模块的定义现在在arch里面已经失去作用了,arch不用mkinitrd了

那现在具体情况是怎样的呢,可是我试验了之后确实启动速度明显提升,说明还是起作用了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表