编译安装内核

升级内核到 linux-4.20.3.tar.xz

查看当前内核版本:
[[email protected] data]#uname -r
3.10.0-862.el7.x86_64

获取内核源代码包:www.kernel.org
linux-4.20.3.tar.xz

==实施步骤

1. 安装编译所需的工具 gcc ncurses-devel make(开发工具)
2. 下载内核源码
a. www.kernel.org(最新)
b. ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server
    ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server
3. 解压linux-4.20.3.tar.xz
4. 配置内核编译的参数make menuconfig
5. 开始编译make                                      //等价于这两个命令make bzImage  make modules
6. 安装模块make modules_install                      //安装到了 /lib/modules/$(uname -r)
7. 安装内核make install                              //安装到了 /boot
8. 检查 ls /boot, /boot/grub/grub.conf, /lib/modules

==具体实施

1、安装工具:
[[email protected] data]#yum -y install gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel vim lrzsz tree screen lsof
tcpdump wget ntpdate net-tools iotop bc zip unzip

[[email protected] data]#yum -y install ncurses-devel
[[email protected] linux-4.20.3]#yum -y install elfutils-libelf-devel //第一次编译时报错,未安装此包。

  1. 上传安装包,解压
    [[email protected] data]#tar xvf linux-4.20.3.tar.xz //解压
    [[email protected] data]#cd linux-4.20.3/
    [[email protected] linux-4.20.3]#cp /boot/config-3.10.0-862.el7.x86_64 .config //准备文本配置文件
  2. 配置内核选项
    [[email protected] linux-4.20.3]#make menuconfig
    [[email protected] linux-4.20.3]#less .config |grep NTFS
    CONFIG_NTFS_FS=m

    CONFIG_NTFS_DEBUG is not set

    CONFIG_NTFS_RW=y

    可选操作:定制kernel版本名
    [[email protected] linux-4.20.3]#head Makefile

    SPDX-License-Identifier: GPL-2.0

    VERSION = 4
    PATCHLEVEL = 20
    SUBLEVEL = 3
    EXTRAVERSION =
    NAME = Li xinzhou

  3. 开始编译make
    [[email protected] linux-4.20.3]#make -j 8 && echo -e ‘\a‘
  4. 安装模块
    [[email protected]centos7 linux-4.20.3]#make modules_install

    第一次遇到下面的错误:
    ln: target ‘Linux/source’ is not a directory
    make: *** [modinst] Error 1

    原因:
         内核配置项General setup——》Local version - append to kernel release,所填内容有空格。

    解决办法:
    删除空格,然后make modules, 再安装模块。由于版本信息改变,需要重新编译安装内核。

  5. 安装内核相关文件
    [[email protected] linux-4.20.3]#make install
    sh ./arch/x86/boot/install.sh 4.20.3-1.0-xinzhoulinux arch/x86/boot/bzImage \
    System.map "/boot"
    安装bzImage为/boot/vmlinuz-VERSION-RELEASE
    生成initramfs文件
    编辑grub的配置文件
  6. 检查 ls /boot, /boot/grub2/grub.cfg, /lib/modules
    [[email protected] linux-4.20.3]#ls /boot/ //查看是否有新kernel
    config-3.10.0-862.el7.x86_64 symvers-3.10.0-862.el7.x86_64.gz
    efi System.map
    extlinux System.map-3.10.0-862.el7.x86_64
    grub System.map-4.20.3-1.0-xinzhoulinux
    grub2 vmlinuz
    initramfs-0-rescue-18ed42c1c89e4d28870e69320e88d637.img vmlinuz-0-rescue-18ed42c1c89e4d28870e69320e88d637
    initramfs-3.10.0-862.el7.x86_64.img vmlinuz-3.10.0-862.el7.x86_64
    initramfs-4.20.3-1.0-xinzhoulinux.img vmlinuz-4.20.3-1.0-xinzhoulinux

    [[email protected] linux-4.20.3]#vim /boot/grub2/grub.cfg
    menuentry ‘CentOS Linux (4.20.3-1.0-xinzhoulinux) 7 (Core)‘ --class centos --class gnu-linux --class gnu --class os --unrestricted $m
    enuentry_id_option ‘gnulinux-3.10.0-862.el7.x86_64-advanced-576ed6fe-d3e8-403d-832f-2dc117ba8d2f‘ {
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_msdos
    insmod xfs
    set root=‘hd0,msdos1‘
    if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint=‘
    hd0,msdos1‘ 6e6694fc-5a2f-47a1-b96b-509621e5fc1e
    else
    search --no-floppy --fs-uuid --set=root 6e6694fc-5a2f-47a1-b96b-509621e5fc1e
    fi
    linux16 /vmlinuz-4.20.3-1.0-xinzhoulinux root=UUID=576ed6fe-d3e8-403d-832f-2dc117ba8d2f ro crashkernel=auto rhgb quiet LANG=e
    n_US.UTF-8
    initrd16 /initramfs-4.20.3-1.0-xinzhoulinux.img
    }

    [[email protected] linux-4.20.3]#ls /lib/modules/4.20.3-1.0-xinzhoulinux/kernel/fs/ntfs/ //检查模块是否存在
    ntfs.ko

    [[email protected] ~]#du -sh /data/linux-4.20.3 //编译后的文件大小11G
    11G /data/linux-4.20.3

    [[email protected] ~]#uname -r //reboot, 查看到新的内核
    4.20.3-1.0-xinzhoulinux

    [[email protected] data]#locate ntfs.ko
    [[email protected] data]#updatedb // updatedb - update a database for mlocate
    [[email protected] data]#locate ntfs.ko //已经支持新的ntfs模块
    /data/linux-4.20.3/fs/ntfs/.ntfs.ko.cmd
    /data/linux-4.20.3/fs/ntfs/ntfs.ko
    /usr/lib/modules/4.20.3-1.0-xinzhoulinux/kernel/fs/ntfs/ntfs.ko

  7. 卸载内核
    删除/lib/modules/目录下不需要的内核库文件
    删除/usr/src/linux/目录下不需要的内核源码
    删除/boot目录下启动的内核和内核映像文件
    更改grub的配置文件,删除不需要的内核启动列表

