RedHat 开机启动流程 :
1. LILO 取得控制权.
PC 起动时, 会读取开机磁碟第一条 cylinder 的第一个 sector(此即 MBR), 然後它会试着将读取到的程式码载入记忆体中并且予以执行. 这些程式码, 就是 LILO. 记不记得, 当初我们安装时, 曾选择将 LILO 放入MBR 呢?!
2. 载入 kernel
Red Hat 的 kernel 放在 /boot 中, 通常档名类似 vmlinuz-2.0.34-0.6, vmlinuz-2.2.5-15
3. kernel 执行第一支程式 /sbin/init
init 会根据 /etc/inittab 这个 initialization table 来决定不同的 run-level 应该如何设定系统.
Red Hat 的 run-level 有以下 7 层: (定义在 /etc/inittab 中)
0 --- halt : 关机 level 
1 --- Single user mode : 单人模式, 如果你忘记 root 密码, 这是补救的方式之一. 
2 --- Multiuser, without NFS : 多人使用模式, 但没有 NFS 功能, 如果安装时没有使用网路功能, 那麽 level 3 是一样的. 
3 --- Full multiuser mode : 这是预定的 run-level 
4 --- unused : 这个 run-level 目前尚未定义使用 
5 --- X11 : X Windows 使用的 level 
6 --- reboot : 重新开机时使用的 level 
Linux 系统开机时, 最重要的观念便是这个 run-level , run-level 可以说是 Linux 的系统状态(system states of Linux), 根据不同的情况进入不同的系统状态, 以执行不同的初始化动作.
另外一点, Linux 虽然融合了 System V 及 BSD 的特色, 但在开机起动的部份, 比较接近 System V 的作法, 并且这种方式几乎已成为 Linux 世界的一项标准. 因为它具有容易使用, 功能强大以及富有弹性的特色. 
其目录档案结构如下:
/etc/rc.d 中包含:
目录 script 档案 
/etc/rc.d/init.d 
/etc/rc.d/rc0.d 
/etc/rc.d/rc1.d 
/etc/rc.d/rc2.d 
/etc/rc.d/rc3.d 
/etc/rc.d/rc4.d 
/etc/rc.d/rc5.d 
/etc/rc.d/rc6.d 
 rc 
