Linux内核编译及引导详解

这篇教程分两块
一 、内核编译生成镜像文件
二、 Linux内核的引导

我们首先来看第一部分内核的编译。
在这之前需要你下载内核源码和内核编译相关软件包
我这里用Linux-2.6.32.60作为示例。如下图
(将文件放到虚拟系统桌面)
Linux内核编译及引导详解_第1张图片
这一步分7个小步骤:
1、安装相应的软件包
Linux内核编译及引导详解_第2张图片
然后执行命令 sudo bash ./INSTALL.sh进行安装Linux内核编译及引导详解_第3张图片
2、拷贝源码到/usr/src并解压
源码包就是linux-2.6.32.60.tar.bz2.zip,将其拷贝到/usr/src目录下,执行命令
sudo mv linux-2.6.32.60.tar.bz2.zip /usr/src
然后进入到usu/src目录下可以看到这个压缩文件。
在这里插入图片描述
3、进入源码所在目录/usr/src/linux_2.6.32.60
在这之前需要解压这个压缩包
执行命令 sudo tar xfv linux-2.6.32.60.tar.bz2.zip。这个可能需要一段时间。
完成后截图如下:
Linux内核编译及引导详解_第4张图片
进入到目录截图:
在这里插入图片描述
至此第三步结束

4、make menuconfig
在Linux-2.6.32.60目录下执行命令 sudo make menuconfig
这时就会出现这样一个界面进入到General setup这一栏
Linux内核编译及引导详解_第5张图片
可以选择local version这一栏修改相关信息。比如自己的名字电话等
Linux内核编译及引导详解_第6张图片
然后保存退出就行。至此第4步完成。
5、make
然后就是最关键和费时的一步,make.
输入指令sudo make,可能需要两个小时。
完成后会在目录下生成vmlinux文件。如图
Linux内核编译及引导详解_第7张图片
6、make modules_install
在Linux-2.6.32.60目录下执行 sudo make modules_install指令完成后,继续查看当前目录下文件,如下截图:
继续查看目录下文件
7、 make install
最后执行命令sudo make install。这个就不多说了,很简单。
至此内核编译这块就结束了。

二、内核的引导
至于内核引导原理,百度有很多相关介绍,这里只提供教程。
这一块其实就只有两步
1、生成虚拟盘文件。
我正在使用2.6.32.60版本,以下步骤适用于我 -
sudo update-initramfs -c -k 2.6.32.6018130500222guoweishen。这里的后缀是因为之前修改过。根据目录下文件名进行。boot文件夹下有个System.map-文件,后面的后缀就是这里需要替换掉的指令内容。
然后执行指令:
sudo update-grub
Linux内核编译及引导详解_第8张图片
最后在boot文件夹下会多出一个文件夹。如图:
Linux内核编译及引导详解_第9张图片
这步完成后就可以修改grub.cfg文件了。

2、修改grub.cfg文件
boot/grub下可以找到这个文件,当你直接打开时,是无法修改文件内容的。这时可以用指令进行修改。
方法如下:
Linux内核编译及引导详解_第10张图片如图测试结果。

Linux内核编译及引导详解_第11张图片
最后修改就是修改grub.cfg文件了。
修改方法见下图:
Linux内核编译及引导详解_第12张图片
Linux内核编译及引导详解_第13张图片
Linux内核编译及引导详解_第14张图片

最后重启系统,在终端输入uname -a,就可以看到神奇的一幕了。

内核引导前
内核引导后
引导后修改的姓名等信息是不是就出现了呢?

喜欢的这篇博客的小伙伴们点个赞哟!

你可能感兴趣的:(Linux内核编译及引导详解)