在LVM中恢复已删除的逻辑卷
本文介绍如何恢复已删除的逻辑卷,如要执行恢复将使用vgcfgrestore命令。 |
在执行任何逻辑卷管理相关任务时,如果意外的删除了逻辑卷,则可以使用它的数据还原功能来恢复逻辑卷。在下面的步骤中,将演示如何通过删除卷组中的任何一个逻辑卷,并恢复已删除的逻辑卷。
系统环境
Centos8
现有的文件系统
在开始本文之前已经创建了一个逻辑卷,里面并存放了一些文件。
[root@localhost ~]# pvsPV VG Fmt Attr PSize PFree /dev/nvme0n1p2 cl lvm2 a-- <19.00g <2.00g/dev/sda vg_data lvm2 a-- <20.00g 0 /dev/sdb vg_data lvm2 a-- <20.00g 0 [root@localhost ~]# vgsVG #PV #LV #SN Attr VSize VFree cl 1 2 0 wz--n- <19.00g <2.00gvg_data 2 1 0 wz--n- 39.99g 0 [root@localhost ~]# lvsLV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convertroot cl -wi-ao---- 15.00g swap cl -wi-ao---- 2.00g lv_data vg_data -wi-ao---- 39.99g [root@localhost ~]# df -h /data Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_data-lv_data 40G 318M 40G 1% /data
/data目录中的文件如下:
意外删除逻辑卷
为了演示起见,请删除逻辑卷lv_data。
[root@localhost ~]# umount /data [root@localhost ~]# lvremove -v /dev/vg_data/lv_data Do you really want to remove active logical volume vg_data/lv_data? [y/n]: yAccepted input: [y]Removing vg_data-lv_data (253:2)Archiving volume group "vg_data" metadata (seqno 2).Releasing logical volume "lv_data"Creating volume group backup "/etc/lvm/backup/vg_data" (seqno 3).Logical volume "lv_data" successfully removed
使用lvs
命令打印并确认我们已经删除了逻辑卷lv_data:
由于lv_data卷已删除,可以看到卷组vg_data的剩余空间是40G。
[root@localhost ~]# vgsVG #PV #LV #SN Attr VSize VFree cl 1 2 0 wz--n- <19.00g <2.00gvg_data 2 0 0 wz--n- 39.99g 39.99g
开始恢复逻辑卷
现在,让我们看看如何还原已删除的逻辑卷。每当我们执行与LVM相关的任何任务(时,所有内容都将被记录在/etc/lvm/archive.
下。并使用vgcfgbackup
命令备份卷组配置并将其存储在/etc/lvm/backup
下。
[root@localhost ~]# ll /etc/lvm/backup/ total 8 -rw-------. 1 root root 1746 Mar 9 16:27 cl -rw-------. 1 root root 1147 Apr 8 10:20 vg_data [root@localhost ~]# ll /etc/lvm/archive/ total 24 -rw-------. 1 root root 1740 Dec 29 2019 cl_00000-1531402016.vg -rw-------. 1 root root 1740 Mar 9 16:27 cl_00001-790744555.vg -rw-------. 1 root root 1747 Mar 9 16:27 cl_00002-1369752011.vg -rw-------. 1 root root 1150 Apr 8 09:52 vg_data_00000-919482485.vg -rw-------. 1 root root 1155 Apr 8 09:54 vg_data_00001-1289102393.vg -rw-------. 1 root root 1763 Apr 8 10:20 vg_data_00002-1932879749.vg
在上面删除逻辑卷的步骤中,使用lvremove -v /dev/vg_data/lv_data
命令时,可以看到输出的详细信息,有archiving和create backup。
下面列出并检查有多少个卷组元数据备份可用:
[root@localhost ~]# vgcfgrestore --list vg_dataFile: /etc/lvm/archive/vg_data_00000-919482485.vgCouldn't find device with uuid l5rSrt-SRfc-KQNw-Tm29-gx4D-ihBw-Xzum3L.Couldn't find device with uuid v6wYGZ-0dGA-8ecB-kec8-r2zv-gCJi-gulSAD.VG name: vg_dataDescription: Created *before* executing 'vgcreate vg_data /dev/sda /dev/sdb'Backup Time: Thu Apr 8 09:52:49 2021File: /etc/lvm/archive/vg_data_00001-1289102393.vgVG name: vg_dataDescription: Created *before* executing 'lvcreate -l 100%FREE -n lv_data vg_data'Backup Time: Thu Apr 8 09:54:45 2021File: /etc/lvm/archive/vg_data_00002-1932879749.vgVG name: vg_dataDescription: Created *before* executing 'lvremove -v /dev/vg_data/lv_data'Backup Time: Thu Apr 8 10:20:53 2021File: /etc/lvm/backup/vg_dataVG name: vg_dataDescription: Created *after* executing 'lvremove -v /dev/vg_data/lv_data'Backup Time: Thu Apr 8 10:20:53 2021
--list
选项列出与VG有关的元数据备份和存档文件。
我们要恢复的事删除卷组之前的存档,所以选择下面圈出来的/etc/lvm/archive/vg_data_00002-1932879749.vg
文件。
在恢复之前,使用--test
选项来试运行一下:
[root@localhost ~]# vgcfgrestore vg_data -f /etc/lvm/archive/vg_data_00002-1932879749.vg --testTEST MODE: Metadata will NOT be updated and volumes will not be (de)activated.Restored volume group vg_data.
试运行没问题之后,去掉--test
选项,然后再执行一次:
[root@localhost ~]# vgcfgrestore vg_data -f /etc/lvm/archive/vg_data_00002-1932879749.vgRestored volume group vg_data.
可看到成功恢复卷组vg_data
。
-f
选项读取由vgcfgbackup创建的元数据文件。
使用lvs
查看lv_data逻辑卷是否已恢复,并且使用lvscan
查看逻辑卷是否激活:
[root@localhost ~]# lvsLV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convertroot cl -wi-ao---- 15.00g swap cl -wi-ao---- 2.00g lv_data vg_data -wi------- 39.99g [root@localhost ~]# lvscan ACTIVE '/dev/cl/swap' [2.00 GiB] inheritACTIVE '/dev/cl/root' [15.00 GiB] inheritinactive '/dev/vg_data/lv_data' [39.99 GiB] inherit
可看到lv_data已恢复,但是状态是未激活。下一步就激活逻辑卷。
激活逻辑卷
使用lvchange
命令将逻辑卷激活:
[root@localhost ~]# lvchange -ay /dev/vg_data/lv_data [root@localhost ~]# lvscan ACTIVE '/dev/cl/swap' [2.00 GiB] inheritACTIVE '/dev/cl/root' [15.00 GiB] inheritACTIVE '/dev/vg_data/lv_data' [39.99 GiB] inherit [root@localhost ~]# lvsLV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convertroot cl -wi-ao---- 15.00g swap cl -wi-ao---- 2.00g lv_data vg_data -wi-a----- 39.99g
上图可以看到"/dev/vg_data/lv_data"逻辑卷已激活。
挂载并检验
挂载文件系统:
[root@localhost ~]# mount /dev/vg_data/lv_data /data/ [root@localhost ~]# df -h /data Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_data-lv_data 40G 318M 40G 1% /data
可以看到文件都已经存在了。
总结
本文已经成功地从卷组的元数据中恢复被删除的逻辑卷。
在LVM中恢复已删除的逻辑卷相关推荐
- 在LVM中恢复已删除的物理卷
本文中将详细介绍如何从已删除的物理卷或故障磁盘场景中恢复. 系统环境 Centos8 现有的文件系统 下面使用了/dev/sd[a-c]三块磁盘,将他们划入一个卷组,创建两个逻辑卷: # Create ...
- Linux 系统中恢复已删除的文件
注:文章内容仅用于本人日常学习记录 Linux 系统中恢复已删除的文件 当用户意外地删除了一个仍然需要的文件时,大多数情况下,是没有简便的方法可以重新找回或重建这个文件.不过,幸运的是文件是可以通过一 ...
- linux git删除的文件怎么还原,从Git仓库中恢复已删除的分支、文件或丢失的commit...
从Git仓库中恢复已删除的分支.文件或丢失的commit 在使用Git的过程中,有时可能会有一些误操作 比如:执行checkout -f 或 reset -hard 或 branch -d删除一个分支 ...
- outlook从服务器中恢复已删除项目,如何在Outlook中恢复已删除的任务
如果我们知道有哪些装机必备的系统工具,那么在Microsoft Outlook中恢复已删除文件的任务就不会显得如此棘手,令人伤神.有几种高效的已删除邮件恢复方式,用户可以使用它们完成Outlook文件 ...
- 如何从 Android 内部存储中恢复已删除的照片?
我们使用手机录制的照片和视频通常存储在手机的内存中.我们存储它们以记住我们生活的美丽.然而,在管理这些照片的过程中,一些用户却发现自己不小心删除了这些照片,这很尴尬. 如果您的 Android 设备遇 ...
- Android手机和平板资源文件,如何从Android手机和平板电脑中恢复已删除的文件
第3部分:如何从Android手机和平板电脑中恢复已删除的文件 正如我们所看到的,借助为此特定原因设计的专用工具,您仍可以从设备中恢复已删除的文件.最好的Android数据恢复软件之一dr.fone ...
- linux下删除的文件怎么恢复出厂设置,如何在Linux中恢复已删除的文件(机器翻译)...
如果您在Linux中不小心删除了一个文件,不要担心,只要该区域的磁盘尚未被覆盖,您可能仍然可以恢复它.这篇文章将告诉你如何在Linux中轻松恢复被删除的文件. Foremost能够搜索磁盘或原始图像文 ...
- linux disk 清除数据,如何在Linux中使用TestDisk恢复已删除的文件
我们都知道寻找文件而不是找到文件的感觉,即使是在垃圾桶里也是如此. 由于TestDisk ,文件和数据丢失带来的创伤应该结束 - 这是一个免费的开源软件,最初设计用于恢复内存分区并使不可引导的磁盘再次 ...
- photorec_如何在Linux / Ubuntu中使用PhotoRec恢复已删除的文件
photorec Accidentally deleted files or photos? In this tutorial, we'll learn how to recover deleted ...
最新文章
- python哪个代码是正确的字典_Python - 字典(dict) 详解 及 代码
- 【Qt】Qt中的快捷键汇总
- AnalyticDB - 分析型数据库
- String、StringBuilder类连接字符串操作的时间差异
- python建模仿真 matlab_清华大学出版社-图书详情-《仿真建模与MATLAB实用教程》
- Java8新特性:Stream介绍和总结
- 6月14 空控制器和空操作及命名空间
- 前端简单h5播放器的制作
- 主键冲突报什么代码_MySQL主键设计
- MIKE水动力笔记10_潮汐调和分析与绘制同潮时线图
- 构建数据指标预警系统
- Shiro基本入门教程—叩丁狼Java培训
- Caused by: org.elasticsearch.action.search.SearchPhaseExecutionException报错解决
- 深度学习中使用Screen 指令进行离线训练
- ξσ Dicky's GuestBook σξ
- 查看linux网口连接时间,linux检测网口连接状态
- 计算机思维与应用论文,计算机思维论文参考文献 计算机思维核心期刊参考文献哪里找...
- 为什么Integer a=100,b=100时候a==b返回true,而Integer c=1000,d=1000时候c==d返回false
- 球半篮球分析,WNBA:风暴 vs 梦想
- 彻底删除卸载Windows Defender杀毒软件的终极绝招