Fedora Core 6 启动过程

来源:互联网 发布:家具安装网络报价 编辑:程序博客网 时间:2024/05/21 00:19
1.加载BIOS(Bacis Input/Output System)
    当启动电源时,计算机会从CMOS加载BIOS,并检查硬件信息。之后BIOS会查找是否存在系统引导盘,如果没有系统引导盘,就会转而查找硬件的MBR,并执行记录在MBR上的程序,这个程序通常为opreating system的Loader。该装载器的主要功能是用来指示系统在启动后要加载哪个系统以及何处加载,在linux上这里是GRUB。接下来加载linux Kernel

2.进入GRUB/LILO
    进入GRUB/LILOHOU ,系统会出现Fedora Core 6或多重启动菜单。

3.加载Linux Kernel
    在GRUB阶段如果选择启动linux,系统就开始加载内核程序。正是进入Linux控制。Linux首先会查找系统上所有硬件设备并且驱动它们,同时这些信息都将在屏幕上显示。可以在启动后打开/var/log/dmesg文件检查所有的启动信息,部分信息如下:
Linux version 2.6.18-1.2798.fc6 (brewbuilder@hs20-bc2-3.build.redhat.com) (gcc version 4.1.1 20061011 (Red Hat 4.1.1-30)) #1 SMP Mon Oct 16 14:54:20 EDT 2006
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
 BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)......

4.执行/sbin/init
    在系统加载Kernel后,紧接会调用/sbin/init,这是在Fedora Core 5启动过程中相当重要的部分,init是所有启动程序的父进程,而后执行一连串的程序或script。

5.执行/etc/rc.d/rc.sysinit Script
    功能如下:
  • 设置环境变量
  • 设置NIS域名
  • 读取/etc/sysconfig/network文件,以设置NETWORKING,FORWARD_IPV4.HOSTNAME,DOMAINNAME,GATEWAY,GATEWAYDEV等内容
  • 启动Swapping
  • 检查root文件系统
  • 检查系统参数(proc)以及设置PNP
  • 清除/etc/mtab
  • 挂载root以及/proc文件系统
  • 决定是否使用模块并加载模块
  • 使用fsck检查文件系统
  • 挂载其他文件系统
  • 设置console字体
  • 打开quota
  • 清除不必要的文件(如lock和pid)
  • 使用/etc/sysconfig/clock文件初始化clock
  • 执行rc.serial以将串行端口进行初始化
  • 将启动信息经由dmesg存入/var/log/dmesg
6.执行/etc/inittab Script
    /sbin/init程序会根据/etc/inittab文件的内容来选择一个默认的运行级别(Runlevel),以确定执行哪些服务程序。一般最常用使用的Runlevel为3或5,可以修改/etc/inittab文件内容来重新指定启动时执行模式,但应避免设为Runlevel0或6,因为这两个启动模式会在启动后直接执行关机或重新启动的工作。若要修改Runlevel,在/etc/inittab找出文本id:5:initdefault:

7.由init执行默认Runlevel目录中的所有scripts
    Runlevel共分为7种启动模式,而每一种模式都规定了不同的系统环境,如下:
[root@localhost ~]# ls -l /etc/rc.d
总计 112
drwxr-xr-x 2 root root  4096 03-28 11:38 init.d
-rwxr-xr-x 1 root root  2255 2006-09-22 rc
drwxr-xr-x 2 root root  4096 03-28 11:38 rc0.d
drwxr-xr-x 2 root root  4096 03-28 11:38 rc1.d
drwxr-xr-x 2 root root  4096 03-28 11:38 rc2.d
drwxr-xr-x 2 root root  4096 03-28 11:38 rc3.d
drwxr-xr-x 2 root root  4096 03-28 11:38 rc4.d
drwxr-xr-x 2 root root  4096 03-28 11:38 rc5.d
drwxr-xr-x 2 root root  4096 03-28 11:38 rc6.d
-rwxr-xr-x 1 root root   220 2003-06-24 rc.local
-rwxr-xr-x 1 root root 26298 10-12 11:30 rc.sysinit
每一个rcX.d子目录都包含许多文件,分为两大部分:以S开头和以K开头。
S表示Startup,就是在系统启动时要执行的script,其执行顺序根据S后面的数字来决定,数字越小执行越早。所以不可以随意修改这些数字,可能造成无法启动!
K表示Kill,就是在系统退出该Runlevel时执行的script,它也是以数字为执行优先次序的依据。

8.执行/etc/rc.d/rc.local
    它在Runlevel目录所有script执行后执行,可以在文件中加入启动时要执行的文件名称。默认内容如下:
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

9.执行/bin/login程序
    login会提示用户输入帐号和口令,进行编码并确认口令正确性。如果正确,开始为用户进行环境初始化,并将控制权交给shell。如果默认的shell是bash,则bash会先查找/etc/profile文件,并执行其中的命令,然后查找用户目录中是否有.bash_profile,.bash_login或.profile文件并执行其中一个,最后出现命令提示符号以等待输入命令。最后打开登录界面。
 
原创粉丝点击