Linux内核升级方法详解
2013-03-17 16:43
363 查看
Linux的内核是系统的核心,所以升级内核是Linux系统管理员的一项基本技能,所以我就分享了系统运维实务上的一篇文章,当然我对源文件稍做了一些内容的增加,就是把遇到的问题及解决方案也加上了,希望对各位Linux系统管理员有所帮助!
1.下载内核
cd /usr/src
tar zxvf linux-2.6.38.tar.gz
cd linux-2.6.38
2.生成.config文件
make menuconfig
生成.config
要特别选中:
通过make menuconfig选中以下对应的选项
General setup –>
[*] enable deprecated sysfs features to support old userspace tools
通过以上操作主要是为了修改.config文件中CONFIG_SYSFS_DEPRECATED_V2,将原本被注释掉的
CONFIG_SYSFS_DEPRECATED_V2 改成CONFIG_SYSFS_DEPRECATED_V2=y
注: 修改这项是因为旧版的mkinitrd及其nash在内核没有CONFIG_SYSFS_DEPRECATED_V2参数时默认使用旧版sysfs路径格式,从而在新内核下无法正确访问/sys内的硬盘信息节点。
主要是解决"mount:could not find filesystem '/dev/root'"这样的错误
3.编译内核
make mrproper(可确保源代码目录下没有不正确的.o文件)
make clean (清除内核编译的目标文件)
make bzImage
make modules
make modules_install
make install
4.解压修改内核
cp /boot/initrd-2.6.38.img /tmp
cd /tmp/
mkdir newinitrd
cd newinitrd/
zcat ../initrd-2.6.38.img |cpio -i
rm -rf /tmp/initrd-2.6.38.img
vi init
找到这2行一样的,去掉1行
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
这主要是解决:"insmod: error inserting '/lib/dm-region-hash.ko': -1 File exists"这样的错误
5.重新打包内核
find .|cpio -c -o > /initrd
cd /
gzip -9 < initrd > initrd-2.6.38.img
rm -rf /boot/initrd-2.6.38.img
cp initrd-2.6.38.img /boot
rm -rf /cd /usr/src/linux-2.6.38.tar.gz
rm -rf /cd /usr/src/linux-2.6.38
6.设置从新内核启动
vi /boot/grub/grub.conf
把default=1改为default=0
7.重新启动系统
reboot
1.下载内核
cd /usr/src
tar zxvf linux-2.6.38.tar.gz
cd linux-2.6.38
2.生成.config文件
make menuconfig
生成.config
要特别选中:
通过make menuconfig选中以下对应的选项
General setup –>
[*] enable deprecated sysfs features to support old userspace tools
通过以上操作主要是为了修改.config文件中CONFIG_SYSFS_DEPRECATED_V2,将原本被注释掉的
CONFIG_SYSFS_DEPRECATED_V2 改成CONFIG_SYSFS_DEPRECATED_V2=y
注: 修改这项是因为旧版的mkinitrd及其nash在内核没有CONFIG_SYSFS_DEPRECATED_V2参数时默认使用旧版sysfs路径格式,从而在新内核下无法正确访问/sys内的硬盘信息节点。
主要是解决"mount:could not find filesystem '/dev/root'"这样的错误
3.编译内核
make mrproper(可确保源代码目录下没有不正确的.o文件)
make clean (清除内核编译的目标文件)
make bzImage
make modules
make modules_install
make install
4.解压修改内核
cp /boot/initrd-2.6.38.img /tmp
cd /tmp/
mkdir newinitrd
cd newinitrd/
zcat ../initrd-2.6.38.img |cpio -i
rm -rf /tmp/initrd-2.6.38.img
vi init
找到这2行一样的,去掉1行
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
这主要是解决:"insmod: error inserting '/lib/dm-region-hash.ko': -1 File exists"这样的错误
5.重新打包内核
find .|cpio -c -o > /initrd
cd /
gzip -9 < initrd > initrd-2.6.38.img
rm -rf /boot/initrd-2.6.38.img
cp initrd-2.6.38.img /boot
rm -rf /cd /usr/src/linux-2.6.38.tar.gz
rm -rf /cd /usr/src/linux-2.6.38
6.设置从新内核启动
vi /boot/grub/grub.conf
把default=1改为default=0
7.重新启动系统
reboot
相关文章推荐
- Linux内核升级方法详解
- 升级Linux内核的一般步骤方法
- CentOS Linux 升级内核步骤、方法
- linux /centos 中OpenSSL升级方法详解
- CentOS Linux 升级内核步骤、方法
- Ubuntu 16.04 Linux系统内核升级方法
- 编译升级linux由2.4.20-8到2.6.10内核时,遇到的错误,以及解决方法
- Linux/CentOS配置:使用yum update更新时不升级内核的方法
- Ubuntu 16.04升级Linux内核为4.7.0最快的方法
- Linux内核升级方法与步骤
- 升级Linux内核的一般步骤方法
- linux /centos 中OpenSSL升级方法详解
- CentOS Linux 升级内核步骤和方法
- linux升级内核,出现:mount:could not find filesystem‘/dev/root’的解决方法
- linux升级内核,出现:mount:could not find filesystem‘/dev/root’的解决方法
- Linux内核升级详解!
- linux 系统升级内核的方法
- Linux升级内核虽然我按照上面的方法没有成功,原因是镜像地址下载太慢导致的,后续知道怎么解决后在评论中给出方案
- LINUX内核升级错误提示解决方法
- linux /centos 中OpenSSL升级方法详解