Chinaunix首页 | 论坛 | 博客
  • 博客访问: 602140
  • 博文数量: 353
  • 博客积分: 1104
  • 博客等级: 少尉
  • 技术积分: 1457
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-23 23:02
个人简介

1、刚工作时做Linux 流控;后来做安全操作系统;再后来做操作系统加固;现在做TCP 加速。唉!没离开过类Unix!!!但是水平有限。。

文章存档

2015年(80)

2013年(4)

2012年(90)

2011年(177)

2010年(1)

2009年(1)

分类: LINUX

2011-10-26 16:48:14

下载内核:wget 

解压至/usr/src/

tar jxvf  linux-2.6.35.tar.bz2 -C /usr/src/

编译步骤:

cd /usr/src/linux-2.6.35

make mrproper             //会清理多余文件(如果有,比如目录下有.config会clean之)

make menuconfig           //字符界面选择编译内容

make all                  //等同于3个命令(make && make zImage && make modules )

make modules_install       //模块安装

make install              //完成mkinitrd命令及内核(bzImage)和System.map的拷贝以及grub添加

如果只是按上述步骤完成编译重启加载新内核启动会报如下类似错误:

 mount: could not find filesystem '/dev/root'
setuproot: moving /dev/failed: no such file or directory
setuproot: error mounting /proc: No such file or directory.
setuproot: error mounting /sys: No such file or directory.
switchroot: mount failed: No such file or directory.
Kernel panic - not syncing: Attempted to kill init!

解决办法:来自CU社区

在执行完 “make all”之后“linux-2.6.35”文件夹下会生成配置文件“.config”

 编辑此文件。大约在110行。

改“# CONFIG_SYSFS_DEPRECATED_V2 is not set”为“CONFIG_SYSFS_DEPRECATED_V2=y”

或者直接用下面命令更改:

Sed -i 's/# CONFIG_SYSFS_DEPRECATED_V2 is not set/CONFIG_SYSFS_DEPRECATED_V2=y/' ./.config

修改完此配置文件后再次“make all”以及完成后续步骤。

 

 

解压initrd

cp /boot/initrd-2.6.35.img /tmp
cd /tmp/
mkdir newinitrd
cd newinitrd/
zcat ../initrd-2.6.35.img |cpio -i

编辑init文件,删掉重复的两行其中一行

vi init

echo "Loading dm-region-hash.ko module"
insmod /lib/dm-region-hash.ko
echo "Loading dm-region-hash.ko module"
insmod /lib/dm-region-hash.ko

重新打包文件

find .|cpio -c -o > ../initrd
cd ../
gzip -9 < initrd > initrd-2.6.35.img
rm -rf /boot/initrd-2.6.35.img
cp initrd-2.6.35.img /boot

修改启动项

vi /boot/grub/grub.conf

把default=1改为default=0

最后从新启动 reboot

阅读(647) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~