02 系统初始化和启动服务--系统

1.开机时的先后顺序

BIOS-MBR(Boot Loader)-Kernel-init

  • Kernel主要是载入驱动程序,以及以读的方式来挂载/根目录,所以/dev,/lib,/etc,/bin,/sbin必须要装在/下.
  • init会根据运行级别来运行以下程序:
    /etc/rc.d/rc.sysinit
    /etc/rc.d/rc  and /etc/rc.d/rc?.d
    /etc/rc.d/rc.local

    X Display Manager

2.BIOS初始化 (Basic Input and Output System)

  • 计算机外设的检测(Power on self test--POST)
  • 选择由哪个设备引导(对应BIOS 的Boot,通常为磁盘驱动器)
  • 选择读取开机设备的第一个磁区(MBR)

3.Boot Loader

  • Boot Loader可以安装在Master Boot Record里, 也可以安装在某个分区的boot sector(引导扇区)
  • Boot Loader的分两阶段:第一阶段大小为446bytes,存于MBR or boot sector;第二阶段Loaded from boot partition

4.GRUB and grub.conf
从载入boot loader到载入init(MBR-Kernel-init)第一个程序之间都是由GRUB这个多重开机管理程序负责.

  • GRUB全名:the GRand Unified Bootloader,特性:
    1. 可以在开机提示界面输入命令
    2. 支持的系统文件格式有:ext2/ext3,ReiserFS,JFS,FAT,minix,FFS
    3. 支持设置MD5密码来保护GRUP的设定文件
  • /boot/grub/grub.conf (GRUB设置文件)
  • 当改变grub.conf文件后,设置会立即生效
  • 如果MBR被不小心删掉,可以使用命令: /sbin/grub-install /dev/hda重安装GRUB

grub.conf文件
*********************************************************************
default=0
timeout=10
splashimage=(hd0,5)/grub/splash.xpm.gz #其中的(hd0,5)为/boot目录,本机把/boot挂载到hda6分区.
password centos #设定GRUB的保护密码为centos
hiddenmenu #隐藏开机菜单
title CentOS (2.6.18-164.el5)
    root (hd0,5)    #先指定/boot位置
    kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet
#指定内核位置为上行申明的/boot下的/vmlinuz-2.6.18-164.el5
#ro意思为read only , ro root=LABEL=/ 以只读的方式挂载根目录,另外也可用ro root=/dev/hda7的方式挂载,如果是逻辑卷,也可以用这种方式挂载;
rhgb 是以图形的形式取代文字画面(Red Hat graphical boot); quiet 是指开机过程中不显示错误信息.
    initrd /initrd-2.6.18-164.el5.img
#这行是把initrd的img文件载入到内存里,这个img文件存放的是驱动程序
title Windows
    rootnoverify (hd0,0)
    chainloader +1
*****************************************************************************
5.进入GRUB开机多重管理程序后可进行的操作
1> 按下a 键后,可以给kernel设定追加一个参数,但该操作无法修改kernel的设定.
   /grub append> ro root=LABEL=/

  • 在行后输入 空格 1 表示single user mode ,这时不用输入root帐号的密码就可以用root帐号登录系统 . (忘记root密码,在这模式下修密码)

设定GRUB保护密码

  • /boot/grub/grub.conf 里title前面添加一行:
    password yourpassword
  • 建立GRUB的MD5密码,输入命令:
    grub-md5-crypt
    产生md5密码后,然后打开/boot/grub/grub.conf文件,插入一行
    password --md5 后面跟上面命令生成的md5密码 ,存盘退出.

2>按下e 键编辑,再按一次e 键进入编辑状态,改完后回车保存,按b键用更改后的设定引导系统.其它操作见GRUB引导下的说明.
6.Kernel Initialization

  • kernel在引导过程中功能
  • 检测设备
  • 设备驱动初始化,并载入到kernel
  • 以只读的方式挂载根目录
  • 载入init 程序(初始化进程)

7.init intialization
init读取/etc/inittab配置,根据inittab文件中设定的运行级别决定下面的操作.
三个常用的run level:
                                    1       single user mode
                                    3       full multiuser mode
                                    5       x11(X window)

  1. initial run level
  2. 执行系统初始化脚本 /etc/rc.d/rc.sysinit
  3. init根据inittab中的run level执行指定的脚本目录
    例:id:5:initdefault:
           /l5:5:wait:/etc/rc.d/rc 5 (rc 5就为/etc/rc.d/rc5.d/)
  4. 设定组合键
  5. 定义UPS在断电/恢复时要执行的脚本
  6. 产生6个virtual consoles (tty1-tty6)
  7. 初始化3指定的环境,如例即初始化run level 5的x window环境

