启动和内核管理

1 CentOS 6 启动流程

启动和内核管理_第1张图片
1. 加载BIOS 的硬件信息,获取第一个启动设备
2. 读取第一个启动设备MBR 的引导加载程序(grub) 的启动信息
3. 加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备
4. 核心执行init 程序,并获取默认的运行信息
5.init 程序执行/etc/rc.d/rc.sysinit 文件
6. 启动核心的外挂模块
7.init 执行运行的各个批处理文件(scripts)
8.init 执行/etc/rc.d/rc.local
9. 执行/bin/login 程序,等待用户登录
10. 登录之后开始以Shell 控制主机
MBR:
  446: bootloader, 64:  分区表, 2: 55AA
GRUB:
  primary boot loader : 1st stage ,1.5 stage
  secondary boot loader  :2nd stage ,分区文件
kernel: :
  自身初始化:
  探测可识别到的所有硬件设备
  加载硬件驱动程序(借助于ramdisk 加载驱动)
  以只读方式挂载根文件系统
  运行用户空间的第一个应用程序:/sbin/init
ramdisk文件的制作
  (1) mkinitrd 命令
  为当前正在使用的内核重新制作ramdisk 文件
  mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
  (2) dracut 命令
  为当前正在使用的内核重新制作ramdisk 文件
  dracut /boot/initramfs-$(uname -r).img $(uname -r)
/etc/rc.d/rc.sysinit:  系统初始化脚本
  (1)  设置主机名
  (2)  设置欢迎信息
  (3)  激活udev 和selinux
  (4)  挂载/etc/fstab 文件中定义的文件系统
  (5)  检测根文件系统,并以读写方式重新挂载根文件系统
  (6)  设置系统时钟
  (7)  激活swap 设备
  (8)  根据/etc/sysctl.conf 文件设置内核参数
  (9)  激活lvm 及software raid 设备
  (10)  加载额外设备的驱动程序
  (11) 清理操作
运行 /etc/rc#.d
K* 表示 级别切换要关闭的服务,有顺序
S* 表示 级别切换要开启的服务,有顺序
说明:rc N -->  意味着读取/etc/rc.d/rcN.d/
  K*: K##* :## 运行次序;数字越小,越先运行;数字
越小的服务,通常为依赖到别的服务
  S*: S##* :## 运行次序;数字越小,越先运行;数字
越小的服务,通常为被依赖到的服务
CentOS 6 启动流程:
  POST --> Boot Sequence(BIOS) --> Boot Loader -->Kernel(ramdisk) --> rootfs --> switchroot --> /sbin/init -->(/etc/inittab, /etc/init/*.conf) --> 别 设定默认运行级别 -->  系统初始化脚本 rc.sysinit --> 务 关闭或启动对应级别的服务 -->  启动终端
    grub: GRand Unified Bootloader
    grub 0.97: grub legacy
    grub 2.x: grub2
    grub legacy:
      stage1: mbr
      stage1_5: mbr 之后的扇区,让stage1 中的bootloader能识别stage2 所在的分区上的文件系统
      stage2 :磁盘分区(/boot/grub/)
grub安装
(1) grub-install
  安装grub stage1 和stage1_5 到/dev/DISK 磁盘上,并
  复制GRUB到 相关文件到 DIR/boot 目录下
  grub-install --root-directory=DIR /dev/DISK
(2) grub
  grub> root (hd#,#)
  grub> setup (hd#)
grub legacy 的配置文件
  default=#:  设定默认启动的菜单项;落单项(title) 编号从0 开始
  timeout=# :指定菜单项等待选项选择的时长
  splashimage=(hd#,#)/PATH/XPM_FILE :菜单背景图片文件路径
  hiddenmenu :隐藏菜单
  password [--md5] STRING:  启动菜单编辑认证
  title TITLE :定义菜单项“标题”,  可出现多次
    root (hd#,#) :查找stage2 及kernel 文件所在设备分区;为grub 的根
    kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS] :启动的内核
    initrd /PATH/TO/INITRAMFS_FILE:  内核匹配的ramfs 文件
    password [--md5|--encrypted ] STRING:  启动选定的内核或操作系统时进行认证
生成grub口令
  grub-md5-crypt  MD5 口令
  grub-crypt  sha512口令

2 内核参数调整

/proc 目录:
  内核把自己内部状态信息及统计信息,以及可配置参数通 过proc 伪文件系统加以输出
参数:只读:输出信息
  可写:可接受用户指定“新值”来实现对内核某功能或特性的配置
/proc/sys
  (1) sysctl 命令用于查看或设定此目录中诸多参数
    sysctl -w path.to.parameter=VALUE
    sysctl -w kernel.hostname=mail.magedu.com
  (2) echo 命令通过重定向方式也可以修改大多数参数的值
    echo "VALUE" > /proc/sys/path/to/parameter
    echo “websrv” > /proc/sys/kernel/hostname
sysctl 命令:
  默认配置文件:/etc/sysctl.conf
  (1)设置某参数
    sysctl -w parameter=VALUE
  (2)通过读取配置文件设置参数
    sysctl -p [/path/to/conf_file]
  (3)查看所有生效参数
    sysctl -a
  注意: 如果在内存的内核参数和文件的参数起冲突,才会修改内存中加在的内核参数,否则内存中的内核参数将不会修改
/sys 目录:
sysfs :为用户使用的伪文件系统,输出内核识别出的各
硬件设备的相关属性信息,也有内核对硬件特性的设定信息;有
些参数是可以修改的,用于调整硬件工作特性
udev 通过此路径下输出的信息动态为各设备创建所需要
设备文件,udev 是运行用户空间程序
专用工具:udevadmin, hotplug
udev 为设备创建设备文件时,会读取其事先定义好的规
则文件,一般在/etc/udev/rules.d 及/usr/lib/udev/rules.d目 目
录下

3 内核模块管理

 lsmod 命令:
显示由核心已经装载的内核模块
显示的内容来自于: /proc/modules 文件
  modinfo 命令:
  显示模块的详细描述信息
  modinfo [ -k kernel ] [ modulename|filename... ]
    -n:  只显示模块文件路径
    -p:  显示模块参数
    -a: author
    -d: description
    -l: license
modprobe 命令:会自动解决依赖关系
装载或卸载内核模块
  modprobe [ -C config-file ] [ modulename ] [ moduleparame-ters... ]
配置文件:/etc/modprobe.conf,/etc/modprobe.d/*.conf
  modprobe [ -r ] modulename...
depmod 命令:
内核模块依赖关系文件及系统信息映射文件的生成工具 装载或卸载内核模块:
  insmod 命令:指定模块文件,不自动解决依赖模块
    insmod [ filename ] [ module options... ]
    insmod `modinfo –n exportfs`
    lnsmod `modinfo –n xfs`
  rmmod 命令:卸载模块
    rmmod [ modulename ]
    rmmod xfs
    rmmod exportfs

你可能感兴趣的:(启动和内核管理)