ps: 红字字体为重要部分, 仔细看
linux
这次实验目的: 在工做中, 不免会遇到grub损坏, 如今来模拟grub损坏后修复过程。ios
1、 第一阶段修复MBR扇区故障;shell
1. 咱们利用一条命令来把MBR的前446字节覆盖的方法来模拟第一阶段vim
[root@Centos1 ~]# dd if=/dev/zero of=/dev/sda bs=446 count=1bash
if=文件名: 输入文件名, 缺省为标准输入. 即指定源文件。网络
of=文件名: 输出文件名, 缺省为标准输出. 即指定目的文件。app
ibs=bytes: 一次读入bytes个字节, 即指定一个块大小为bytes个字节。ide
bs=bytes: 同时设置读入/输出的块大小为bytes文件。字体
count=blocks: 仅拷贝blocks个块,块大小等于ibs指定的字节数。spa
[root@Centos1 ~]# init 6 #重启完后进不了系统
2. 挂载系统光盘, 进入救援模式;
①. 进入bios, 找到boot选项, 将CD-ROM调整为第一系统项;
②. 选择Rescue installed system, 进入救援模式;
③. 选择语言.默认便可, 按tab键移动到OK选项;
④. 选择键盘, 默认便可, 按tab键移动到OK选项;
⑤. 由于咱们放入了本地光盘,因此这里也保持默认便可, 按tab键移动到OK选项;
⑥. 根据本身的实际需求是否开机网络, 本人选择no, 按tab键移动到OK选项;
⑦. 选择默认便可,默认将Rescue环境挂载到/mnt/sysp_w_picpath, 按tab键移动到OK选项;
⑧. 选择进入模式, 这里本人选择shell模式, 按tab键移动OK选项;
⑨. 进入root环境, 安装grub;
bash-4.1# chroot /mnt/sysp_w_picpath #进入到root环境
sh-4.1# grub-install /dev/sda #安装grub到第一块硬盘
sh-4.1# exit
⑩. 将光盘弹出, 重启操做系统, 便能进入系统;
bash-4.1# reboot #重启操做系统
2、 第二阶段模拟/etc/grub.conf丢失;
1. 删除grub.conf配置文件;
[root@Centos1 ~]# rm -rf /boot/grub/grub.conf #删除grub.conf配置文件
疑问: 不少人会问什么不删除/etc/grub.conf, 通过本人推测/boot/grub/grub.conf作软链接到/ect/grub.conf, 因此说删除/etc/grub.conf后系统会到/boot/grub目录下找grub.conf文件;
[root@Centos1 ~]# init 6 #重启操做系统
2. 开机后, 没法进入系统, 会提示grub>字样;
3. 设置grub的根设备为linux内核所在分区, 由于个人/boot分区安装在第一块的第一个分区, 因此设置为(hd0,0), 注意这里不分IDC硬盘和SCSI硬盘;
假设你不知道包含内核文件等引导文件的/boot分区所在位置, 能够经过尝试进行, 先输入“root (hd0,”而后按tab键, 其中后面写的0X83都是分区都有多是/root分区, (0X82的swap分区, 那就不用试了)
grub> root (hd0,1)
4. 补全内核文件以后, 还须要在后面设置内核加载权限为只读ro, 并经过"root="指定根分区设置文件的位置;
grub> kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/sda2
5. 加载内核镜像文件
grub> initrd /initramfs-2.6.32-358.el6.x86_64.img #能够按tab键补全
6. 引导系统
grub> boot
解释: 上图选择的分区不对, 关闭电源继续. 重复以上操做.
grub> root (hd0,1)
grub> kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root #由于个人是LVM卷。
grub> initrd /initramfs-2.6.32-358.el6.x86_64.img #能够按tab键补全
grub> boot
7. 编写grub.conf文件, 否则下次还会进入到grub>模式;
[root@Centos1 ~]# vim /boot/grub/grub.conf #编辑grub.conf配置文件
[root@Centos1 ~]# cat /boot/grub/grub.cof
default=0 #默认启动第一个引导
timeout=5 #在菜单到启动系统停留时间,5秒。
title kernel-2.6.32 #启动项目名称
root (hd0,1) #boot所在位置
kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/UUID="51e646df-c73b-4d07-a639-ba010bc02e4d" TYPE="ext4" #内核版本及目标位置
initrd /initramfs-2.6.32-358.el6.x86_64.img #加载内核文件路径
[root@Centos1 ~]# init 6 #重启系统