centos修改内核参数
篇一:升级Centos6.5安装光盘中的内核
升级CentOS6.5安装镜像中的Linux内核版本 前言
因为之前笔者所在公司的一款虚拟化平台产品在数据中心服务器上部署时出现不兼容现象,怀疑是安装介质中我们所定制的Linux内核与新服务器硬件不兼容导致,于是就牵涉到升级安装介质中Linux内核的工作。由于这款虚拟化平台产品是在CentOS6.5的基础上定制得到,所以本质上相当于直接更新CentOS6安装介质中Linux内核。关于如何定制一张Linux发行版光盘,以及如何在一个完整现有的Linux系统上升级内核,网上各种文章铺天盖地几乎已成大路货。然而直接升级发行版介质中的内核却少有提及,为此我将整个工作过程记录下来,所用方式方法不一定最优,但意在抛砖引玉。
在我进行这项工作的时候,发现kernel.org上的内核最新版本已悄然变为
4.8.6,这是一个stable版本,于是乎决定就用它了。
安装光盘目录结构分析
CentOS6.5安装介质目录结构如下图所示:
图1 CentOS发行版ISO目录树
(1)EFI目录主要用于64位的基于EFI的系统引导。其中的BOOT目录下的BOOTX64.conf为grub的配置文件,用于显示引导菜单。
(2) images目录:包含有各种引导镜像。最重要的是引导第二阶段安装程序需要用到的镜像文件install.img(CentOS7安装盘中该文件名称是squashfs.img),该镜像文件内部文件系统类型是squashfs,未经压缩,可以直接挂载(只读),anaconda程序就在这个镜像文件中。该目录中还包含一个pxeboot目录,主要用于制作PXE安装方式引导介质。
(3) isolinux目录:有开机引导系统安装的内核(vmlinuz)及临时文件系统(initrd.img),在引导系统时会载入内存。
(4) Packages目录:包含安装所需的所有二进制RPM包。
(5) repodata目录:一个位于光盘介质上的yum源,内部包含了软件仓库所有的配置文件。
(6) TRANS.TBL文件:记录当前目录的列表,用mkisofs的-T参数重新生成,主要是为了支持长文件名称。
(7) .discinfo文件是安装介质的识别信息。.treeinfo文件记录不同安装方式安装程序所在的目录结构,如PXE方式时,内核kernel=images/pxeboot/vmlinuz,根文件系统initrd=images/pxeboot/initrd.img。
CentOS安装光盘是一张引导盘,启动时,引导程序会分别将vmlinuz和initrd.img载入内存,待内核初始化完成后,会执行initrd中的/sbin/init,/sbin/init加载/sbin/loader,最终加载运行install.img中的anaconda安装程序。anaconda会根据配置和用户操作分别安装Packages文件夹下的rpm包,操作系统内核也以rpm包的形式存在其中。因此,需要更新的文件主要是光盘中isolinux、image/pxeboot下的vmlinuz和initrd.img文件,Packages目录下的内核RPM包。 编译内核及模块
第一步,从https://www.kernel.org/上下载新版本的内核源码,linux内核版本号中的第二位(即次版本号)为偶数的版本为稳定版,为奇数的版本是处于开发中的非稳定版,本文考虑到更新后的安装程序需要用于生产环境,因此,选择的版本号为4.8.6,即稳定版。下载后直接用tar将源码解压到/usr/src/kernels路径下。
第二步,配置和编译内核。在配置和编译内核前,需先准备好相关工具环境,先执行yum –y install gccncurses-developensslcreaterepo,在源码目录下分别执行下述命令即可生成内核二进制文件:
# make menuconfig //启动一个图形化内核配置界面,该配置工具会将当前系统内核配置作为默认配置,配置好后选择<save>按钮,会再内核源码目录中生成
一个.config文件保存配置。
# make bzImage //编译内核源码,得到内核压缩文件vmlinuz
# make modules //编译内核模块
# make modules_install //安装内核模块
# make install //安装内核
另外,还可能用到的make目标有:
# make clean //清除构建过程中生成的中间文件和目标文件,但保留内核配置及构建版本号
# make mrproper //清除构建过程中的中间文件和目标文件,同时,清除内核配置及构建版本号
生成内核RPM包
执行:
# make rpm-pkg
可以生成内核RPM包,该命令生成的内核RPM包可在现有完整系统上直接安装,执行:
# rpm –ivh kernel-4.8.6-1.el6.x86_64.rpm < --force >< --nodeps>
但是,如果将新生成的内核RPM包替换掉Packages目录中原有的内核RPM包,则系统在安装后启动时可能会抛出Kernel Panic,原因是内核RPM包在执行过程中需要依赖其它一些第三方工具来最终完成安装流程,这些依赖关系需要配置到RPM包中,使得在安装内核前,先安装这些被依赖的工具包,否则就会导致安装不完整。下图是原有2.6版本内核RPM包和新生成的4.8.6版本的RPM包依赖关系对比图:
图2 2.6.32版本内核包默认依赖
图3 4.8.6版本内核包默认依赖
从上述两张图中可以看出明显的差别,完成内核安装需执行module-init-tools、initscripts、grubby、dracut等几个包中的脚本,因此这几个包必须先于内核安装。为了实现这一目的,我所采用的办法是修改/usr/src/kernels/linux-4.8.6/scripts/package下的mkspec脚本,这是因为在make rpm-pkg时,会调用到该脚本来生成内核RPM的SPEC文件。最终在mkspec文件中增加如下内容:
echo "PreReq: fileutils, module-init-tools, initscripts, grubby >= 7.0.4-1, dracut-kernel, \ /sbin/new-kernel-pkg, device-mapper-event-libs, device-mapper-libs, \
device-mapper-multipath, device-mapper-multipath-libs, NetworkManager, \
NetworkManager-glib, crypto-utils, cryptsetup-luks, cryptsetup-luks-libs, lvm2, \
dmraid, dmraid-events, dracut, file, python, python-cryptsetup, sysvinit-tools"
其中,“PreReq”表示依赖类型为install前。保存mkspec文件并重新make rpm-pkg,之后生成的
RPM就可以直接放入到Packages目录中用于系统全新安装了,检查新生成的内核RPM可以看到如下景象:
图4 新生成的kernel-4.8.6 RPM依赖项
图4中的这些依赖项是我初步整理之后的一个结果,可能有个别依赖不是必要的,但由于编译构建内核花费时间较长,为了减少失败次数,保险起见将其加到PreReq中了。具体依赖关系还有待进一步深入分析。
更新initrd.img
CentOS6.5安装镜像中的initrd.img文件是一个CPIO包,采用LZMA压缩算法进行了压缩,可以直接用lzma和cpio进行解压解包后得到一个完整的目录树。这个文件本质上是一个ramfs,它的地位和作用与系统中/boot/initramfs-<version>.<EL>.<arch>.img文件是一致的,即:为安装程序内核提供了一个带有驱动模块的临时内存文件系统,同时initrd.img中还包含了安装程序第一阶段所需要的初始化程序/init、/sbin/loader。
更新initrd就是要将新编译出来的模块文件添加到它内部/modules中,但是,我将更新后的操作系统/lib/modules/
下的内容直接添加进去却失败了,内核启动
篇二:CentOS 6安装图解及常规使用教程
CentOS 6安装使用及DHCP服务配置教程
金湖广电培训专用教程
南京润灿信息科技有限公司版权所有
序言
Linux是一种自由和开放源代码的类UNIX操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。在加上用户空间的应用程序之后,成为Linux操作系统。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。大多数Linux系统还包括了像提供GUI界面的X Window之类的程序。除了一部分专家之外,大多数人都是直接使用Linux发布版,而不是自己选择每一样组件或自行设置。
严格来讲,术语Linux只表示操作系统内核本身,但通常采用Linux内核来表达该意思。Linux则常用来指基于Linux内核的完整操作系统,包括GUI组件和许多其他实用工具。由于这些支持用户空间的系统工具和库主要由理查德·斯托曼于1983年发起的GNU计划提供,自由软件基金会提议将该组合系统命名为GNU/Linux,但Linux不属于GNU计划。
Linux最初是作为支持英特尔x86架构的个人电脑的一个自由操作系统。目前Linux已经被移植到更多的计算机硬件平台,远远超出其他任何操作系统。Linux是一个领先的操作系统,可以运行在服务器和其他大型平台之上,如大型主机和超级计算机。世界上500个最快的超级计算机90%以上运行Linux发行版或变种,包括最快的前10名超级电脑运行的都是基于Linux内核的操作系统。Linux也广泛应用在嵌入式系统上,如手机,平板电脑,路由器,电视和电子游戏机等。在移动设备上广泛使用的Android操作系统就是创建在Linux内核之上。
通常情况下,Linux被打包成供个人计算机和服务器使用的Linux发行版,一些流行的主流Linux发布版,包括Debian(及其派生版本Ubuntu,Linux Mint),Fedora(及其相关版本Red Hat Enterprise Linux,CentOS)和openSUSE等。Linux发行版包含Linux内核和支撑内核的实用程序和库,通常还带有大量可以满足各类需求的应用程序。个人计算机使用的Linux发行版通常包X Window和一个相应的桌面环境,如GNOME或KDE。桌面Linux操作系统常用的应用程序,包括Firefox网页浏览器,LibreOffice办公软件,GIMP图像处理工具等。由于Linux是自由软件,任何人都可以创建一个符合自己需求的
Linux发行版。
目 录
第一章 系统安装 ....................................................................... 6
一、说明 ............................................................................... 6
二、安装系统 ........................................................................... 7
1、界面说明......................................................................... 7
2、 出现是否对CD媒体进行测试的提问 ................................................. 8
3、选择语言为中文(简体) ........................................................... 9
4、键盘模式默认即可 ................................................................. 9
5、选择基本存储设备 ................................................................ 10
6、 设置计算机名 ................................................................... 11
7、 时区选择....................................................................... 11
8、设置root密码 ................................................................... 12
9、 磁盘分区....................................................................... 13
10、Linux目录结构、Linux分区大小、挂载点和分区 .................................... 16
11、系统安装选项 ................................................................... 27
12、点击重新引导系统重新启动 ....................................................... 31
13、同意许可协议 ................................................................... 32
14、 创建普通用户 .................................................................. 33
15、调整时间和日期 ................................................................. 33
16、 Kdump......................................................................... 34
17、完成进入登录界面 ............................................................... 35
第二章 使用与部署 .................................................................... 38
三、使用CentOS操作系统、部署相关应用 ................................................. 38
1、 基本使用设置 ................................................................... 38
2、 修改本机IP地址 ................................................................ 40
3、 设定软件仓库 ................................................................... 49
四、CentOS操作系统的维护及优化 ........................................................ 52
1、修改ip地址、网关、主机名、DNS等 ............................................... 53
2、关闭selinux,清空iptables ...................................................... 54
3、 添加普通用户并进行sudo授权管理 ................................................ 55
4、更新yum源及必要软件安装 ........................................................ 55
5、 定时自动更新服务器时间 ......................................................... 56
6、精简开机自启动服务 .............................................................. 56
7、 定时自动清理/var/spool/clientmqueue/目录垃圾文件 ............................... 57
8、 变更默认的ssh服务端口,禁止root用户远程连接 .................................. 57
9、 锁定关键文件系统 ............................................................... 57
10、 调整文件描述符大小 ............................................................ 58
11、 调整字符集,使其支持中文 ...................................................... 59
12、 去除系统及内核版本登录前的屏幕显示 ............................................ 59
13、内核参数优化 ................................................................... 59
五、CentOS操作系统常见故障排除 ........................................................ 63
第三章 linux服务器管理及维护 ......................................................... 64
六、 CentOS安装管理工具Webmin进行维护管理 ............................................ 64
1、 下载安装webmin ................................................................ 64
2、使用及设置webmin ............................................................... 65
第四章 安装配置DHCP服务 .............................................................. 68
七、 在CentOS中安装DHCP服务 ......................................................... 68
1、 DHCP服务器安装 ................................................................ 68
2、安装之后的目录以及配置文件 ...................................................... 69
八、配置DHCP服务 ..................................................................... 70
1、 配置文件说明 ................................................................... 70
2、 配置文件内容简要说明 ........................................................... 71
九、 通过webmin管理地址池 .......................................
..................... 731、 登录后界面管理 ................................................................. 73
2、 DHCP服务器配置说明 ............................................................ 74
3、 编辑、保存及重启服务 ........................................................... 76
十、 DHCP option选项说明 .............................................................. 78
General Options.................................................................... 78
Option 1 (Subnet Mask) ......................................................... 78
Option 3 (Router) .............................................................. 78
Option 4 (Time Server) ......................................................... 78
Option 6 (DNS Server) .......................................................... 79
Option 12 (Hostname) ........................................................... 79
Option 15 (DNS Domain) ......................................................... 79
Option 42 (NTP Server) ......................................................... 80
Option 50 (Requested IP Address) ............................................... 80
Option 51 (IP Address Lease Time) .............................................. 80
Option 53 (DHCP Message Type) .................................................. 81
Option 54 (Server Identifier) .................................................. 81
Option 55 (Parameter Request List) ............................................. 81
Option 120 (SIP Servers) ....................................................... 82
Option 125 (Vendor-Identifying Vendor-Specific) ................................ 82
Option 135 (HTTP Proxy for phone-specific applications) ........................ 82
Option 143 () .................................................................. 82
VLAN Options....................................................................... 83
Option 132 (vlan-id) ........................................................... 83
Option 133 (vlan-qos) .......................................................... 83
Auto Provisioning Options .......................................................... 83
Option 43 (vendor-encapsulated-options) ........................................ 84
Option 60 (Vendor class identifier) ............................................ 84
Option 66 (TFTP server name) ................................................... 85
Option 67 (Bootfile name) ...................................................... 86
十一、 江苏广电DHCP option60选项说明 ................................................. 87
十二、 金湖广电本地DHCP服务器规划 .................................................... 89
1、 互动及数据网IP地址规划 ........................................................ 89
2、 DHCP服务器调试 ................................................................ 89
3、 交换机配置DHCP中继,并接入DHCP主备服务器。 ................................... 95 十三、 DHCP服务器配置文献 ............................................................ 100
泰州广电DHCP Client业务地址区分的研究与实现 ...................................... 100
篇三:CentOS Linux服务器安全设置
一、注释掉系统不需要的用户和用户组
注意:不建议直接删除,当你需要某个用户时,自己重新添加会很麻烦。 cp /etc/passwd /etc/passwdbak#修改之前先备份
vi /etc/passwd #编辑用户,在前面加上#注释掉此行
#adm:x:3:4:adm:/var/adm:/sbin/nologin
#lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
#sync:x:5:0:sync:/sbin:/bin/sync
#shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
#halt:x:7:0:halt:/sbin:/sbin/halt
#uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
#operator:x:11:0:operator:/root:/sbin/nologin
#games:x:12:100:games:/usr/games:/sbin/nologin
#gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
#ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin #注释掉ftp匿名账号 cp /etc/group/etc/groupbak#修改之前先备份
vi /etc/group #编辑用户组,在前面加上#注释掉此行
#adm:x:4:root,adm,daemon
#lp:x:7:daemon,lp
#uucp:x:14:uucp
#games:x:20:
#dip:x:40:
二、关闭系统不需要的服务
service acpid stop chkconfig acpid off#停止服务,取消开机启动 #电源进阶设定,常用在 Laptop 上
service autofs stop chkconfig autofs off #停用自动挂载档桉系统与週边装置
service bluetooth stop chkconfig bluetooth off#停用Bluetooth蓝芽
service cpuspeed stop chkconfig cpuspeed off#停用控制CPU速度主要用来省电
service cups stopchkconfig cups off #停用 Common UNIX Printing System 使系统支援印表机
service ip6tables stop chkconfig ip6tables off#禁止IPv6
####################################################################################################
如果要恢复某一个服务,可以执行下面操作
service acpid start chkconfig acpid on
三、禁止非root用户执行/etc/rc.d/init.d/下的系统命令
chmod -R 700 /etc/rc.d/init.d/*
chmod -R 777 /etc/rc.d/init.d/* #恢复默认设置
系统运维 温馨提醒:qihang01原创内容?版权所有,转载请注明出处及原文链接
四、给下面的文件加上不可更改属性,从而防止非授权用户获得权限 chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
chattr +i /etc/services #给系统服务端口列表文件加锁,防止未经许可的删除或添加服务
lsattr /etc/passwd/etc/shadow /etc/group /etc/gshadow/etc/services#显示文件的属性
注意:执行以上权限修改之后,就无法添加删除用户了。
如果再要添加删除用户,需要先取消上面的设置,等用户添加删除完成之后,再执行上面的操作
chattr -i /etc/passwd #取消权限锁定设置
chattr -i /etc/shadow
chattr -i /etc/group
chattr -i /etc/gshadow
chattr -i /etc/services#取消系统服务端口列表文件加锁 现在可以进行添加删除用户了,操作完之后再锁定目录文件
五、限制不同文件的权限
chattr +a .bash_history #避免删除.bash_history或者重定向到/dev/null
chattr +i .bash_history
chmod 700 /usr/bin 恢复 chmod 555 /usr/bin
chmod 700 /bin/ping 恢复 chmod 4755 /bin/ping
chmod 700 /usr/bin/vim恢复 chmod 755 /usr/bin/vim chmod 700 /bin/netstat 恢复 chmod 755 /bin/netstat chmod 700 /usr/bin/tail 恢复 chmod 755
/usr/bin/tail
chmod 700 /usr/bin/less恢复 chmod 755 /usr/bin/less chmod 700 /usr/bin/head 恢复 chmod 755 /usr/bin/head chmod 700 /bin/cat 恢复 chmod 755 /bin/cat
chmod 700 /bin/uname 恢复 chmod 755 /bin/uname chmod 500 /bin/ps 恢复 chmod 755 /bin/ps
六、禁止使用Ctrl+Alt+Del快捷键重启服务器
cp /etc/inittab /etc/inittabbak
vi /etc/inittab #注释掉下面这一行
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
七、使用yum update更新系统时不升级内核,只更新软件包
由于系统与硬件的兼容性问题,有可能升级内核后导致服务器不能正常启动,这是非常可怕的,没有特别的需要,建议不要随意升级内核。
cp /etc/yum.conf /etc/yum.confbak
1、修改yum的配置文件 vi /etc/yum.conf 在[main]的最后添加
exclude=kernel*
2、直接在yum的命令后面加上如下的参数:
yum --exclude=kernel* update
查看系统版本 cat /etc/issue
查看内核版本 uname -a
八、关闭Centos自动更新
chkconfig --list yum-updatesd #显示当前系统状态
yum-updatesd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
service yum-updatesd stop#关闭 开启参数为start 停止
yum-updatesd:
[确定]
service yum-updatesd status#查看是否关闭
yum-updatesd 已停
chkconfig --level 35 yum-updatesd off #禁止开启启动(系统模式为3、5) chkconfig yum-updatesd off #禁止开启启动(所有启动模式全部禁止) chkconfig --list yum-updatesd #显示当前系统状态
yum-updatesd 0:关闭 1:关闭 2:启用 3:关闭 4:启用 5:关闭 6:关闭
九、关闭多余的虚拟控制台
我们知道从控制台切换到 X 窗口,一般采用 Alt-F7 ,为什么呢?因为系统默认定义了 6 个虚拟控制台,
所以 X 就成了第7个。实际上,很多人一般不会需要这么多虚拟控制台的,修改/etc/inittab ,注释掉那些你不需要的。
cp /etc/inittab /etc/inittabbak
vi /etc/inittab
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
#2:2345:respawn:/sbin/mingetty tty2
#3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6
十、删除MySQL历史记录
系统运维 温馨提醒:qihang01原创内容?版权所有,转载请注明出处及原文链接
用户登陆数据库后执行的SQL命令也会被MySQL记录在用户目录
的.mysql_history文件里。
如果数据库用户用SQL语句修改了数据库密码,也会因.mysql_history文件而泄漏。
所以我们在shell登陆及备份的时候不要在-p后直接加密码,而是在提示后再输入数据库密码。
另外这两个文件我们也应该不让它记录我们的操作,以防万一。
cd
cp .bash_history .bash_historybak #备份
cp .mysql_history .mysql_historybak
rm .bash_history .mysql_history
ln -s /dev/null .bash_history
ln -s /dev/null .mysql_history
十一、修改history命令记录
cp /etc/profile/etc/profilebak
vi /etc/profile
找到 HISTSIZE=1000 改为 HISTSIZE=50
十二、隐藏服务器系统信息
在缺省情况下,当你登陆到linux系统,它会告诉你该linux发行版的名称、版本、内核版本、服务器的名称。
为了不让这些默认的信息泄露出来,我们要进行下面的操作,让它只显示一个"login:"提示符。
删除/etc/issue和/etc/issue.net这两个文件,或者把这2个文件改名,效果是一样的。
mv /etc/issue /etc/issuebak
mv /etc/issue.net/etc/issue.netbak
十三、优化Linux内核参数
cp /etc/sysctl.conf /etc/sysctl.confbak
vi /etc/sysctl.conf #在文件末尾添加以下内容
net.ipv4.ip_forward = 1 #修改为1
net.core.somaxconn = 262144
net.core.netdev_max_backlog = 262144
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.netfilter.ip_conntrack_max = 131072
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180 net.ipv4.route.gc_timeout = 20
net.ipv4.ip_conntrack_max = 819200
net.ipv4.ip_local_port_range = 10024 65535
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_len = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_keepalive_time = 120
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_wmem = 8192 131072 16777216
net.ipv4.tcp_rmem = 32768 131072 16777216
net.ipv4.tcp_mem = 94500000 915000000 927000000
/sbin/sysctl -p#使配置立即生效
系统运维 温馨提醒:qihang01原创内容?版权所有,转载请注明出处及原文链接
十四、CentOS 系统优化
cp /etc/profile /etc/profilebak2
vi /etc/profile#在文件末尾添加以下内容
ulimit -c unlimited
ulimit -s unlimited
ulimit -SHn 65535
ulimit -S -c 0