1.15 学习札记 系统初始化

系统初始化
    命令补充  uname  (/etc/redhat-release)
                   -r --kernel-realease   -v  --kernel-version
                   -a --all  -s --kernel-name -m --machine
   引导顺序概述
       BIOS初始化
       引导装载程序
       内核初始化
       执行以下操作,启动init,并进入预期的运行级别
         /etc/rc.d/rc.sysinit
         /etc/rc.d/rc和/etc/rc/d/rc?.d
         /etc/rc.d/rc.local
         在适当的情况下使用X显示管理器
   引导装载程序组件
      引导装载程序
           1 容量小,位于MBR或引导部分(MBR 512字节 0扇区0磁道 IPl不大于446字节,

64 磁盘分区信息,2 magiccode)
           2 从引导分区装载
   GRUB和grub.conf
     GRUB "The GRand Unified Bootloader"
        引导提示时可以使用命令行界面
        可从/ext2/ext3 ResierFS、JFS、FAT、minix、FFX文件系统引导
        支持MD5密码保护
     /boot/grub/grub.conf
    default=0 //默认从下面系统列表的第一个启动
    timeout=5 //默认启动等待时间是5秒钟
    splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz //系统选择菜单背景所在的位置
     hiddenmenu //隐藏菜单
     password  --md5  
     title Red Hat Enterprise linux AS (2.6.9-648_EL) //在grub界面所显示的系统名

称 (可以任意该动)
     root (hd0,0) //启动时从IDE接口的第一块硬盘第一个分区启动
     kernel /vmlinuz-2.6.9-648.EL ro root=/dev/VolGroup00/LogVo100 rhgb quiet //

启动的内核版本,可以在后面添加内核参数
     initrd /initrd-2.6.9-648.EL.img
   可用 grub-md5-crypt 建立MD5密码
   如果某些原因MBR损坏,重装MBR时,可以使用命令
    1  grub-install boot-device
    2  手工设置
         grub >
         grub > root(hd0,0)
         grub > setup(hd0,0)
         grub > quit
   3     grub >
         grub > root(hd0,0)
         grub > find /<TAB>
         grub > kernel
         grub > initrd
         grub > boot
     开始引导过程:GRUB
      映像选择
          使用空格键选择,然后使用上下键在引导闪屏移动
      传递参数
          在菜单编辑模式修改现有段落
          使用GRUB命令行交互发布命令
    内核初始化 (查看日志/var/log/dmesg  命令dmesg直接查看)
         设备自检
         设备驱动程序初始化
         以只读方式挂载根文件系统
         载入初始化进程(init)
    init初始化  /etc/inittab
          初始化运行级别
          系统初始化脚本
          对应运行级别的脚本目录
          设定ctrl+alt+del组合键
          定义UPS电源中断/恢复脚本
          在虚拟控制台生成getty
          在运行级别5初始化X

         12 : 2 : wait : / etc / init.d / rc 2

  第一个字段是一个任意指定的标签;

  第二个字段表示这一行适用于运行那个级别(这里是2);

  第三个字 段表示进入运行级别时,init应该运行第四个字段内的命令一次,而且init应

该等待该命令结束。/etc/init.d/rc命令运行启动和终止输入以便进入运行级别2时所需的任

何命令。

  第四个字段中的命令执行设置运行级别时的一切“杂活”。它启动已经没有运行的服务

,终止不应该再在新运行级别内运行的服务。根据Linux版本的不同,采用的具体命令也不同

,而且运行级别的配置也是有差别的。

  init启动时,它会在/etc/inittab内查找一个代码行,这一行指定了默认的运行级别:

  id : 2 : initdefault :

  你可以要求init在启动时,进入非默认运行级别,这是通过为内核指定一个“single”

或“emergency” 命令行参数来实现的。比如说,内核命令行参数的指定可通过LILO来执行

。这样一来,你就可以选择单用户模式了(即运行级别1)。

  系统正在运行时,telinit命令可更改运行级别。运行级别发生变化时, init 就会

从/etc/inittab运行相应的命令。

  /etc/inittab中,有几个特殊的特性,允许init重新激活特殊事件。这些特殊特性都是

用第三个字段中的特殊关键字标记出来的。比如:

  1. powerwait

  允许init在电源被切断时,关闭系统。其前提是具有U P S和监视U P S并通知init电源

已被切断的软件。

  2. ctrlaltdel

  允许init在用户于控制台键盘上按下C t r l + A l t + D e l组合键时,重新启动系统

。注意,如果该系统放在一个公共场所,系统管理员可将C t r l + A l t + D e l组合键配

置为别的行为,比如忽略等。

     运行级别
      init定义运行级别 0-6 单人模式  紧急模式
       显示当前和上个运行级别
                 /sbin/runlevel
        调整运行级别  init new_runlevel
   0 停止 ;1 单用户模式;2 不带NFS的多用户模式;3 完全多用户模式,用于服务器
   4 无官方定义 ;5 图形登录;6 重启
   s /S /single 备用单用户模式
   emergency  绕过rc.sysinit sulogin
    /etc/rc.d/rc.sysinit
       主要任务
         激活udev和selinux
         在/etc/sysctl.conf中设定内核参数
         设定系统时钟
         装载按键设置
         启用交换分区
         设置主机名
         检查并重新挂载根文件系统
         激活RAID和LVM设备
         启用磁盘配额
         检查并挂载其他文件系统
         清理过时的锁和PID文件
    系统V运行级别
       每个运行级别都有对应的目录
           /etc/rc.d/rcX.d
       系统V init脚本位于
               /etc/rc.d/init.d
       /etc/rc.d/rc/local 系统V初始化的最后阶段 ,用户可以自定义的脚本
   控制服务
        工具  system-config-services
              ntsysv
              chkconfig  ——list | --level  on | off
              service   named start|stop|status|restart