欢迎,来自IP地址为:54.160.244.62 的朋友


Linux    系统内核中有一个非常实用磁盘管理功能就是LVM,可以方便的管理逻辑磁盘卷的容量。但是如果不小心删除了某个LV卷,卷中的数据是否可以正常恢复呢?答案当然是肯定的,LVM是为内核提供磁盘设备映射的工具,位于磁盘驱动程序最上层,用于灵活的操作磁盘空间。

本教程将模拟删除一个逻辑磁盘卷,并演示如何恢复其中的数据。

1.  首先查看一下本机逻辑磁盘卷的相关信息,可以使用LVS命令:

可以看到,在”centos”卷组中有一个名为”webroot”的逻辑卷,我们将删除这个卷并恢复其中数据。

2.  使用”mount”命令查看”webroot”卷的挂载信息,可以看出,其挂载点为”/webroot”

3.  使用”du”命令查看该目录的详细信息,可发现该目录中有一些文件:

4.  方便测试起见,在该目录中创建一个名为”test”的测试目录:

5.  现在,我们模拟删除这个逻辑卷,需要注意的是我们不能删除已经挂载的卷,所以在删除逻辑卷前需要把这个卷卸载:

6.  逻辑卷被删除后,使用”lvs”命令就不能查看到该卷的信息,保存在该卷中的数据都会丢失。其实我们是可以把卷中的数据恢复的,现在就演示如何恢复数据。由于”/etc/lvm/archive”目录保存了逻辑卷的归档信息,只不过我们不能直接查看罢了:

7.  虽然不能直接查看归档文件,但是我们一样可以使用这些文件。我们操作的卷组名为”centos”,则归档文件名均以”centos_”作为前缀。问题是我们如何确定哪个文件才是我们需要使用的呢?这里就需要使用”vgcfgrestore”命令来显示VG卷组的详细信息,其命令格式为” vgcfgrestore –list <name of volume group>”,以下示例显示:

8.  仔细观察命令输出结果会发现每个文件都保存了一些对于逻辑郑的操作信息,示例中的内容为:

File:		/etc/lvm/archive/centos_00005-1362501833.vg
VG name:    	centos
Description:	Created *before* executing 'lvremove /dev/centos/webroot'
Backup Time:	Sun Apr 21 23:40:40 2019

其描述为”Created *before* executing ‘lvremove /dev/centos/webroot'”,表示文件”/etc/lvm/archive/centos_00005-1362501833.vg”为删除逻辑卷”/dev/centos/webroot”之前的归档,正是我们需要使用的文件。

9.  现在使用”vgcfgrestore”命令恢复”/etc/lvm/archive/centos_00005-1362501833.vg”文件的内容,命令执行完成后,就会把”/dev/centos/webroot”逻辑卷恢复回来:

10.  如果使用”lvs”命令,可以发现被删除的磁盘卷已经出现了,但是目前并不能使用:

11.  恢复的逻辑卷不能使用的原因很简单,是因为该卷状态为未激活,可以使用”lvscan”命令查看各个逻辑卷的信息:

12.  想要激活这个逻辑卷,就要使用”lvchange”命令:

13.  最后,把已经激活的逻辑卷重新挂载到系统,看看文件是否还在呢:

可以看到,被删除的逻辑卷已经成功挂载到系统中,并且卷中的数据也恢复出来了。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注