原文地址:http://blog.51cto.com/8845692/2345381

时间: 2024-08-27 10:43:54

编译安装内核的相关文章

Linux 编译安装内核

一.简介 内核,是一个操作系统的核心.它负责管理系统的进程.内存.设备驱动程序.文件和网络系统,决定着系统的性能和稳定性.Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新.新的内核修订了旧内核的bug,并增加了许多新的特性.如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核. 本文将以kernel linux-2.6.32.4版本为实验介绍的内核编译与安装一般方法,这些方法适合大多数Linux系统(包括RedHat.Ubuntu.

1-18 编译安装内核支持ntfs文件系统

大纲: 源码编译Linux内核 使用Linux内核模块 实战:编译一个NTFS内核模块,实现Linux挂载NTFS文件系统并实现读写功能 =================================================================== 一.源码编译Linux内核 通常我们想对内核进行升级时,可通过下载源码包,编译内核的方式,对内核进行升级 源码包的下载地址在:www.kernel.org 我们可以直接在linux系统中直接下载,如下命令: wget http

修复/boot及/etc/fstab、自制linux、编译安装内核

实验一.破坏dev/sda 的MBR的446字节: 破坏:dd if=/dev/zero of=/dev/sda bs=1 count=446 查看:hexdump -C -n 512 /dev/sda 发现前面的字节都为0 状况一.刚破坏未重启的时候修复: 可以利用grub重新生成: grub grub> root (hd0,0) grub> setup (hd0) quit退出 修复完之后使用hexdump -C -n 512 /dev/sda查看发现已经修复成功 状况二.破坏之后重启了,

CentOS7手动编译安装内核4.11.7

1. 进入/usr/src/目录 cd /usr/src 2. 下载内核源码,网址:https://www.kernel.org wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.11.7.tar.xz 3. 经过了蜗牛般的下载之后,解压源码包 tar xf linux-4.11.7.tar.xz 4. 进入源码目录,执行清理工作: cd linux-4.11.7 make mrproper 注意clean,mrproper,di

Centos 7 源码编译安装内核4.14.12

为什么要编译内核 需要新功能的支持: 在生产环境中,突然会需要使用一些新的功能,但是原有的内核并不支持此功能,这是就需要重新编译出一个新的内核来提供对此新功能的支持,比如虚拟化.iptables功能必须要在2.4.X以上版本的内核中才支持. 原核心太过于臃肿: 原来安装的内核中,有很多不常用甚至基本上用不到的功能支持,而这些功能又会使内核文件变得很大,这时要将此变成一个简化切功能够用的内核就需要进行重新编译. 与硬件搭配的稳定性: 很多情况下,系统内核中默认一般默认支持的CPU类型为Inter,

ubuntu 18.04 64bit如何编译安装内核

1.获取 wget http://mirrors.163.com/kernel/v4.x/linux-4.15.13.tar.gz 2.解压 tar xvf linux-4.15.13.tar.gz cd linux-4.15.13 3.获取配置 cp /boot/config-4.15.0-generic .config 4.配置 make menuconfig 5.编译 make -j10 V=s 6.安装 sudo make modules_install sudo make instal

教你如何快速编译安装新内核

随着内核版本的更新换代,你是否有觉得自己的内核版本有些低了呢?如果有的话,没关系,今天小编就来教大家如何编译安装新的内核. 在编译安装内核之前先检查我们的虚拟机所在的磁盘空间,预留空间10G以上,不然编译安装内核无法完成.下面我们就开始内核的编译安装吧. (1)下载源码文件 先在内核官网(www.kernel.org/)上下载最新版本的内核到桌面上,然后rz拷到linux系统上,找到一个空目录如/app/tmp,将之移到/app/tmp中,然后再解包解压,就会生成一个目录 (2)准备文本配置文件

实例:编译Linux内核3.18.25概要

前提: 将CentOS 7上3.10.0-229.el7.x86_64重新编译一个3.18.25内核 自编译安装,按照自己的硬件平台架构编译,能最适合硬件主机的性能 且按照需要编译模块,可以选择自己需要的包编译 [[email protected] tmp]# uname  -a 一.编译前准备工作 1.宿主机系统 本次编译宿主机:VMware Workstation Pro12 上的CentOS 7.0操作系统 2.开发环境(开发工具,开发库),头文件 [[email protected] y

geetoo编译安装

关于Gentoo发行版的介绍请看:全球最受欢迎的十大Linux发行版(图) Host机环境:Win2008 + VMware 7.1 下载安装包 下载安装 CD 和 stage3 包: http://www.gentoo.org/main/en/where.xml 我用的是 x86平台的: http://distfiles.gentoo.org/releases/x86/autobuilds/current-iso/ wget -c http://distfiles.gentoo.org/rel