装好reboot后看到喜悦的启动画面.真是太棒了.可是它是怎么引导的呢?怎么寻址就不说了<0_0>,我从打开电源开始讲起;
1.当启动电源时.计算机首先会从CMOS加载BIOS,并且检查内存数量,基本的硬件信息,处理器速度,和硬盘转速等.然后BIOS就会寻找是否有系统引导磁盘,若没就会查找硬盘上的MBR,并执行记录MBR上的程序,通常这个就是操作系统的引导程序.Linux上有grub和lilo.windowsNT上的引导程序是NTLDR.
若系统由MBR执行Linux的引导程序开始,在执行之后便会加载linux kernel,而由它负责接下来的工作.
2.GRUB/LILO在进入grub/lilo的步骤后,系统会出现一个RED HAT LINUX或多重操作系统的开机菜单,
3.加载Linux Kernel 在grub/lilo的阶段若选择启动linux,系统就会开始加载内核程序,此时可以说是正式进入linux的控制,linxu首先会搜索硬件并且驱动它们,同时在画面显示出来,用户借此可了解一切硬件设备是否都成功的驱动.也可以在开机后,打开/var/log/dmesg文件来检查所有的开机信息,
4.执行/sbin/init 在加载完成kernel之后会调用/sbin/init程序,这在Red hat linux 开机过程中相当重要,因为在init程序执行后,它会成为所有启动程序的父程序
,随后再执行一连串的程序或script.
5.执行/etc/re.c/rc.sysint Script它的功能有以下几个方面:
5.2.设置NIS domain name.
5.3.读取/etc/sysconfig/network文件设置NETWORKING,FORWARD_IPV4.HOSTNAME.DOMAINNAME.GATEWARY.GATEWAYDEV等内容. 5.4 启动Swapping.
5.5 检查root文件系统.
5.6.检查系统参数
和设置PNP.清除/etc/mtab`加载/root和/proc
5.7 决定是否使用模块并加载.使用fsck检查文件系统.加载其它文件系统.
5.8 设置平台字型.打开配置.清除不必要的文件<如lock>
5.9 使用/etc/sysconfig/clock文件和初始该文件.
5.10 执行/rc.serial
5.11 将开机信息写进/var/log/dmesg
6.执行/etc/inittab Script
这里告诉系统启动哪个执行层级以决定使用哪些服务程序.
7.由init执行默认Runlevel目录中的所有script
8.执行/etc/rc.d/rc.local 上面执行完毕会执行此程序,要是此文件中加入开机时要执行的文件名称,
9.执行/bin/login程序 login程序会提示用户输入帐号密码.和进行编码并确认密码的正确性,若二者相互符后,则开始为用户进行环境的初始化,然后将控制权交给shell,若默认的shell是bash,则bash会先查找/etc/profile文件.并执行其中的命令.然后搜索用户目录中是否存在./bash_profile`./bash_login`./bashrc或,./profile文件中的一个并执行其中一个.最后出现命令提示符,等你输入命令-_-!
10.若是图形则会按照Runlevel打开.
附:系统无法开机时的处理:
虽然linux是个非常稳定的操作系统,但有时因为某些原因也会造成系统的无法开机的情形,原因通常有
1./boot/grub/grub.conf 或/etc/lilo.conf文件设置错误.
2.文件系统配置文件/etc/fstab设置错误,以致无法加载root文件系统.
3.系统init启动/etc/inittab设置错误,例使用错误的执行等级.
以上三个情形都可使用系统引导盘来解决问题.制作引导盘
[redhat@server redhat]$mkbootdisk --device /dev/fd0 'uname -r'