rc.local 
rc.sysinit  
rc0.d 便是 run-level 0 起动 script 存放的目录, rc3.d 是 run-level 3, 其它依此类推
不过, rc0.d ~ rc6.d 中的 script 并不是各自独立的, 其实它们都是 symbolic file, 连结到 /etc/rc.d/init.d 中的 script.
比如 rc3.d 目录中的档案列表如下:
total 0
lrwxrwxrwx  1 root  root  20 May 23 15:56 K15postgresql -> ../init.d/postgresql
lrwxrwxrwx  1 root  root  17 May 23 15:56 K20rusersd -> ../init.d/rusersd
lrwxrwxrwx  1 root  root  15 May 23 15:56 K20rwhod -> ../init.d/rwhod
lrwxrwxrwx  1 root  root  16 May 23 15:56 K55routed -> ../init.d/routed
lrwxrwxrwx  1 root  root  17 May 23 15:56 S01kerneld -> ../init.d/kerneld
lrwxrwxrwx  1 root  root  17 May 23 15:56 S10network -> ../init.d/network
lrwxrwxrwx  1 root  root  15 May 23 15:56 S15nfsfs -> ../init.d/nfsfs
lrwxrwxrwx  1 root  root  16 May 23 15:56 S20random -> ../init.d/random
lrwxrwxrwx  1 root  root  16 May 23 15:56 S30syslog -> ../init.d/syslog
lrwxrwxrwx  1 root  root  13 May 23 15:56 S40atd -> ../init.d/atd
lrwxrwxrwx  1 root  root  15 May 23 15:56 S40crond -> ../init.d/crond
lrwxrwxrwx  1 root  root  17 May 23 15:56 S40portmap -> ../init.d/portmap
lrwxrwxrwx  1 root  root  15 May 23 15:56 S40snmpd -> ../init.d/snmpd
lrwxrwxrwx  1 root  root  16 May 23 15:56 S45pcmcia -> ../init.d/pcmcia
lrwxrwxrwx  1 root  root  14 May 23 15:56 S50inet -> ../init.d/inet
lrwxrwxrwx  1 root  root  15 May 23 15:56 S55named -> ../init.d/named
lrwxrwxrwx  1 root  root  13 May 23 15:56 S60lpd -> ../init.d/lpd
lrwxrwxrwx  1 root  root  18 May 23 15:56 S75keytable -> ../init.d/keytable
lrwxrwxrwx  1 root  root  18 May 23 15:56 S80sendmail -> ../init.d/sendmail
lrwxrwxrwx  1 root  root  13 May 23 15:56 S85gpm -> ../init.d/gpm
lrwxrwxrwx  1 root  root  15 May 23 15:56 S85httpd -> ../init.d/httpd
lrwxrwxrwx  1 root  root  15 May 23 15:56 S85sound -> ../init.d/sound
lrwxrwxrwx  1 root  root  13 May 23 15:56 S91smb -> ../init.d/smb
lrwxrwxrwx  1 root  root  11 May 23 15:48 S99local -> ../rc.local
各位可以发现: 这些 script 档不是以 S 开头, 就是以 K 开头, 其後再接上二位数字, 并且皆连结到 init.d 目录中的相关 scripts 档.
以 S 开头的, 表示 Start 起动之意, 而 K 开头的, 则是 Kill 杀除之意.
4. init 执行第一支 script : /etc/rc.d/rc.sysinit
rc.sysinit 会设定许多系统变数, 如:
设定 PATH 
设定网路: 读取 /etc/sysconfig/network, 以设定 NETWORKING, FORWARD_IPV4, HOSTNAME, DOMAINNAME, GATEWARY, GATEWAYDEV(eth0) 
设定 NIS domain name 
并且执行 run-level 启动之前所需的许多准备动作, 如:
起动 swapping 
checking root filesystems : 检查 root 档案系统 
检查系统参数 (/proc), 设定 PNP 
清除 /etc/mtab 
mount root 及 /proc 档案系统 
决定是否使用模组, 载入模组 
检查档案系统 (使用 fsck) 
挂上其它档案系统 
设定 console 字型 
打开 quota 
清除不必要的档案, 如 lock, pid 
设定 clock 
serial port 初始化 
将开机讯息经由 dmesg 放入 /var/log/dmesg 中  
5. init 执行预设的 run-level 目录中所有的 scripts
正常情况下就是 rc3.d, 因为 /etc/inittab 中有一行设定是: id:3:initdefault: 表示预设要执行的 run-level 是 level 3. 因此, 刚刚上面各位看到的 rc3.d 中的 Sxx 及 Kxx 都会被执行.
6. 最後 init 执行 /etc/rc.d/rc.local 这支 script.
rc.local 会在各 run-level 的 script 执行完之後再执行. 您可以将自己想在开机时处理的动作加在这个 script 之中.
7. init 执行完之後, 接着执行 /bin/login 程式
login 程式会提示使用者需输入帐号及密码, 接着编码并确认密码的正确性, 若二者相合, 则为使用者进行初始化环境, 并将控制权交给 shell.
8. shell 
假设预设的 shell 是 bash, 则 bash 会先寻找 /etc/profile, 执行其中的指令, 然後搜寻使用者目录中, 是否有 .bash_profile, .bash_login, 或 .profile, 执行其中一个, 接着命令提示符号 $ 便出现在萤幕上, 等待您输入命令.
至此, 完成了整个开机的流程

转载于:https://blog.51cto.com/zhuang13/557867

