1

一:前要知识准备

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功能没有启用

clipboard.png

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

2:内核菜单

命令: make menuconfig

clipboard.png

需要安装:ncurses-devel 包

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

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/

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—

clipboard.png

clipboard.png

3:准备配置文件

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

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的配置文件,删除不需要的内核启动列表


济贞
287 声望8 粉丝

不积跬步无以至千里;不积小流无以成江海。


« 上一篇
SELinux