linux的基础启动流程
1. 加载BIOS的硬件信息,并获取第一个启动设备的代号。
2. 读取第一个启动设备的MBR的引导加载程序(即lilo、grub、spfdisk等)的启动信息。
3. 加载操作系统的核心信息,核心开始解压,并尝试驱动所有的硬件设备。
4. 核心执行init程序并获得运行信息。
5. init执行/etc/rc.d/rc.sysinit文件。
6. 启动核心的外挂模块(/etc/modprobe.conf)。
7. init执行运行的各个批处理文件(Script)
8. init执行/etc/rc.d/rc.local文件。
9. 执行/bin/login程序,等待用户登录。
10. 登录之后开始以shell控制主机。
流程:
1.post
2.cmos ---》硬盘引导----》MBR
3.grub 第一阶段
4.grub 第二阶段 /etc/grub.conf (/boot/grub/grub.conf)
5.加载内核以及驱动镜像
6.开启第一个进程 init /etc/inittab
7.执行初始化文件 /etc/rc.d/rc.sysinit
8. 进入/etc/rc.d/rcn.d 目录 执行 Kxx Sxx
9./etc/rc.d/rc.local
10.mingetty 产生终端
/boot/grub引导菜单介绍
default=0 ***默认启动的系统,0 表示第一个title 的系统 timeout=5 ***菜单停留的时间 splashimage=(hd0,0)/grub/splash.xpm.gz ***启动时的背景 hiddenmenu ***菜单是隐藏的 title CentOS (2.6.32-431.el6.i686) ***每个系统的标示 root (hd0,0) ***hd0 表示第一个盘,0表示第一个分区 kernel /vmlinuz-2.6.32-431.el6.i686 ***加载根分区的内核,,此时的根是/boot ro ***以只读方式来进行引导 root=UUID=4a3e9e54-2ed5-4796-9702-774aac0e74a4 ***加载完内核后真正的根分区 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb ***以图形方式来进行引导 quiet ***静默模式,启动时信息不再凌乱 initrd /initramfs-2.6.32-431.el6.i686.img ***额外的驱动,放置的镜像
故障1:root 口令丢失
解决原理:进入1级别,单用户级别,因为这个级别是不用输入root密码的,在这里面可以设置新的root密码,然后重启进入其他级别,输入即可
详细操作:
重启客户机,在boot引导时5秒内按下回车键,进入引导菜单
此时按下e键 ,进入编辑模式,
选择第二项,按e键,在最后添加“1”然后回车
然后按b键,进入系统
已经进入系统
可以修改root密码,重启即可,或者把密码删除
passwd -d root 密码删除远程是登陆不上的
故障2:grub.conf
grub 菜单丢失
为了模拟实验先把grub菜单删除
此时看到已经断开连接
重启
已经启动不了了
解决方案:
help可以查看帮助
先指定引导程序的硬盘和分区,(如果不清楚,可以用tab键帮助)
指定内核和根分区
指定驱动
做完之后,boot引导启动
可以看到已经进去了
但是为了下一次能够正常启动,不再指定grub菜单,所以要写出grub.conf
不知道可以用!!的形式列出需要的文件
引导顺序不要写反了
保存重启,已经可以正常启动了
故障三:故障3:stage1 丢失 446字节的引导程序坏掉
故障模拟,向sda 写入446 字节,然后重启
插入光盘,重启
选中求援模式
选中shell
分区表和引导菜单都有
重新写入引导,exit退出,重启即可
故障4:MBR(446字节和分区表没有了)丢失
一定要先讲mbr备份
我的已经拷贝到物理机上
擦除mbr,重启
启动不了;
插入live cd盘 CentOS-6.5-i386-LiveDVD
进入cd盘后,打开终端,切换root用户
关闭防火墙,讲保存的mbr文件导入
将mbr重新写入
已经可以查看分区表了
重启
故障5:stage2 丢失 (grub目录)
删除
重启测试
进入系统,没有grub文件
在根目录下执行
进入grub目录,发现没有grub.conf 重新编辑grub.conf文件
重启测试OK
故障6: /etc/fstab (编错或误删除)
重启,启动失败,输入密码
发现看不到有用的信息,
再重启进入引导菜单,
删除图形引导,和静默模式,再重启
此时发现,UUID 值写错了
解决方案:采用live cd 启动,然后将错误改回来
重启时,发现从硬盘引导了,先关机,选择虚拟机,电源,从BIOS 启动
f10保存启动
看到sda2 没有挂载,挂载sda2
查看UUID复制写入/etc/fstab
保存退出
重启正常!
总结:
当系统出错进不去时,先关闭,静默模式和图形引导,查看详细信息,如果可以进入shell,在shell中写入引导盘,内核文件,根分区和驱动镜像,进入系统再修改错误,如果进入不到shell,可以到求援模式,如还不行,就挂载live盘进去查错并修改。