RedHat开机启动流程相关推荐

  1. 红帽linux设置自动启动,RedHat开机启动流程

    RedHat 开机启动流程 : 1. LILO 取得控制权. PC 起动时, 会读取开机磁碟第一条 cylinder 的第一个 sector(此即 MBR), 然後它会试着将读取到的程式码载入记忆体中 ...

  2. (转)CentOS 7系统详细开机启动流程和关机流程

    CentOS 7系统详细开机启动流程和关机流程 原文:http://blog.csdn.net/yuesichiu/article/details/51350654 名称 bootup - 系统启动流 ...

  3. linux系统下开机启动流程

    在了解开机启动流程之前,还是得先了解一些磁盘的基本知识.磁盘主要由盘片,机械手臂,磁头,主轴马达构成.盘片就是存储数据的物理单位了.然后盘片上我们可以分成扇区(sector)和柱面(cylinder) ...

  4. 计算机开机启动流程详解

    一.BIOS 1.BIOS是什么 BIOS:基本输入输出系统(Basic Input Output System),它是一组固化到计算机内主板上一个ROM(Read-Only Memory)只读存储器 ...

  5. Android Q 开机启动流程

    https://www.it610.com/article/1304931662924124160.htm Android Q 开机启动流程 开机启动概述: step 1: 上电开机 长按power键 ...

  6. Linux系统管理-开机启动流程

    Linux系统管理-开机启动流程 文章目录 Linux系统管理-开机启动流程 CentoOS6的开机启动流程 CentOS6忘记root密码 Linux的关机指令 CentOS7的开机启动流程 Cen ...

  7. Android开机启动流程

    Android开机启动流程 一.APPS PBL(Application primary boot loader:主引导加载程序) 二.XBL(Extensible boot loader:可扩展引导 ...

  8. Linux - 开机启动流程

    目录 一.掌握开机启动流程的意义: 1.1  为什么需要了解开机启动流程? 1.2  在日常的运维过程中,是否会遇到机器出现问题启动不了? 1.3  开机启动流程的意义 二.开机启动流程 2.1  开 ...

  9. Android开机启动流程简析

    Android开机启动流程简析 (一) 文章目录 Android开机启动流程简析 (一) 前言 一.开机启动的流程概述 二.Android的启动过程分析 (1).总体流程 init简述 Zygote简 ...

最新文章

  1. 用Python在Windows或Linux下批量删除文件夹中指定的文件
  2. 【Qt】Qt再学习(十一):图形视图框架(Graphics View Framework)的一个小demo
  3. iOS UITextView 随键盘弹出界面上移
  4. ASP.NET Core 行军记 -----第一步(艰辛的 MVC Hello World)
  5. bzoj 4002: [JLOI2015]有意义的字符串
  6. cnn输入层_一文掌握CNN卷积神经网络
  7. Ansible1:简介与基本安装【转】
  8. Just a Hook(线段树区间更新)
  9. python中for循环格式_如何将python中for循环的输出写入csv格式的文件?
  10. 力扣题目——160. 相交链表
  11. redis循环键_javascript – for循环从redis延迟获取项目
  12. VMClean(vmware卸载清理,解决卸载MSI问题)
  13. DXF格式文件导入AD,做成可加工的PCB文件
  14. PMP学习笔记 第5章 项目范围管理
  15. 阿里面试题:设计相关的系统对外提供商品实时价格获取功能
  16. Forth 语言概要
  17. 2020初中计算机考试,2020年下半年中学教师资格证笔试真题及答案:初中信息技术(网友版)...
  18. dcn网络与公网_ip 中的,内网,外网,公网,dcn网络,分别是什么意思?
  19. 2022支付宝集五福 生肖卡添福红包活动攻略
  20. GWL_WNDPROC 、GWL_USERDATA、GWL_HINSTANCE未定义

热门文章

  1. 0715PHP基础:文件操作
  2. [UVA 10827] Maximum sum on a torus
  3. 《抓住听众心理——演讲者要知道的100件事》一20.人们学习的最优长度是20分钟...
  4. Elasticsearch Windows 环境搭建
  5. 虚拟桌面环境需要一个什么样的接入网络?
  6. BCH矿池新格局,Coingeek矿池曾成为BCH算力最大的矿池
  7. C++编写Config类读取配置文件
  8. linux kill杀死进程
  9. Tree Operations 打印出有向图中的环
  10. 多线程番外之真假*程