请选择 进入手机版 | 继续访问电脑版

雨林木风

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 17|回复: 0

Ubuntu内核的重新编译安装

[复制链接]

6391

主题

6394

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
19410
发表于 2019-12-13 09:22:49 | 显示全部楼层 |阅读模式
  由于最近在搭建abiCloud云计算环境,所以在node端要安装vbox (当然可以采用vmware等)。由于vbox要编译进内核,所以重新把的内核重新编译了一下。
  下面是编译的整个过程:
  首先,确认一下内核版本,使用如下命令:( 我node端采用的是 9.10桌面版)
  root@hker-laptop:/# # uname -a
  返回信息:
  Linux hker-laptop 2.6.31-14-generic #48- SMP Fri Oct 16 14:04:26 UTC 2009 i686 GNU/Linux
  然后从内核网站:http://www.kernel.org/下载你需要的版本。在这里我阴差阳错的下载了2.6.31-8的版本,呵呵比我自带的版本还低,不过没有关系啦,完成任务要紧阿。就以这个版本来安装吧!
  首先解压linux-2.6.31.8.tar.gz到/usr/src/目录
  root@hker-laptop:/usr/src/#cd /usr/src/
  root@hker-laptop:/usr/src/linux/#tar zxvf linux-2.6.31.8.tar.gz
  root@hker-laptop:/usr/src/linux/#mv linux-2.6.31.8 linux (新建linux目录,和通过硬连接的方式建立这个目录,貌似没有差别:))
  root@hker-laptop:/usr/src/linux/#make oldconfig
  root@hker-laptop:/usr/src/linux/#make prepare
  root@hker-laptop:/usr/src/linux/#make modules_prepare
  root@hker-laptop:/usr/src/linux/#cd ..
  root@hker-laptop:/usr/src/#make -C linux M=/usr/src/linux/net/mac80211/ modules
  root@hker-laptop:/usr/src# cp linux/net/mac80211/modules.order linux/
  root@hker-laptop:/usr/src# cd linux
  root@hker-laptop:/usr/src/linux# make modules_install
  root@hker-laptop:/usr/src# cd linux
  root@hker-laptop:/usr/src/linux# make all (漫长的时间等待,我的编译了大概2个小时吧 :( )
  OK终于编译完了!
  root@hker-laptop:/usr/src/linux#make install
  通过这一步,将会把编译好的 vmlinux-2.6.31.8拷贝到 /boot目录下,并建立System.map-2.6.31.8映射。但是这里少了个initrd.img-2.6.31.8 !这个要自己设定!
  生成initrd.img-2.6.31.8文件可以使用mkinitramfs命令。
  root@hker-laptop:/usr/src/linux/#cd /lib/modules
  root@hker-laptop:/lib/modules/#mkinitramfs -o /boot/initrd.img-2.6.31.8
  OK,生成成功!
  下面是关键的一步,就是将我们新编译的内核加到启动项,9.10没有采用menu.lst,而是grub2,修改grub.cfg就可以了。
  root@hker-laptop:/lib/modules/#chmod +w /boot/grub/grub.cfg
  root@hker-laptop:/lib/modules/#gedit /boot/grub/grub.cfg
  在
  ### BEGIN /etc/grub.d/10_linux ###
  和
  ### END /etc/grub.d/10_linux ###
  之间加入,我们的内核部分。具体如下:
  ### BEGIN /etc/grub.d/10_linux ###
  menuentry ", Linux 2.6.31-14-generic" {
  recordfail=1
  if [ -n ${have_grubenv} ]; then save_env recordfail; fi
  set quiet=1
  insmod ext2
  set root=(hd0,1)
  search --no-floppy --fs-uuid --set 81cd49dd-4c54-4f9c-b915-ed559a3e5c85
  linux /boot/vmlinuz-2.6.31-14-generic root=UUID=81cd49dd-4c54-4f9c-b915-ed559a3e5c85 ro quiet splash
  initrd /boot/initrd.img-2.6.31-14-generic
  }
  menuentry ", Linux 2.6.31-14-generic (recovery mode)" {
  recordfail=1
  if [ -n ${have_grubenv} ]; then save_env recordfail; fi
  insmod ext2
  set root=(hd0,1)
  search --no-floppy --fs-uuid --set 81cd49dd-4c54-4f9c-b915-ed559a3e5c85
  linux /boot/vmlinuz-2.6.31-14-generic root=UUID=81cd49dd-4c54-4f9c-b915-ed559a3e5c85 ro single
  initrd /boot/initrd.img-2.6.31-14-generic
  }
  menuentry ", Linux 2.6.31.8" {
  recordfail=1
  if [ -n ${have_grubenv} ]; then save_env recordfail; fi
  set quiet=1
  insmod ext2
  set root=(hd0,1)
  search --no-floppy --fs-uuid --set 81cd49dd-4c54-4f9c-b915-ed559a3e5c85
  linux /boot/vmlinuz-2.6.31.8 root=UUID=81cd49dd-4c54-4f9c-b915-ed559a3e5c85 ro quiet splash
  initrd /boot/initrd.img-2.6.31.8
  }
  menuentry ", Linux 2.6.31.8(recovery mode)" {
  recordfail=1
  if [ -n ${have_grubenv} ]; then save_env recordfail; fi
  insmod ext2
  set root=(hd0,1)
  search --no-floppy --fs-uuid --set 81cd49dd-4c54-4f9c-b915-ed559a3e5c85
  linux /boot/vmlinuz-2.6.31.8 root=UUID=81cd49dd-4c54-4f9c-b915-ed559a3e5c85 ro single
  initrd /boot/initrd.img-2.6.31.8
  }
  ### END /etc/grub.d/10_linux ###
  最后一步,也是关键的一步,就是修改default变量:
  set default="3"
  这里是3,因为总共4个选项,以0开始。
  到这里也就安装完毕了!重启看看是不是变成2.6.31.8了 :)
  注意:root=UUID=81cd49dd-4c54-4f9c-b915-ed559a3e5c85 要拷贝你原来的版本的值!
回复

使用道具 举报

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

本版积分规则

|网站地图
快速回复 返回顶部 返回列表