系统启动过程以及故障处理
Linux 的系统启动过程:
系统启动顺序:
加载BIOS的硬件信息
└ 读取MBR的Boot 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引导 MBR为512字节 分为 BOOTLOADER 446字节 分区表 64字节 master 2字节
BOOTLOADER 属于第一阶段 属于引导阶段
其中linux中的引导程序叫做grub
3.GRUB
(1.)加电 ---》cmos---》post----》grub
Lilo
第二阶段处于硬盘 主要是grub的配置
进入/etc/grub.conf
Root (hd0,0) 指明第一块硬盘的第一个分区
Kernel 指明操作系统内核 以只读模式 quite 静默
Initrd 放置额外驱动的地方
1.加载内核
2.加载进程 init
进程树
进入inittab.conf 查看init的配置信息
进入/etc/rc.d/rc.sysinit
Inittab里面有一行代码
说明在任何级别下按ctrl+alt+del 都可以启动 一般很危险 所以呢要注释掉
说明服务器当发现交流电源使用失效时,会发出通告,告诉所有用户2个小时后将关闭
表示不管那个级别 都会产生5个终端
二.故障处理
当启动时会遇上各种各样的故障,主要发生在第一阶段(程序)和第二阶段(配置文件)
1.第一阶段故障排除
假如不小心将 系统的引导程序给覆盖或者删除了 ,系统将启动不起来
处理方法:重建mbr
进入急救模式 boot:linux rescue
先转变成根目录 chroot /mnt/sysp_w_picpath
重建mbr中的446字节信息 执行 grub 进到 grub> 指明引导系统 root
Root(hd0,0)
执行setup (hd0) 回车
然后quit exit
2.如果不小心将grub.conf文件删除掉了 怎么办
故障处理方法:
进入grub>
指明引导分区 root(hd0,0) 其中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
3.假如将grub整个目录删掉了 ,第二阶段所有都不能进行了 怎么办
故障处理方法:
进入急救模式 root: linux rescue
切换到根目录下 chroot /mnt/sysp_w_picpath
执行grub-install --root-directory=/ /dev/sda
Exit exit 然后将光盘去掉 使用硬盘引导
然后在/boot/grub下 创建grub.conf
然后执行 init 6 重启
4.如果根目录没有损坏
假设发生错误的磁盘块是/dev/hda7,由root进行单人单机的维护,然后输入fsck /dev/hda7,这时屏幕会显示开始修复磁盘的信息,修复完成之后,以reboot重新启动。
5.管理员密码丢失
处理方法:
忘记root密码:
首先进入单用户维护模式
找到/etc/shadow文件
利用chmod改变这个文件的属性,让它变得可写
打开shadow文件,将root对应的密码删掉
重新启动,这样不要用密码或者密码是空格就能登入root用户了
最后把shadow文件的属性改回来,因为那样安全性就差了。
除了上面这些问题,其实在引导过程中牵扯到的一些程序文件 都可以导致故障发生,所以说大家再启动过程中要多注意 防止故障发生
转载于:https://blog.51cto.com/7572433/1261779