问题复现
原本有一台GIS地图服务器存放大量数据,突然有一天磁盘满了,于是运维人员照常进行磁盘扩容。但由于误操作,导致使用fdisk的时候把分区表损坏了,表现如下:
这里可以看到启动时能看到xvda被分为了xvda1和xvda2,其中操作系统就安装在xvda2上
随后系统无法启动,提示进入紧急模式(emerqency mode)
此时运维还想通过重装系统的方式来还原数据,但由于整个xvda2分区表损坏,其中的逻辑分区也无法区分出来,显示Unknown。
修复方法
本地紧急模式进入后除了少数的命令可以用以外,绝大多数命令都没有对应的程序,所以这条路堵死。
既然我们有了OpenEuler的ISO,则用它引导启动,进入LiveCD模式进行修复。
启动后选择Trobleshooting菜单
再选择Rescue a openEuler system选项
在菜单里选择1,然后再按回车进入Shell
输入nmtui可视化配置网络
因为在急救模式下无法使用yum进行软件安装,此时我们可以用wget下载一个TestDisk进行分区表修复,下载地址位于:https://www.cgsecurity.org/wiki/TestDisk_Download
我们在另外一台电脑上把链接地址抄写下来,到系统里用下面的指令下载
wget https://www.cgsecurity.org/testdisk-7.3-WIP.linux26-x86_64.tar.bz2
然后解压并运行:
tar -xvjf testdisk-7.3-WIP.linux26-x86_64.tar.bz2
cd testdisk-7.3-WIP
chmod a+x testdisk_static
./testdisk_static
接下来我们扫描一下分区,试图重建分区表:
找到之后,我们可以用上下来选择不同的分区,用左右键来设置分区类型,设置妥当之后按下回车,选择最右边的Save选项
推出LiveCD,重启之后即可进入系统。