Centos7内核编译

一:前要知识准备

1:参考 系统原内核文件的配置文件,编译新内核选项

原配置文件/boot/ config-3.10.0-514.el7.x86_64
  了解配置文件的内容信息
  cat /boot/ config-3.10.0-514.el7.x86_64

clipboard.png

clipboard.png

每一行表明一个模块
   =y 表明模块存放在核心内核里面
   =m 表明模块存放在/lib/modules内

下图中:NTFS is not set 表示NTFS功能没有启用linux

clipboard.png

EXT4文件系统格式的模块是打到/lib/modules内的数据库

2:内核菜单

命令: make menuconfigcentos

clipboard.png

须要安装:ncurses-devel 包spa

clipboard.png
make menuconfig:
内核选项菜单debug

clipboard.png

3:编译特定的内核模块

1:选择指定的ko文件路径
2:进入解压内核文件目录 /root/linux4.12
生成ko文件:
make fs/ntfs/ntfs.ko调试

cp  ko文件至 /lib/modules/ 4.12.0-1.0-mashuai-kernel

cp fs/ntfs/ntfs.ko /lib/modules /4.12.0-1.0-mashuai-kernel/kernel/fs/ntfs/code

clipboard.png

二:编译内核支持NTFS硬盘格式

1:硬件要求

1) /boot空闲空间在500M以上
2) / 空间空间在10G以上
3)真实物理硬盘至少也须要在10G以上
4)本实验系统环境为Centos7,Centos6流程与7相似图片

2:下载源码文件

llinux-4.12.tar https://www.kernel.org/
放置在根目录下
解压包:tar xvf linux-4.12—ip

clipboard.png

clipboard.png

3:准备配置文件

编译内核时,系统默认会去找.config文件
cp /boot/config-3.10.0-514.el7.x86_64 /root/linux-4.12/.configssl

4:安装开发包包组

yum groupinstall  “Development Tools”

5 安装内核选项菜单 文件包

要在内核解压包解压文件的路径下作以下操做:
  cd /boot/linux-4.12
 yum install nucres-devel
 make menuconfig

clipboard.png

图片开头的.config 就是依照/root/linux-4.12/.config配置文件而生成的如今的菜单
[] 表示模块打入内核中
[] General setup 通用设置

clipboard.png

local version:编译者加的内核版本

6: 增长内核版本内容

-1.0-mashuai-keernel

clipboard.png

clipboard.png

7 :更改文件系统设置

clipboard.png

clipboard.png
NTFS:改成<M> NTFS模块文件打入/lib/modules

clipboard.png

[*] NTFS write support 写功能开启。

即使是开启,NTFS在实际中也不支持写功能

[*] NTFS debugging support 调试NTFS

clipboard.png

8:安装内核相关文件

make –j 4
4表示4颗cpu

clipboard.png

缺乏软件包 openssl-devel
安装软件包:yum install –y openssl-devel

clipboard.png

继续编译内核:make –j 4

生成ko模块驱动文件,so库文件,内核相关文件

9:更新updatedb数据库

更新updatedb数据库   updatedb

查看ntfs.ko文件有无生成: locate ntfs.ko

clipboard.png

10:安装模块

make modules_install :至关于把须要内核配置文件中安装在/lib/modules目录内的文件

cp至/lib/modules内。
                    install命令就至关于复制命令

clipboard.png

clipboard.png

11:生成内核文件

安装缺乏的软件:(此文件为其余人在生成内核文件时出现的报错信息)

clipboard.png
yum install elfutils-libelf-devel

clipboard.png
make install :安装内核相关文件

clipboard.png
ls /boot : 查看vmlinu-4.12内核文件有无生成

clipboard.png
cat /boot/grub2/grub.cfg :查看内核启动配置文件有无更改
增长了如图片下的内容:menuentr至关于centos6中的title
系统启动时,会增长一个centos linux 4.12版本的内核启动项

clipboard.png

12 :重启电脑

增长了一个4.12的内核选项

clipboard.png

13:从新挂载NTFS格式的U盘

df

clipboard.png
mount /dev/sdb1 /mnt/cd

clipboard.png

能够查看里面的文件内容:cat ansible.txt

clipboard.png

可是不能够写入:touch f1

clipboard.png

mount :查看挂载属性,为ro只读格式

clipboard.png

更改挂载属性: mount –o remount,rw /dev/sdb1
不能够从新挂载,有写保护。NTFS仅支持读

clipboard.png

三:清理及卸载内核

1:清理:make clean

make clean:清理大多数编译生成的文件,但会保留config文件等

2:卸载:

删除/lib/modules/目录下不须要的内核库文件删除/root/linux4.12---/目录下不须要的内核源码删除/boot目录下启动的内核和内核映像文件更改grub的配置文件,删除不须要的内核启动列表

相关文章
相关标签/搜索