RedHat Linux系统故障修复—— grub引导、MBR损坏修复过程

一、故障问题

MBR损坏是一种非常常见的错误,两种情况:1.MBR文件损坏 2.grub目录被误删除

1.首先,MBR是安装在硬盘的第一个扇区上占用了512个字节,其中前446字节是bootloader用于引导操作系统(中间的64个自己用来指定分区,每个分区为16个字节,所以一个操作系统最多有四个主分区,最后两个字节是标志位,用于表示OK或者not ok),它不在分区上,而是位于分区之外,因为分区是对于操作系统而言的,而MBR是用于引导操作系统的,因此现在模拟MBR损坏只要把磁盘上第一个扇区的钱446个字节破坏掉即可。

###########模拟故障命令#######
# dd if=/dev/zero of=/dev/sda bs=400 count=1
# sync

命令含义:从dev目录下取得任意个字符串,去替换/dev/sda中一定数量的字符,这个数量是根据bs和count来计算的,本条命令为取大小为400字节的块,一共取1个,注意bs单位还可以是M和G。这样就破坏掉了MBR分区,现在重新启动系统,如下(破坏的字节数不同所报的错误也是不同的)。

装有Red Hat Enterprise Linux 操作系统的服务器,系统无法启动,只显示光标,如下图所示:

 二、问题修复

1、准备引导挂盘镜像,调整服务器BIOS启动项,使用系统从光驱启动,插入系统光盘,进入救援模式。(挂盘镜像建议和损坏系统版本一致)

 2.如图操作:

 

 

进入shell后,执行chroot /mnt/sysp_w_picpath命令,挂载到系统目录,查看/boot目录的文件,/boot下面主要是grub和kernel,如果没有需要先安装这两个。

3. 进入系统挂载的目录

# chroot /mnt/sysimage

一般把处于resuce模式的系统称为伪系统,把#chroot/mnt/sysimage后看到的称为真正的系统。

修复内核文件:

# exit          ---退回到resecu模式下
# mount /dev/hdc /mnt/source      ---挂载光驱cdrom到/mnt/source目录
# rpm -ivh /mnt/source/Server/kernel-2.6.18-164.e15.i686.rpm--root=/mnt/sysimage/ --force

安装完成后可以到/mnt/sysimage/boot目录下查看。

注:需要修复的三个内核文件在系统盘server目录下kernel-2.6.18.rpm软件包里,所以要挂载光盘之后并安装kernel软件包。

此时,内核已修复完成!再继续修复grub程序

# chroot /mnt/sysimage  进入到已损坏的linux系统中
# grub-install /dev/sda   安装grub程序到/dev/sda
# ls /boot/grub          查看grub目录下是否存在grub.conf文件。如果没有就手动编辑一个。
# vim /boot/grub/grub.conf

手动编辑grub.conf文件内容

title CentOS (2.6.18-164.e15.x86_64)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.18-164.e15.x86_64 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        initrd /boot/initrd-2.6.18-164.e15.x86_64.img

注:一些高版本里为:/boot/initramfs-2.6.32-431.29.2.el6.x86_64.img,以实际系统版本为准。

如果缺少inittab文件先修复inittab

修复/etc/inittab等文件

# rpm -qf /etc/inittab         查询包含inittab文件的软件包
# rpm -qf /etc/rc.d/rc.sysinit   查询包含rc.sysinit文件的软件包
# rpm -qf /etc/rc.d/rc.local   查询包含rc.local文件的软件包

经过rpm –qf查询命令可得知,要修复的文件都包含在initscripts-8.45.rpm这个软件包里面。下一步,要把文件从这个RPM里面分离出来,并还原到/etc目录下.

# exit
# cp /mnt/source/Server/initscripts-8.45.30-2.el5.i386.rpm   /mnt/sysimage/tmp
# chroot /mnt/sysimage
# cd tmp/
# ls
# rpm2cpio initscripts-8.45.30-2.el5.i386.rpm  |cpio -imd    解压软件包到当前目录
# cd etc/
# ls
# cp inittab /etc/
# cp rc.sysinit /etc/rc.d/
# cp rc.local /etc/rc.d/

重启系统即可。

手动编辑配置文件和交互模式二选一,

grub交互模式,修复MBR文件。

# grub
 
grub> root (hd0,0)<span style="white-space:pre">	</span>//设定内核的根分区(只能是hd开头的,无论你是scsi或者ide等其他格式硬盘),注意这个不是我们启动操作系统后的根分区(启动后是位于/boot下,但这只是一个单独分区的挂载点而已,它其实比操作系统更早读入内存之中,因为是它来引导硬盘上的驱动和操作系统) hd(0,0) 即表示hd|(device#,partion#)
 
grub>setup (hd0)<span style="white-space:pre">	</span>//设定MBR安装分区,只要知道硬盘就可以了,不需要指定分区
 
grub>quit<span style="white-space:pre">		</span>//退出grub分区
 
# reboot<span style="white-space:pre">		</span>//重启操作系统

参考:

redhat修复模式安装丢失的包及grub引导修复 – 云原生之路

MBR损坏修复(一)_虚拟机mbr损坏_Brad_Chen的博客-CSDN博客

RedHat Linux系统修复—— grub引导、MBR损坏修复过程_51CTO博客_修复硬盘引导mbr

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值