系统启动流程(五)

来源:互联网 发布:mac如何使窗口半屏幕 编辑:程序博客网 时间:2024/05/19 18:41

在CentOS系统中,我们如果想组建一个小型局域网,设定某些虚拟机是开启路由功能,但是重启以后路由转发功能失效并不能永久有效。linux一切皆文件正说明了这一点。下面说下如果更改内核参数。
一、/proc目录

内核把自己内部状态信息及统计信息,以及可配置参数通过proc伪文件系统加以输出。

1、使用命令修改
(1)sysctl命令

sysctl - configure kernel parameters at runtime

使用格式

sysctl [options] [variable[=value]] [...]sysctl -p [file or regexp] [...]

选项

-a,--all  显示可值-p [FILE] --load[=FILE] 通过读取配置文件设置参数-w,--write 设置某参数

注意:这样直接使用命令修改并不能永久生效。
示例:

[root@localhost~]#sysctl -a  #查看所有参数[root@localhost~]#sysctl -p  #读取配置文件/etc/sysctl.conf net.ipv4.ip_forward = 0net.ipv4.conf.default.rp_filter = 1net.ipv4.conf.default.accept_source_route = 0kernel.sysrq = 0kernel.core_uses_pid = 1net.ipv4.tcp_syncookies = 1kernel.msgmnb = 65536kernel.msgmax = 65536kernel.shmmax = 68719476736kernel.shmall = 4294967296

修改内核参数

[root@localhost~]#cat /proc/sys/net/ipv4/ip_forward0    [root@localhost~]#sysctl -w net.ipv4.ip_forward=1[root@localhost~]#sysctl -w net.ipv4.ip_forward=1net.ipv4.ip_forward = 1

注意:修改内核参数必须是proc/sys目录下的文件“/”–>”.” 然后赋值。

[root@localhost~]#echo 1 > /proc/sys/net/ipv4/ip_forward

注意:上述两种方法都不能永久有效。
(2)修改配置文件/etc/sysctl.conf 使其永久有效。
注意:修改完配置文件并不能立即生效,可以使用命令sysctl -p /etc/sysctl.conf读取配置文件,使其生效。如果删除修改内核参数内容,重新读取,还是原来的配置信息,并不能生效;如果想使其生效,可以重新启动操作系统。

二、/sys目录

    sysfs:为用户使用的伪文件系统,输出内核识别出的各硬件设备的相关属性信息,也有内核对硬件特性的设定信息;有些参数是可以修改的,用于调整硬件工作特性。    udev通过此路径下输出的信息动态为个设备创建所需要设备文件,运行用户空间程序。

udev规则:

ACTION  事件的行为 例如add(添加设备)、remove(删除设备)KERNEL  在内核里看到的设备名字,比如sd*表示SCSI磁盘设备DEVPATH 内核设备路径  比如/dev/*SUBSYSTEM 子系统名字 例如sda的子系统为blockBUS 总线的名字,比如IDE ,USBDEIVER 设备驱动的名字,比如ide-cdromENV{key} 环境变量,可以表示任意NAME 根据这个规则创建的设备文件的文件名SYMLINK 为/dev/下设备文件产生符号链接

注意:只有第一行的NAME描述是有效,后面的均忽略;如果想要使用两个以上的名字来访问一个设备,可以使用SYMLINK键

(2)专用工具
udevadm - udev management tool

udev info -a -p /sys/*  #查看设备内核基本信息 如果想更改设备信息,可以使用上述命令查询内核参数,然后在/etc/udev/rules.d、/usr/lib/udev/rules.d(CentOS7)下进行编辑文件

示例:

SUBSYSTEM=="block",KERNEL=="sdb",NAME="myusb",SYMLINK="wangusb"  

注意:修改文件并不能立即生效。

udevadm trigger   #使配置文件生效