RedHat开机起动流程(转)

转载 2007年09月28日 00:58:00
原贴:http://tigeerfish.itpub.net/post/34070/333770

RedHat开机起动流程(转)
# 版权宣告: 1999 Copyright OLS3 All rights reserved. # 本讲义仅供台南县 87 学年度网路管理进阶研习班上课之用. # 学员可保存一份自用, 供日後网管时参考备查. # 作者保有一切形式的着作权. # 欲作其它用途者, 需经作者授权同意. # 未经作者授权同意之前, 请勿转载刊登. 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, 执行其中一个, 接着命令提示符号 $ 便出现在萤幕上, 等待您输入命令. 至此, 完成了整个开机的流程.  

相关文章推荐

redhat中如何设置开机启动脚本

redhat中如何设置开机启动脚本        前面转载了一篇关于开机启动脚本的文章,觉得写的很详细了,但是自己没有实践,下面是自己实践了一种方式,来设置开机启动脚本(因为有时候我们必须开...

Linux下(以RedHat为范本)添加开机自启动脚本有两种方法

http://blog.chinaunix.NET/uid-26000296-id-3986914.htmlLinux下(以RedHat为范本)添加开机自启动脚本有两种方法,先来简单的;一、在/etc...
  • ha2015
  • ha2015
  • 2017年06月17日 17:40
  • 170

AIX,Redhat下实现nfs文件系统开机自动mount

转自:http://hxho.blog.163.com/blog/static/16473277620108242463032/ AIX下实现nfs文件系统开机自动mount 主要的工作是编辑...

RedHat下Oracle开机自启动

RedHat下Oracle开机自启动在完成Oracle安装后每次启动Oracle只能通过手动方式进行启动,但是通过相应的配置实现Oracle的开机自启动具体方法如下所示。1、修改/etc/oratab...
  • tyyytcj
  • tyyytcj
  • 2017年06月26日 16:44
  • 115

NO2:设置RedHat Linux下的samba开机启动

安装的samba默认不是开机启动的,这样每次都要进入系统人为启动,很不方便,当然系统肯定可以设置开机启动的。 因为我的是RedHat Linux系统,支持chkconfig命令直接配置,会简单些,其...
  • gxing19
  • gxing19
  • 2013年06月17日 23:16
  • 1030

redhat下使用mysql,python,redis,httpsqs,shell脚本开机自启动的一些问题与解决

先给上一些网址,里面有各种问题与解决 1. httpsqs官方网址 2. python安装与使用mysql 3.mysql插入数据时:Incorrect string value 4.mysql显示中...
  • zlp1992
  • zlp1992
  • 2015年03月24日 20:36
  • 919

redhat7 开机启动变化

PS:RHEL7和CentOS7出来有一段时间了,拿出点时间研究下,有几个地方跟6和5系列相比改变比较大,估计不少童鞋有点不太习惯。下面简要举例说明改变比较大的要点: 一、CentOS的Serv...

Linux 开机流程练习脚本

  • 2013年11月10日 17:24
  • 8KB
  • 下载

andriod开机流程

  • 2013年10月15日 18:44
  • 150KB
  • 下载

Android开机动画流程

Android系统在启动过程中,最多可以出现三个画面。第一个开机画面是在内核启动的过程中出现,是一个静态的画面;第一个画面是在init进程启动的过程中出现的,也是一个静态的画面;第三个画面是在系统服务...
  • whurs
  • whurs
  • 2016年09月13日 17:58
  • 2722
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RedHat开机起动流程(转)
举报原因:
原因补充:

(最多只允许输入30个字)