• RHEL内核管理


    modinfo:查看模块信息
    lsmod:查看已经加载的模块
    insmod: 手动加载模块
    rmmod:手动卸载模块
    modprobe: 解决模块相依性问题
    depmod: 产生模块相依性数据
    /etc/modprobe.conf
    一:内核管理
    1:内核版本
    MAJOY.MINOR.RELEASE[-CUSTON]
    主要版本号.次要版本号.修正号—-软件厂商自定义版本号
    次要版本号为偶数为稳定版本
    次要版本为奇数为开发版本
    uanme [OPTION]
    -r 只查看目前的内核版本号
    -s 查看目前的内核名称
    -n 查看当前的主机名
    -v 查看内核编译的版本与时间
    -m 查看机器平台名称
    -p 查看处理器信息
    -i 查看硬件平台名称
    -o 查看操作系统名称
    -a 查看所有信息
    2:内核组件
    1)包含三个组件
    内核镜像文件:vmlinuz-VERSION 或 vmlinux-VSERSION
    通过启动加载器直接加载到内存,以启动内核与整个操作系统
    2)内核模块
    /lib/modules/KERNEL_VERSION
    3)initrd镜像文件
    部分模块制作成的“初始化内存磁盘”镜像文件,启动内核时,initrd镜像加载到内存,内核便可以从initrd镜像文件加载外置设备模块。
    3:RHEL提供的内核RPM
    kernel 普通内核
    kernel-PAE 大于4G内存到64G 机器所使用内核
    kernel-xen Xen虚拟化使用的内核
    kernel-doc 内核说明文件
    kernel-utils 内核管理工具,与核心有关的服务

    二:管理内核模块
    内核模块包含一下几方面:
    硬件驱动
    内核功能
    1:内核模块的存放位置
    /lib/modules/$(uname -r)/kernel
    该目录下包含:
    arch 与硬件平台相关的模块
    crypto Linux内核提供的加密算法模块
    drivers 硬件设备驱动程序
    fs 与文件系统有关的模块
    lib 各种模块所需要的链接库
    net 网络相关的模块
    sound 专门存放声卡程序的目录

    2:查看模块信息 modinfo
    #modinfo [-0][-F field][-k kernelversion] module...
    -a 作者
    -d 描述
    -l 协议
    -p 模块的参数
    -n 模块名称信息 模块路径
    -F FILED 指定要查看模块的FIELD信息
    # modinfo -F filename softdog
    /lib/modules/2.6.18-164.el5/kernel/drivers/char/watchdog/softdog.ko
    modinfo -F author softdog
    Alan Cox

    3:查看已经加载的模块 lsmod
    Usage: lsmod
    Module Size Used by
    megaraid 40233 0
    ipv6 267361 26
    xfrm_nalgo 13381 1 ipv6
    crypto_api 12609 1 xfrm_nalgo
    Module 模块名称
    Size 模块加载到内存时所占的体积大小,单位是字节Bytes
    Used by 那些模块正在使用这个模块

    4:手动加载模块 insmod
    Usage: insmod filename [PARAMETER=VALUES]
    filename: 要加载模块的文件名,必须是绝对路径
    PARAMETER=VALUES 加载模块时的参数
    # insmod $(modinfo -n softdog)
    # lsmod |grep softdog
    softdog 9941 0

    4:手动卸载模块 rmmod
    Usage: rmmod [-fhswvV] modulename ...
    -f (or --force) forces a module unload, and may crash your
    machine. This requires the Forced Module Removal option
    when the kernel was compiled.
    -h (or --help) prints this help text
    -s (or --syslog) says use syslog, not stderr
    -v (or --verbose) enables more messages
    -V (or --version) prints the version code
    -w (or --wait) begins a module removal even if it is used
    and will stop new users from accessing the module (so it
    should eventually fall to zero).
    #rmmod -s softdog

    5:解决模块相依性问题 modprobe
    Usage: modprobe [-v] [-V] [-C config-file] [-n] [-i] [-q] [-b] [-o <modname>] <modname> [parameters...]
    modprobe -r [-n] [-i] [-v] <modulename> ...
    modprobe -l -t <dirname> [ -a <modulename> ...]
    Symbol是内核提供的系统呼叫或链接库应用程序界面(API)的识别数据。
    参数解释
    -C config-file 指出内核配置文件的位置,默认为/etc/modprobe.conf
    MODULE 加载指定模块
    -a 加载指定模块
    -r 卸载模块指定模块
    -l 显示符合条件的模块文件路径名称 和modinfo -n一样
    -c 按目前模块的状态,产生符合内核模块设置格式的设置值
    查看模块路径,不管是否安装 和modinfo -n 一样
    #modprobe -l softdog
    /lib/modules/2.6.18-164.el5/kernel/drivers/char/watchdog/softdog.ko
    #modprobe -l 查看所有已安装模块的路径
    #modprobe -a softdog
    #modprobe softdog 这里不能使用绝对路径

    6:产生模块相依性数据 depmod
    depmod -b [BASEDIR]
    -b [BASEDIR] 可以省略。默认在/lib/modules/$(uname -r)/
    /lib/modules/$(uname -r)/下
    modules.*文件为模块相依性数据
    modules.dep主要的模块相依性数据
    ls /lib/modules/$(uname -r)/modules.* |xargs rm -rf
    重新生存
    # depmod

    7:配置内核配置文件
    /etc/modprobe.conf
    该配置文件具有以下功能:
    可以设置模块默认的参数
    可以指定加载或卸载模块时执行什么工作
    可以设置模块别名
    配置语法
    alias ALIAS_NAME MODULE 为一个模块设置一个别名。然后可以在LINUX使用别名代替模块的名称
    options MODULE OPTIONS 设置模块默认的参数
    install MODULE COMMAND 使用insmod 或modprobe等工具载入MODULE时,便相当于执行了COMMAND指令
    remove MODULE COMMAND 使用insmod 或modprobe等工具卸载MODULE时,便相当于执行了COMMAND指令
    include FILENAME 可以把内核模块配置文件拆分成几个文件,然后使用include引入

    不小心删除/etc/modprobe.conf怎么办?
    1)逐一加载所需的模块以及配置数据
    2)将modprobe -c产生的内容转存成/etc/modprobe.conf。

    将iptable 防火墙规则加入ftp模版
    install MODULE COMMAND

    install ip_conntrack_ftp /bin/true
    后验证只需要添加下面
    # vim /etc/sysconfig/iptables-config
    IPTABLES_MODULES="ip_conntrack_ftp"


    三:配置内核参数
    要改变内核提供的功能有两种方法:
    改写LINUX内核源码,然后重新编译一次。
    配置REHL内核参数,马上就可以改变内核的功能

    内核参数是存储在内核中的资料,通过内核参数可以执行以下动作
    了解内核执行期间的相关信息
    修改内核的功能
    1:/proc/目录
    配置内核参数的第一种方法,是直接编译/proc目录下的某一个文件
    proc内核中的数据以文件的形式呈现LINUX 内核中的信息。
    1)/proc/sys/中的内核参数文件
    crypto LINUX加密
    debug DEBUG信息
    dev 设备相关信息
    fs 文件系统相关信息
    kernel 内核本身信息
    net 网络有关的信息
    vm 虚拟内存方面
    2)修改/proc/sys/中的内核参数
    3) 设置/proc/sys/中的内核参数
    修改设置后还是保存在内存中,重启后消失

    2:使用sysctl配置内核参数
    功能
    查看某一个或全部的内核参数
    设置内核参数
    1)sysctl定义的内核参数
    (1) /proc/sys、路径去掉
    (2) 将剩下路径中的"/"换成"."
    echo "/proc/sys/kernel/hostname" |awk -F/ -v 'OFS=.' '{print$4,$5}'
    2)使用sysctl 查看内核参数
    sysctl -a 查看全部内核参数
    sysctl kernel.hostname 查看单个的内核参数
    sysctl -a |grep kernel.host
    3)使用sysctl修改内核参数
    sysctl -w PARAMETER=VALUE
    sysctl -w kernel.hostname=heldiege2
    # sysctl kernel.hostname
    kernel.hostname = heldiege2
    此设置保存在内存中
    4)配置sysctl配置文件,永久修改sysctl配置
    /etc/sysctl.conf
    在配置文件里以PARAMETER=VALUE 格式出现
    # grep -vE "^$|#" /etc/sysctl.conf
    net.ipv4.ip_forward = 0
    net.ipv4.conf.default.rp_filter = 1
    net.ipv4.conf.default.accept_source_route = 0
    kernel.sysrq = 0
    kernel.core_uses_pid = 1
    net.ipv4.tcp_syncookies = 1
    kernel.msgmnb = 65536
    kernel.msgmax = 65536
    kernel.shmmax = 4294967295
    kernel.shmall = 268435456
    配置文件修改生效方式
    重启系统,不推荐
    sysctl -p [CONFIG_FILE]
    立即将配置文件生效
    # sysctl net.ipv4.ip_forward
    net.ipv4.ip_forward = 0
    修改配置文件:
    net.ipv4.ip_forward = 1
    再次查看
    # sysctl net.ipv4.ip_forward
    net.ipv4.ip_forward = 0
    #sysctl -p /etc/sysctl.conf
    net.ipv4.ip_forward = 1
    内核参数已经改变


    四:升级内核
    升级内核的原因:
    新内核修补了安全漏洞
    新内核修改了严重的BUG
    新内核提供了更多的功能
    升级的RHEL内核的方法
    从内核源码升级 [不是很推荐]
    手动安装新的KERNEL RPM文件
    通过YUM升级RHEL内核
    1:手动安装新版的kernel RPM文件 是安装方式
    步骤
    (1)先安装新版本的kernel PRM
    (2)重新启动后选择新版的内核来启动计算机
    (3)测试,如果发现新版本内核有任何问题,则可以再重启计算机选择使用旧版的内核启动RHEL
    (4)如果没有问题,再卸载旧版的kernel RPM
    注意:不能使用rpm -U 或rpm -F kernel RPM 来升级系统内核
    # rpm -ivh http://172.17.2.213/download/kernel-2.6.18-238.el5.i686.rpm
    Retrieving http://172.17.2.213/download/kernel-2.6.18-238.el5.i686.rpm
    warning: /var/tmp/rpm-xfer.qv1wBn: Header V3 DSA signature: NOKEY, key ID 37017186
    Preparing... ########################################### [100%]
    1:kernel ########################################### [100%]
    # reboot
    # rpm -q kernel
    kernel-2.6.18-164.el5
    kernel-2.6.18-238.el5
    # uname -a
    Linux rheldiege2 2.6.18-238.el5 #1 SMP Sun Dec 19 14:24:47 EST 2010 i686 i686 i386 GNU/Linux
    正常启动,内核已升级

    2:通过yum升级内核 是UPDATE的方式
    配置好yum源和配置文件
    #rpm -q kernel
    #yum -d 0 -y update kernel
    升级完毕后重启计算机

  • 相关阅读:
    (04)-Python3之--字典(dict)操作
    word2vec简单介绍
    基于websocket爬虫
    Python数据结构之链表(1)-->单链表
    词云wordcloud
    Neo4j--第一章
    AHP(层次分析法) 附Python示例代码(觉得还可以的,帮忙点个赞,谢谢)
    几种归一化方法(Normalization Method)python实现
    EM算法之Python
    通俗易懂的EM
  • 原文地址:https://www.cnblogs.com/diege/p/2756531.html
Copyright © 2020-2023  润新知