Ubuntu10.04 编译并安装Linux 内核2.6.32.60版本及错误解决。

本文主要是写给内核学习新手的,主要是在VMWare虚拟机上进行操作。

首先安装对应版本的编译工具链。

下面进行编译和安装。

1.首先解压源码。

2.使用cp命令把解压之后的源码复制到 /usr/src目录中 例如:cp -r linux-2.6.32.60  /usr/src/

======================================

注:如果是首次编译内核,无需执行上面1,2但是需要在内核源码目录下执行make mrproper命令来删除之前已编译的.o和.config文件。

======================================

3.使用su命令切换到root用户,cd到/usr/src/中的内核源码目录下。

4.把本机的 /usr/src/本机内核版本/   目录下的.config文件复制到  /usr/src/要编译的内核版本   目录下,例如在我的机器上命令是:cp  /usr/src/linux-headers-2.6.32-21/.config  /usr/src/linux-2.6.32.60 。

5.make oldconfig。这条命令首先读取刚才拷贝的.config文件,然后会询问一些新的内核特性是否编译,对于新手来说一直按回车键就可以了。

6.make bzImage,开始编译内核

7.make modules,开始编译模块。

8.make modules_install,安装内核模块

9.make install,安装内核

10.执行update-initramfs -c -k 内核版本号,例如在我的机器上就是:update-initramfs -c -k 2.6.32.60,这个命令十分重要。

11.拷贝编译出的内核压缩文件bzImage 到boot目录下,命名为vmlinuz-内核版本号, 例如在我的机器上是这样操作的: cp /usr/src/linux-2.6.32.60/arch/i386/boot/bzImage /boot/vmlinuz-2.6.32.60

12.执行update-grub和update-grub命令更新引导文件。

13.reboot

==================================================

二.编译过程出现的问题

安装内核重启之后加载新内核很可能出现问题从而无法启动,这里说一种方法用来加载原来的内核。

这里直说使用VMWare虚拟机的方法。

1.首先点击 虚拟机-电源-打开电源时进入固件,这样我们就可以进入BIOS了。在BIOS中选择BOOT选项,将CD-ROM作为第一启动项,然后CTRL+F10进行保存重启。

2.进入Ubuntu安装盘,不选择安装,选择try Ubuntu,这样就进入Ubuntu试用版系统了。

3.进入系统之后首先使用sudo passwd对Root密码进行设置,然后切换到ROOT用户。

4.使用fdisk -l 命令查看你的 boot分区在哪个硬盘上,我的是在/dev/sda1上面。(注意,如果你安装系统的时候没有进行进行分区,那么fdisk命令显示的Linux分区就包含boot)。

5.挂载boot分区到自己创建的目录,例如在我的电脑上使用的命令是 mkdir mydir && mount /dev/sda1 mydir,之后cd到mydir 目录就是在boot分区了。

我们主要编辑 /boot/grub/grub.cfg文件,把所有关新内核的配置删除,例如我的机器上需要删除

menuentry ‘Ubuntu, with Linux 2.6.32.60‘ --class ubuntu --class gnu-linux --class gnu --class os {
  ..........

}

所有带有2.6.32.60的menuentry 块都需要删除。

删除之后,保存文件,重启机器,修改BIOS的BOOT为硬盘启动。

(注:网上还有一种修改grub.cfg的set default="0"的方法,但是在我的机器上没有起作用)。

错误:Kernel Panic - not syncing :VFS: Unable to mount root fs on unknown-block(0,0) 

没办法挂载root,解决办法,在所有新内核相关的menuentry块中添加“initrd /boot/initrd.img-内核版本号”这一句。

例如在我的机器上,添加initrd /boot/initrd.img-2.6.32.60,

menuentry ‘Ubuntu, with Linux 2.6.32.60.kid‘ --class ubuntu --class gnu-linux --class gnu --class os {
  recordfail
  insmod ext2
  set root=‘(hd0,1)‘
  search --no-floppy --fs-uuid --set b3b4f2e3-fb0d-4151-97ab-f73c88ab2742
  linux /boot/vmlinuz-2.6.32.60 root=/dev/sda1 ro quiet splash

  initrd /boot/initrd.img-2.6.32.60

}

关于initrd的问题可以参考鸟哥的Linux私房菜第二十章。

本文参考链接:

  http://blog.sina.com.cn/s/blog_4ba5b45e0102e7nk.html

  http://blog.csdn.net/zufeng_chen/article/details/5824544

时间: 2024-08-03 07:04:29

Ubuntu10.04 编译并安装Linux 内核2.6.32.60版本及错误解决。的相关文章

