Linux系统启动过程:
接通电源→硬件自检(post)→cmos启动过程顺序→MBR引导
用图示说明:
先了解下grub.conf
[[email protected] grub]# vim /boot/grub/grub.conf
default=0
timeout=5 没有选择启动的操作系统超时时间
splashimage=(hd0,0)/grub/splash.xpm.gz 引导菜单背景图片
Hiddenmenu 隐藏菜单
title CentOS (2.6.32-431.el6.i686) 开机时候提供的菜单的标签
root (hd0,0) 第一个硬盘的第一个分区,即引导分区
kernel /vmlinuz-2.6.32-431.el6.i686 ro 加载的内核 只读方式root=UUID=f89c0676-2f69-4ebc-961b-9bd951910958 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 初始化包含启动的镜像
故障(一)
MBR故障
[[email protected] ~]# dd if=/dev/zero of=/dev/sda bs=446 count=1 模拟MBR故障
[[email protected] ~]init 6 重启
无法启动
需要插入安装光盘从光盘启动修复
选择第3个 rescue install system
选择English
选择us
选择no 不需要开启网络
选择continue
Ok
ok
选择shell start shell
具体命令为
chroot /mnt/sysimage/ 切换到系统挂载的目录
grub-install /dev/sda 安装grub
exit 退出
exit 退出
然后选择reboot
故障(二)
grub.conf错误 模拟grub错误
[[email protected] ~]# ll /etc/grub.conf /boot/grub/grub.conf
-rw-------. 1 root root 737 Jul 9 02:41 /boot/grub/grub.conf
lrwxrwxrwx. 1 root root 22 Jul 9 02:41 /etc/grub.conf -> ../boot/grub/grub.conf
2目录的文件对应于一个文件(一个是链接文件)
[[email protected] ~]# mv /boot/grub/grub.conf /tmp 移动到其他的目录,如同删除
[[email protected] ~]# init 6 重启
出现这个说明第一阶段(mbr)完好,第二阶段出现问题
先输入root ( 按table键有提示说明
再输入 root(hd0, 按table键有提示说明
分辨哪个分区可能是引导分区
然后输入kernel 位置 在/后面输入vm按table键看是否能补齐能补齐说明前面选择的路径是对的
然后再 ro(只读模式)quiet(静默模式) root=/dev/sda2 (指定根目录)
Initrd /ini按table键补齐 (指定驱动位置)
boot 试下能否启动
可以进入系统。但是如果再重启的话还是出现上面的情况,这时需要重建grub菜单
[[email protected] ~]# cd /boot/grub/
[[email protected] grub]# vim grub.conf 进入grub目录,编辑grub.conf文件
编辑为如此即可
default=0
timeout=5 菜单超时时间
splashimage=(hd0,0)/boot/grub/splash.xpm.gz 背景界面
title centos 标题
root (hd0,0) 根目录
kernel /vmlinuz-2.6.32-431.el6.i686 ro quiet rhgb root=/dev/sda2 内核文件位置
initrd /initramfs-2.6.32-431.el6.i686.img 驱动文件位置
然后init 6 重启就可以成功进入
故障(三)
grub目录丢失 模拟grub目录丢失
[[email protected] ~]# cd /boot/
[[email protected] boot]# mv grub /tmp 将grub移动模拟丢失目录
[[email protected] boot]# init 6
出现这样的情况,放上系统盘进入救援模式选择从光盘启动,可以调bios光盘为第一启动项,也可以开机按f12选择(部分机器可能没有)
选择救援模式
进入救援模式shell方式和上面一样!
chroot /mnt/sysimage 切换到根目录
grub-install --root-directory=/ /dev/sda 安装grub相关的目录
然后ls /boot 有了grub目录
grub目录下也有文件,但是少了个grub.conf
然后exit
exit重启
选择第四项选择从本地硬盘启动
进入
然后和故障(二)的情况一样,解决方法一样 即
使用livecd光盘修复
[[email protected] ~]# cd /boot/
[[email protected] boot]# mv grub /tmp 将grub移动模拟丢失目录
[[email protected] boot]# init 6
使用livecd启动 可用usb启动,usb需要设置pe启动
选择第二个进入
选择命令行模式
su - 获取root
fdisk -l 查看所有硬盘信息,以确定boot分区的设备目录
Boot分区为 /dev/sda1
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
ls-l /mnt/boot 查看下挂载是否正确
Root 分区为 /dev/sda2
mkdir /mnt/root
mount /dev/sda2 /mnt/root
没有grub目录
grub-install --root-directory=/mnt /dev/sda 安装grub针对/dev/sda盘
ls查下,已经有目录了
没有grub.conf需要自己手工编辑
进入grub目录下编辑grub.conf
编辑为如此即可(同上)然后保存退出重启电脑即可
故障(四)
/etc/fstab 文件错误导致无法开机
vim /etc/fstab
编辑这个文件
随便输入东西,模拟错误
然后输入init 6 重启,系统无法启动,用livecd光盘启动修复
从本地硬盘启动时
按e
按e 将rhgb删除,查看系统进程加载情况,以确定系统问题
修改完成 按b引导进入
发现问题
/etc/fstab 错误
用livecd进入
第二个选项进入
进入命令行方法同上
su - 用管理员权限
fdisk -l 显示硬盘信息判断哪个是根分区
mkdir /mnt/root
mount /dev/sda2 /mnt/root 挂载根分区
编辑fstab
查看文件,错误内容删除保存即可
重启成功进入系统
故障(五)
Root口令丢失
开机在5秒内按任意键进入grub菜单
按e
选第2个再按e
在后面输入1 或者single 进入单用户模式
回车,再按b进行引导启动
可以看出来进入了单用户模式
可以使用passwd root 重新设置密码
也可以使用 passwd -d root 删除root账号
问题解决。