CentOS 系统修复

                                    Centos6 grub损坏恢复操作

说明:

/boot目录中,保存系统内核及开机引导文件,如果文件被删除,将导致系统无法启动,下面是误删/boot文件后的恢复步骤(本实验模拟/boot下的全部文件被删除)

1、删除/boot/下的全部文件

2、重启系统

3、此时开机后会直接进入grub命令行中

因为我们删除了/boot下的全部文件,包括内核和开机引导文件,所以在grub命令行中没办法修复,必须进入救援模式

一:进入救援模式

1、从光盘启动系统

选择Rescue installed system,进入安全模式,回车

2、选择语言类型及键盘布局,保持默认即可,回车

3、询问是否启用网络,选择no,不启用网络(如果需要远程,则选择yes,并配置网络)

4、提示挂载到了/mnt/sysimages目录下

选择Continue,继续进行下一步,提示需切换磁盘根目录到/mnt//sysimages,回车选择OK

5、选择启动shell模式,回车,进入shell模式

二:安装内核及grub引导程序

1、切换磁盘根目录

# choot /mnt/sysimages

2、挂载光盘到/media

# mout /dev/sr0 /media

3、安装kernel软件包

# rpm -ivh /media/Packages/kernel-2.6.32-696.el6.x86_64.rpm --force

注意:安装kernel软件时,会提示软件已经安装,所有我们应该使用--force选项,强制安装

4、切换到/boot目录下,查看文件

# cd /boot ; ls

可以看见,内核文件已经还原,但是还缺少grub引导文件

5、安装grub文件

# grub-install  --root-directory=/ /dev/sda

--root-directory <<<指定root目录所在的父目录,即根目录

/dev/sda <<<指定在哪个设备上安装grub,因为我们的boot分区在/dev/sda中,所有安装在/dev/sda上

# ls /boot/grub/

可以看见grub文件已经基本安装完毕,但是还缺少grub.conf,该文件可以从其他的服务器导入或者手动编辑

手动编辑grub.cfg文件:

# vim /boot/grub/grub.conf

说明:root (hd0,0) <<<指的是内核所在的磁盘分区,(hd0,0)表示0号磁盘的第一个分区,即/dev/sda1,(hd0,1)表示第二个分区。

6、exit退出,并重新启动系统

 

因boot分区损坏而无法启动系统

说明:按上述方法从光盘启动进入救援模式,选择shell模式并切换系统根目录,到此为止此步骤与上述步骤相同

1、判断原因

# df -h

可以看见boot并没有成功挂载

# mount -a

重新尝试挂载/boot分区

分区挂载失败

# lsblk && blkid

可以看见lsblk分区存在,但是无法识别文件系统,所有可以初步判断是文件系统损坏导致boot分区无法挂载

2、修复文件系统

执行命令,修复文件系统

# fsck -y /dev/sda1 

查看文件系统是否修复成功

# blkid

可以看见/dev/sda1分区的文件系统已经成功被识别

# mount -a

# df -h

再次重新挂载,并查看分区是否挂载成功

可以看见分区已经成功挂载,boot分区文件系统成功修复,接下来查看boot分区的文件是否完整,如果boot分区的文件出现丢失,则可以按照第一部分的内容重新生成,进行修复。

系统盘MBR损坏修复

进入救援模式,切换系统根目录,进入gurb

grub> root (hd0,0)

grub> setup (hd0)

grub> exit

重启系统

 

CentOS 7 grub损坏及fstab文件丢失

删除fstab文件和/boot/所有文件

重新启动,进入安全模式

选择1继续,系统会自动读取/etc/fstab文件中的内容,自动挂载分区

此时出现下图报错信息,提示没有任何的Linux分区,那么需要我们手动进行挂载,在此之前,也没办法切换根目录

按回车继续

进入shell之后,先判断分区是标准分区还是LVM逻辑卷

如上图所示,系统盘是基于LVM逻辑卷进行安装的,那么就可以判断一定会有一个基于标准分区的/boot/分区,且boot分区大小一般为200M~1G,则我们大致可以判读sda1是boot分区,sda2里面则是逻辑卷

挂载boot分区,发现里面内容为空,则说明该分区文件已经丢失,重新安装grub和内核文件(可以先尝试修复文件系统,看是否可以恢复)

# vgchange -ay <<<激活逻辑卷

# fdisk -l

可以看到两个逻辑卷,根据名称和大小判断,一个为交换分区,一个为根分区,尝试挂载/dev/mapper/centos-root目录到/mnt

# mount /dev/mapper/centos-root /mnt

# ls /mnt

可以看见上述文件,可以确定是根分区

切换根目录

# chroot /mnt

查看/etc/fstab(应该是不存在或为空)

# vim /etc/fstab <<<写入下面的内容

/dev/mapper/centos-root / xfs defaults 0 0

保存并退出

# exit

# exit

然后重新进入安全模式

可以看到,报错已经消失,分区已经成功挂载。

接下来我们需要按照上面的提示,切换根目录

# chroot /mnt/sysimage

查看boot目录,发现里面内容为空,我们需要重新生成boot目录下的文件

# ls /boot

挂载光盘镜像到/mnt

# mount /dev/sr0 /mnt

重新安装centos内核

# rpm -ivh /mnt/Packages/kernel-3.10.0-327.el7.x86_64.rpm --froce

注:不使用--force选项,会提示内核已经安装,安装不会进行

可以看到内核文件已经生成,但是缺少grub

安装grub

# grub2-install  --root-directory  /  /dev/sda

# ls /boot/grub2

Grub安装完成,但是还缺少grub配置文件,生成grub的配置文件

# grub2-mkconfig  -o  /boot/grub2/grub.cfg

查看配置文件是否生成,退出,重启系统

# sync

# exit

# exit

现在系统应该可以正常启动了,但是我们在/etc/fstab中只写了挂载根目录的命令,所以接下来还需要找到分区,将分区挂载到对应的目录中,并写入fstab文件

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值