init初始化流 程:id5:5:initdefault----/etc/rc.sysinit----/etc/rc.5d/*(并执行/etc /rc.local)----/sbin/mingetty----如果为run level5  /etc/X11/prefdm ; 非5  进入text mode
8.Run levels : Run level就是当电脑启动时定义要开启哪些服务。

  • 0                             用来关机,不能设置在initdefault中
  • 1,S,emergency    Single user modes(只有root帐号能登陆),主要用来做系统的维护工作。
    它们的不同点是执行脚本的多寡  Run Level 1   init-->  /etc/rc.sysinit --> /etc/rc1.d/*
                                                       Run Level S   init --> /etc/rc.sysinit
                                                       Run Level emergency  init --> /etc/rc.sysinit 中一些必要的程序
  • 2                            Multi-user,without NFS networking
  • 3                            Full multi-user mode.(含网络功能)
  • 4                           用户可自定义(预设下和Run Level 3完全相同)
  • 5                            X11(和Run Level 3完全同,不同的是开机后会启动x window图形界面)
  • 6                           用来重启,不能设置在initdefault中

特性:

  • 使用init命令来定义使用哪个run level (0-6, S , emergency应急)
  • 有三种方式用来选择进入哪个run level:
    • 开机预设在/etc/inittab文件中
    • 在boot loader中传一个参数给kernel
    • 开机后运行init x命令选择进入哪个run level 例如输入:init 3
  • 显示上一次和当前的run level,使用命令:/sbin/runlevel

9. /etc/rc.d/rc.sysinit  (对应到init流程的第二步/etc/rc.sysinit)

 文件进行的几个重要工作:

  • 启用udev(热插拔设备)和SElinux
  • 在/etc/sysctl.conf中设置kernel的参数
  • 设定系统时间
  • 载入键盘设定(keymaps)
  • 启用swap分区
  • 设置主机名 --> /etc/sysconfig/network
  • 检测根目录并且重挂载成rw方式
  • 启用RAID和LVM设备
  • 启用磁盘配额(Disk quotas)
  • 检查和挂载其它的文件系统
  • 清除开机时的临时文件

10. /etc/rc.d/rc的作用: ((对应到init流程的第三步/etc/rc.5 d/*)
根据载入的run level来执行runlevel对应目录里的程序以便决定要启用哪些服务。
例如:查看ls -l /etc/rc.d/rc5.d 目录下都是对应到 etc/rc.d/init.d/目录下程序的Link
其中rc.d , rc5.d , init.d 中的d是Daemon的意思。
11.Daemon processes
定义:A daemon process is a program that is run in the background (一个在后台运行的提供系统服务的程序称之为进程)
分两种类型:

  1. Standalone:
    • 开机时由init启动 如:virtual console
    • System V daemon 如:httpd
  2. Transient:与standalone不同的是使用者必需通过xinetd这个 “super-daemon" 才能提供服务 ,而 standalone类型的服务自己就能提供服务给使用者。

12. System V Script特性:
Run level就是当电脑启动时定义要开启哪些服务。

  • 每个run level都有其对应的目录
  • System V的初始化的脚本都放在/etc/rc.d/init.d目录下
  • run level之所以能提供服务是因为在run level目录下以链接的方式呼叫init.d目录下的脚本,并且还包含了起动或停止服务的参数。
    在run level目录下的链接解释举例:
    K73ypbind -> ../init.d/ypbind 
    S12syslog -> ../init.d/syslog
    这此链接分三个区,第一区以K或S开头,第二区是一个两位的数字,第三区是链接的System V程序名称。
    第一区以K开头为Kill的缩写,代表要停用该链接服务。S是Start的缩写为启用链接服务。
    第二区的数字代表执行的先后顺序,数字小的先执行。K和S的顺序是先执行K的停用操作。
  • 程序的启动和停止都是用同一个程序,只是后面加有start or stop参数

13. /etc/rc.d/rc.local (对应到init流程的第三步/etc/rc.local)
执行完run level对应目录的链接程序后,就会执行该脚本。
如果要自定义开机执行的程序可以在这个地方定制。
14.Virtual Consoles (对应到init流程的第四步/sbin/mingetty)

  • virtual console定义在/etc/inittab 文件中
  • 使用ctrl-alt-F[1-7] 切换虚拟控制台
  • vritual console的文件是在/dev/tty*
  • /dev/tty0 代表当前使用的virtual console
  • 默认的RHEL virtual console设置:
    • 共定义了12个virtual console
    • 只有1-6的virtual console可以登录
    • 图形界面通常使用tty7

15.Controlling Services (控制服务的停止与启动)

  1. 预设自动启动服务工具:
    • ntsysv              不加参数表示设置当前的run leve,要同时设置加参数 --level 35 (设置run level3和5)
    • chkconfig        用法举例: chkconfig gpm --level 123 off   停用鼠标服务
    • system-config-services    
  2. 手动启动服务工具:
    • service       可以立即启动或停用standalone类型的服务 举例: service gpm stop
    • 指定服务的绝对路径后 面跟start,reload,restart,status or stop参数 (这种方法采用System V的设计,在所有linux都支持,最好使用该方法)
    • chkconfig 可以停用xinetd管理的服务
    • system-config-service

16.使用命令关机和重启
以下四个关机动作都会执行sync操作:将内存中的暂存资料写入到硬盘中.

  • init0
  • halt
  • poweroff
  • shutdown -h now         shutdown -h 23:00

重启电脑

  • init6
  • reboot
  • shutdown -r now      shutdown -r 23:45
  • ctrl+alt+del(Virtual console)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值