系统启动过程以及故障处理

Linux 的系统启动过程:

194247200.png

系统启动顺序:
加载BIOS的硬件信息
 └  读取MBRBoot Loader信息 stage1,stage2,grub.conf
       └  Boot Loader加载内核 vminux,initrd
           └  内核执行init程序并取得inittab中运行信息
                   ├  init执行/etc/rc.d/rc.sysinit
                           └  /etc/fstab加载分区等
                   ├  init执行/etc/rc.d/rc
                           ├  启动对应运行级别的守护进程
                           └  最后执行S99local,/etc/rc.d/rc.local
                   └   init启动了mingetty,打开了终端供用户登录系统
                           └  执行/bin/login程序
                                   └  成功登陆之后启动shell控制主机
                                               └ shell配置脚本
                                                         ├/etc/profile--->/etc/profile.d/*.sh
                                                         └  ~user/.bash_profile
                                                                   └  ~user/.bashrc
                                                                         └  /etc/bashrc

1.BIOS 自检   如果此过程中硬件出了问题,系统就会停留在该阶段

2.MBR引导    MBR512字节  分为 BOOTLOADER  446字节   分区表 64字节    master 2字节

BOOTLOADER  属于第一阶段  属于引导阶段

其中linux中的引导程序叫做grub

3.GRUB  
1.加电 ---cmos---post----grub

      Lilo  

第二阶段处于硬盘  主要是grub的配置

进入/etc/grub.conf

194214619.png

Root (hd0,0) 指明第一块硬盘的第一个分区

Kernel    指明操作系统内核   以只读模式    quite  静默

Initrd      放置额外驱动的地方

1.加载内核

2.加载进程 init

进程树

194217560.png

进入inittab.conf 查看init的配置信息

194219257.png

进入/etc/rc.d/rc.sysinit

194221251.png

Inittab里面有一行代码

194224876.png

说明在任何级别下按ctrl+alt+del 都可以启动  一般很危险 所以呢要注释掉

194226152.png

说明服务器当发现交流电源使用失效时,会发出通告,告诉所有用户2个小时后将关闭

194229318.png

表示不管那个级别 都会产生5个终端

二.故障处理

当启动时会遇上各种各样的故障,主要发生在第一阶段(程序)和第二阶段(配置文件)

1.第一阶段故障排除

假如不小心将 系统的引导程序给覆盖或者删除了 ,系统将启动不起来

处理方法:重建mbr

进入急救模式   bootlinux rescue

194232251.png

194235534.png

先转变成根目录       chroot  /mnt/sysp_w_picpath

重建mbr中的446字节信息   执行 grub  进到  grub>   指明引导系统  root

Root(hd0,0)

执行setup (hd0) 回车

194237533.png

然后quit     exit  

2.如果不小心将grub.conf文件删除掉了 怎么办

故障处理方法:

进入grub>  

指明引导分区 roothd00) 其中83类型属于ext  83属于swap

指明 kernel /vmlinux---......      Ro   rooe=/dev/sda2   quite

指明Initrd   /initrd +tab

Boot  启动起来

最后呢 手动配置grub.conf文件   运用 grub.install -root-directory=/boot/grub /    /dev/sda


194239649.png

3.假如将grub整个目录删掉了 ,第二阶段所有都不能进行了 怎么办

故障处理方法:

进入急救模式   rootlinux rescue

切换到根目录下  chroot  /mnt/sysp_w_picpath  

执行grub-install  --root-directory=/   /dev/sda

Exit  exit    然后将光盘去掉  使用硬盘引导

194242999.png

然后在/boot/grub下 创建grub.conf


194949557.png

然后执行 init 6 重启

4.如果根目录没有损坏

假设发生错误的磁盘块是/dev/hda7,root进行单人单机的维护,然后输入fsck /dev/hda7,这时屏幕会显示开始修复磁盘的信息,修复完成之后,reboot重新启动。

5.管理员密码丢失

处理方法:

忘记root密码:

首先进入单用户维护模式

找到/etc/shadow文件

利用chmod改变这个文件的属性,让它变得可写

打开shadow文件,将root对应的密码删掉

重新启动,这样不要用密码或者密码是空格就能登入root用户了

最后把shadow文件的属性改回来,因为那样安全性就差了。

除了上面这些问题,其实在引导过程中牵扯到的一些程序文件 都可以导致故障发生,所以说大家再启动过程中要多注意 防止故障发生