CentOS bootloader 修复


    有时候可能因为误操作等其他原因导致CentOS bootloader损坏,从而无法正常启动系统,此时我们做的就是要通过系统光盘修复模式安装grub 修复bootloader

    

1
问题重现:# dd if=/dev/zero of=/dev/sda bs=200 count=1   //这就就破坏了bootloader导致无法启动

一、环境配置:

1、光盘引导  选择修复模式   然后“Enter”,如图

CentOS bootloader 修复

2、选择语言

CentOS bootloader 修复

3、选择键盘格式

CentOS bootloader 修复

4、设置网络,通过Tab键选择Yes,

CentOS bootloader 修复

在此界面选择OK

CentOS bootloader 修复

此界面可以通过Tab 和空格键 进行选择,如果对网络有要求的话要输入相应的IP,

CentOS bootloader 修复

CentOS bootloader 修复

5、 Rescue 模式  会尝试去找原来的跟文件系统,如果找到会挂在到/mnt/sysimage目录下;选择Continue--继续,【Read only 只读】

CentOS bootloader 修复

6、找到原来系统并将其挂载在/mnt/sysimage 目录下

CentOS bootloader 修复

CentOS bootloader 修复

7、选择修复的方式 由于我们是在shell下进行修复,所以此时选择“Shell Start Shell”然后OK
    fakd Run diagnostic 运行诊断程序

CentOS bootloader 修复

二、修复方式

    针对bootloader有两种修复方式,分别是使用grub 和grub-install 进行修复

    1、方法一:

    方法一:

1
2
3
# grub
# grub> root (hd0,0)
# grub> setup (hd0) //指明 安装在哪个硬盘上

CentOS bootloader 修复

2、方法二、

1
2
3
    # chroot /mnt/sysimage
    # grub-install /dev/sda     
   //即使已经chroot成功,但cat /proc/;ls /dev/ 显示的都是光盘系统上的伪文件信息

CentOS bootloader 修复

无论哪一种方式都可以修复bootloader  然后重启系统 就可以正常启动我们的CentOS 了


三、bash损坏后,无法正常操作Linux系统的修复

1
2
问题重现:# mv /bin/bash /tmp 
由于CentOS模式是bash并且其各种脚本,都是在bash基础上运行起来的,如果系统没有了默认bash,其将无法进任何操作,包括关机与重启

其修复方式同样有两种:

    方式一:

        通过修复模式进入tcsh 然后使用光盘安装bash

1
2
3
4
    # chroot /mnt/sysimage /bin/tcsh    //bash移除了但 tcsh还在
    # mkdir /mnt/bas
    # mount /dev/cdrom /mnt/bas
    # rpm -ivh --replacepkgs /mnt/bas/Packages/bash-4.1.2-29.e16.x86_64.rpm

    

CentOS bootloader 修复

CentOS bootloader 修复


方法二、

1
2
3
4
5
    直接在修复模式安装
     
    # mkdir /mnt/bas    //创建挂载点
    # mount /dev/cdrom /mnt/bas    //挂在光盘
    # rpm -ivh --replacepkgs /mnt/bas/Packages/bash-4.1.2-29.e16.x86_64.rpm --root=/mnt/sysimage

CentOS bootloader 修复



OK  至此 已经修复完成  接下来就可以重启系统 见证奇迹了................



本文转自 1inux 51CTO博客,原文链接:http://blog.51cto.com/1inux/1636293