CentOS 系统修复

                                    Centos6 grub损坏恢复操作

说明:

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

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

CentOS 系统修复_第1张图片

2、重启系统

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

CentOS 系统修复_第2张图片

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

一:进入救援模式

1、从光盘启动系统

CentOS 系统修复_第3张图片

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

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

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

CentOS 系统修复_第4张图片

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

CentOS 系统修复_第5张图片

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

CentOS 系统修复_第6张图片

CentOS 系统修复_第7张图片

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

CentOS 系统修复_第8张图片

二:安装内核及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上

CentOS 系统修复_第9张图片

# 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

CentOS 系统修复_第10张图片

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

# mount -a

重新尝试挂载/boot分区

分区挂载失败

# lsblk && blkid

CentOS 系统修复_第11张图片

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

2、修复文件系统

执行命令,修复文件系统

# fsck -y /dev/sda1 

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

# blkid

CentOS 系统修复_第12张图片

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

# mount -a

# df -h

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

CentOS 系统修复_第13张图片

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

系统盘MBR损坏修复

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

grub> root (hd0,0)

grub> setup (hd0)

grub> exit

重启系统

 

CentOS 7 grub损坏及fstab文件丢失

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

重新启动,进入安全模式

CentOS 系统修复_第14张图片

CentOS 系统修复_第15张图片

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

CentOS 系统修复_第16张图片

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

CentOS 系统修复_第17张图片

按回车继续

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

CentOS 系统修复_第18张图片

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

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

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

# fdisk -l

CentOS 系统修复_第19张图片

可以看到两个逻辑卷,根据名称和大小判断,一个为交换分区,一个为根分区,尝试挂载/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

然后重新进入安全模式

CentOS 系统修复_第20张图片

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

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

# 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选项,会提示内核已经安装,安装不会进行

CentOS 系统修复_第21张图片

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

安装grub

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

# ls /boot/grub2

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

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

CentOS 系统修复_第22张图片

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

# sync

# exit

# exit

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

你可能感兴趣的:(CentOS 系统修复)