ubuntu10.04编译安装LAMP

ubuntu10.04编译安装LAMP以及简单wordpress的使用 : http://linuxme.blog.51cto.com/1850814/971631 一.源码安装LAMP 网上有一堆关于介绍lamp的在这里我就不罗嗦了,直接上配置过程 1.apr包的安装 apr简介: The mission of the Apache Portable Runtime (APR) project is to create and maintain software libraries that

编译安装linux内核步骤

编译安装linux内核步骤: 一.获取内核源码 源码网址:www.kernel.org 二.解压内核源码 首先以root帐号登录,然后进入/usr/src子目录.如果用户在安装Linux时,安装了内核的源代码,则会发现一个linux-x.y.z的子目录.该目录下存放着内核x.y.z的源代码.此外,还会发现一个指向该目录的链接linux.删除该连接,然后将新内核的源文件拷贝到/usr/src目录中,并解压:     # tar zxvf Linux-2.3.14.tar.gz 文件释放成功后,在/

安装 Linux 内核 4.0

大家好,今天我们学习一下如何从Elrepo或者源代码来安装最新的Linux内核4.0.代号为‘Hurr durr I'm a sheep’的Linux内核4.0是目前为止最新的主干内核.它是稳定版3.19.4之后发布的内核.4月12日是所有的开源运动爱好者的大日 子,Linux Torvalds宣布了Linux内核4.0的发布,它现在就已经可用了.由于包括了一些很棒的功能,例如无重启补丁(实时补丁),新的升级驱动,最新的 硬件支持以及很多有趣的功能都有新的版本,它原本被期望是一次重要版本.但是实

如何在Ubuntu/CentOS上安装Linux内核4.0

大家好,今天我们学习一下如何从Elrepo或者源代码来安装最新的Linux内核4.0.代号为‘Hurr durr I'm a sheep’的Linux内核4.0是目前为止最新的主干内核.它是稳定版3.19.4之后发布的内核.4月12日是所有的开源运动爱好者的大日 子,Linux Torvalds宣布了Linux内核4.0的发布,它现在就已经可用了.由于包括了一些很棒的功能,例如无重启补丁(实时补丁),新的升级驱动,最新的 硬件支持以及很多有趣的功能都有新的版本,它原本被期望是一次重要版本.但是实

debian下为stm32f429i-discovery编译uboot、linux内核和根文件系统

交叉编译器:arm-uclinuxeabi-2010q1 交叉编译器下载下来后解压,然后将其中bin文件夹路径加入到PATH变量中. 根据<debian下烧写stm32f429I discovery裸机程序>安装openocd. 安装genromfs,使用下面命令: sudo apt-get install genromfs 已经有人提供好脚本,只要执行几条命令即可.使用git下载文件并进行编译: git clone https://github.com/jserv/stm32f429-lin

安装LINUX X86-64的10201出现链接ins_ctx.mk错误-转自yingtingkun

详细错误信息为: Error in invoking target 'install' of makefile '/opt/oracle/product/10.2/ctx/lib/ins_ctx.mk'. See '/opt/oracle/oraInvertory/logs/installActions2010-09-28_10-27-06AM.log'for details. 从日志中获取的详细信息为: INFO: gcc -m32 -o ctxhx -L/opt/oracle/product

如何编译安装Linux内核

操作系统环境 VMware workstation15 Pro ubuntu18.04 LTS 待编译内核5.3.10版本 内核下载地址 kernel.org 环境配置 在正式编译前需要安装部分软件. sudo apt update && sudo apt upgrade sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison 解压缩

linux内核系列(一)编译安装Linux内核 2.6.18

1.配置环境 操作系统:CentOS 5.2 下载linux-2.6.18版本的内核,网址:http://www.kernel.org 说明:该编译文档适合2.6.18以上的Linux内核版本,只需所编译的 Linux内核版本不能低于Linux操作系统自身的内核版本,不然会遇到很多问题:   2.开始编译 cp  ./ linux-2.6.18.tar.gz  /usr/src/ tar –zxvf ./linux-2.6.18.tar.gz cd /usr/src/linux-2.6.18 /

arm-linux-gcc4.4.3编译s3c2410平台linux内核

写在前面:2.6.14版本的内核用arm-linux-gcc4.4.3没有编译成功,下载2.6.37版本的内核用arm-linux-gcc4.4.3编译通过. 一.首先下载linux内核: linux-2.6.14.tar.bz2 下载地址:http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.bz2 二.解压linux-2.6.14.tar.bz2: tar -jxvf linux-2.6.14.tar.bz2 三.配置Mak