内核管理与编译指南
1. 内核文件备份
在创建内核的修改版本时,原内核文件(如
/boot/vmlinuz-2.4.20-8
)、
System.map
和
module-info
文件会被新内核镜像文件覆盖。为保留当前工作版本,需进行以下操作:
- 备份内核文件:
cp /boot/vmlinuz-2.4.20-8 /boot/vmlinuz-2.4.20-8.old
-
备份
System.map和module-info文件。 -
备份
/lib/modules/version目录下的模块,例如对于版本 2.4.20 - 8,模块位于/lib/modules/2.4.20-8。
2. 引导加载器配置
若使用引导加载器,应在其配置文件中为旧内核创建新条目,以防新内核出现问题时可选择旧内核启动。以
grub.conf
为例,添加如下条目:
title Old Linux (2.4.20-8.old)
root (hd0,2)
kernel /boot/vmlinuz-2.4.20-8.old root=/dev/hda3
initrd /boot/initrd-2.4.20-8.old.img
若使用分区标签,内核语句的
root
选项如下:
kernel /boot/vmlinuz-2.4.20-8.old ro root=LABEL=/
3. 启动盘创建
准备启动盘以防安装出现问题,可使用
mkbootdisk
工具创建。
- 创建启动软盘:
mkbootdisk 2.4.20-8
- 创建启动 CD - ROM:
mkbootdisk --iso --device myimage.iso 2.4.20-8
4. 从源代码编译内核
4.1 安装内核源代码
可从发行版获取内核源代码,以 RPM 包形式安装:
rpm -ivh kernel-source-2.4.20-8.i386.rpm
源代码会被放置在
/usr/src/linux-2.4.20-8
目录。也可从
www.kernel.org
下载最新版本,解压命令如下:
cd /usr/src
tar -xzvf linux-2.4.20.tar.gz
mv /usr/src/linux /usr/src/linux-2.4.20-8
4.2 内核配置
4.2.1 配置概述
配置内核需确定要提供内核级支持的功能,可将功能直接包含在核内或作为模块按需加载,也可排除某些功能。
4.2.2 配置工具
可使用
config
、
menuconfig
或
xconfig
工具进行配置,也可直接编辑配置文件。启动配置工具的命令如下:
make xconfig
make menuconfig
make config
4.2.3 重要配置选项
| 配置选项 | 说明 |
|---|---|
| Loadable Module Support |
确保内核能加载模块,启用
Enable Loadable Module Support
和
Kernel Module Loader
|
| Processor Type And Features | 选择处理器类型和系统支持的最大内存 |
| General Setup | 选择通用功能,如网络、PCI BIOS 支持等 |
| Block Devices | 支持 IDE、软盘驱动器等设备 |
| Multidevice Support (RAID and LVM) | 支持 RAID 设备和逻辑卷管理 |
| Networking Options | 配置网络功能,如 TCP/IP 网络、网关等 |
| ATA/IDE/MFM/RLL Support | 支持 IDE ATA 硬盘和 ATAPI CD - ROM |
| SCSI Support | 支持 SCSI 设备 |
| Network Device Support | 支持各种网络设备 |
| Multimedia Devices | 支持多媒体设备 |
| File Systems | 支持各种文件系统 |
| Character Devices | 支持键盘、鼠标等字符设备 |
| Sound | 选择系统的声卡 |
| Bluetooth Devices | 支持蓝牙设备 |
| Kernel Hacking | 为内核开发者提供调试和控制功能 |
配置完成后,可选择保存配置到
.config
文件或特定文件。
4.3 内核编译与安装
4.3.1 生成依赖树和清理文件
make dep
make clean
4.3.2 编译内核和模块
make bzImage
make modules
4.3.3 安装模块
make modules_install
4.3.4 安装内核
make install
也可将上述命令合并执行:
make dep && make clean && make bzImage && make modules && make modules_install && make install
4.4 手动安装内核镜像
手动安装
bzImage
文件时,将其复制到内核所在目录并命名,如
vmlinuz-2.4.20-8
,同时创建符号链接:
cp /usr/src/linux-2.4/arch/i386/boot/bzImage /boot/vmlinuz-2.4.20-8
ln -s /boot/vmlinuz-2.4.20-8 /boot/vmlinuz
mermaid 流程图如下:
graph LR
A[备份内核文件] --> B[配置引导加载器]
B --> C[创建启动盘]
C --> D[安装内核源代码]
D --> E[配置内核]
E --> F[生成依赖树和清理文件]
F --> G[编译内核和模块]
G --> H[安装模块]
H --> I[安装内核]
I --> J[手动安装内核镜像]
5. 内核管理与编译的注意事项
5.1 备份的重要性
在进行内核编译和安装的过程中,备份是至关重要的。无论是备份内核文件、
System.map
文件、
module-info
文件,还是
/lib/modules
目录下的模块,都能在出现问题时让系统恢复到之前的稳定状态。例如,在更新内核时,如果新内核无法正常启动,我们可以通过引导加载器选择旧内核启动,而这依赖于之前对旧内核文件的备份。
5.2 配置工具的选择
不同的内核配置工具适用于不同的场景。
config
工具适合熟悉命令行操作且对配置选项较为了解的用户,它通过简单的行式提示来完成配置;
menuconfig
工具提供了基于光标操作的菜单界面,用户可以更直观地选择配置选项;
xconfig
工具则提供了图形化的窗口界面,适合习惯使用鼠标操作的用户。用户可以根据自己的操作习惯和需求选择合适的配置工具。
5.3 编译命令的执行顺序
在编译内核时,命令的执行顺序非常重要。必须先执行
make dep
生成依赖树,再执行
make clean
清理之前编译产生的文件,然后才能进行内核和模块的编译与安装。如果顺序混乱,可能会导致编译失败或生成的内核无法正常工作。例如,如果在没有生成依赖树的情况下直接进行编译,可能会遗漏某些必要的文件,从而导致内核无法正常运行。
5.4 手动安装内核镜像的要点
手动安装内核镜像时,需要注意将
bzImage
文件复制到正确的目录,并赋予正确的名称。同时,要创建正确的符号链接,确保系统能够正确识别内核文件。如果符号链接创建错误,可能会导致系统无法找到内核文件,从而无法正常启动。
6. 常见问题及解决方法
6.1 编译失败
-
问题描述
:在执行
make命令进行编译时,可能会出现各种错误信息,导致编译失败。 -
解决方法
:首先,检查编译命令的执行顺序是否正确,确保已经执行了
make dep和make clean命令。其次,查看错误信息,根据错误提示检查相关的配置选项是否正确。例如,如果提示某个模块找不到,可能是在配置时没有正确选择该模块的支持。还可以参考/usr/share/doc目录下的内核文档,查找相关设备或功能的配置说明。
6.2 新内核无法启动
- 问题描述 :安装新内核后,系统无法正常启动,可能会出现黑屏、报错等情况。
-
解决方法
:首先,通过引导加载器选择旧内核启动,确保系统能够正常运行。然后,检查新内核的配置选项是否正确,特别是与硬件相关的选项,如处理器类型、内存支持等。还可以查看
/var/log目录下的日志文件,查找启动过程中的错误信息。如果是因为模块不兼容导致的问题,可以尝试重新编译模块或使用旧版本的模块。
6.3 启动盘无法使用
-
问题描述
:使用
mkbootdisk工具创建的启动盘无法正常启动系统。 - 解决方法 :检查创建启动盘时使用的内核版本号是否正确,确保与系统中安装的内核版本一致。还可以尝试重新创建启动盘,确保在创建过程中没有出现错误。如果是创建 CD - ROM 启动盘,检查 CD - ROM 镜像文件是否正确刻录到光盘上。
7. 总结
内核管理与编译是一项复杂但重要的任务,它可以让用户根据自己的需求定制内核,提高系统的性能和稳定性。在进行内核管理与编译时,需要注意备份、选择合适的配置工具、遵循正确的编译命令顺序以及正确安装内核镜像。同时,要了解常见问题的解决方法,以便在出现问题时能够及时解决。通过本文的介绍,相信读者对内核管理与编译有了更深入的了解,能够更加熟练地进行内核的定制和安装。
7.1 操作步骤总结
以下是内核编译与安装的主要操作步骤总结:
1. 备份内核文件、
System.map
文件、
module-info
文件和
/lib/modules
目录下的模块。
2. 在引导加载器配置文件中为旧内核创建新条目。
3. 使用
mkbootdisk
工具创建启动盘。
4. 安装内核源代码,可以从发行版或
www.kernel.org
下载。
5. 使用配置工具进行内核配置,选择需要的功能。
6. 执行
make dep
和
make clean
命令。
7. 编译内核和模块,执行
make bzImage
和
make modules
命令。
8. 安装模块,执行
make modules_install
命令。
9. 安装内核,执行
make install
命令。
10. 如有需要,手动安装内核镜像并创建符号链接。
7.2 流程图回顾
graph LR
A[备份内核文件] --> B[配置引导加载器]
B --> C[创建启动盘]
C --> D[安装内核源代码]
D --> E[配置内核]
E --> F[生成依赖树和清理文件]
F --> G[编译内核和模块]
G --> H[安装模块]
H --> I[安装内核]
I --> J[手动安装内核镜像]
通过这个流程图,我们可以更清晰地看到内核编译与安装的整个过程,每个步骤之间的先后顺序一目了然。希望读者在实际操作中能够按照这个流程进行,顺利完成内核的编译与安装。
超级会员免费看

被折叠的 条评论
为什么被折叠?



