当我以某种方式删除了 LVM 目录时如何恢复文件

当我以某种方式删除了 LVM 目录时如何恢复文件

我认为我已经损坏了逻辑卷上的目录。我认为这些文件仍然位于逻辑卷(物理卷)上,但我无法获取它们。我将描述设置、我做了什么以及当前的情况。您能建议我如何恢复文件吗?

我在一个卷组中有 3 个 HDD,在 Ubuntu 20.something 系统上保存单个逻辑卷。

TestDisk 提供以下信息:

TestDisk 7.1,数据恢复实用程序,2019 年 7 月 Christophe GRENIER [电子邮件受保护] https://www.cgsecurity.org

TestDisk 是免费软件,并且绝对不提供任何保证。

选择媒体(使用箭头键,然后按 Enter):

磁盘 /dev/sda - 160 GB / 149 GiB - 东芝 MK1646GSX

磁盘 /dev/sdc - 320 GB / 298 GiB

磁盘 /dev/sdd - 250 GB / 232 GiB

磁盘 /dev/sdf - 500 GB / 465 GiB

磁盘 /dev/sdg - 320 GB / 298 GiB

磁盘 /dev/mapper/HP8300--VG-HP8300--LVM - 1070 GB / 996 GiB

clive@clive-EB1033:~$ sudo lvs -o +devices [sudo] clive 密码:

LV VG Attr LSize 池源数据% Meta% 移动日志 Cpy %Sync 转换设备
HP8300-LVM HP8300-VG -wi-ao---- 996.73 /dev/sdc1(0)
HP8300-LVM HP8300-VG -wi-ao- --- 996.73g /dev/sdd1(0)
HP8300-LVM HP8300-VG -wi-ao---- 996.73g /dev/sdf1(0)

逻辑卷挂载为 /mnt/LVM_mount

可以读取该逻辑卷的目录:

clive@clive-EB1033:/mnt$ cd LVM_mount/

clive@clive-EB1033:/mnt/LVM_mount$ ls

Android_ROMS 丢失+找到 数学 CS_exam_solution_videos_2020 lvm-usb-photos temp_Create_folderxx iplayer lvm-usb-youtube Windows_software

逻辑卷中的所有目录都可以打开并访问数据,除了目录 iplayer - 它包含我想要的文件。

我通过连接格式化为 ex-FAT 的 USB 磁盘(上面的 /dev/sdg)然后尝试将内容从该 USB 磁盘复制到目录中来引起问题:/mnt/LVM_mount/iplayer

当我现在尝试列出“iplayer”子目录的内容时,我收到以下错误消息:

clive@clive-EB1033:/mnt/LVM_mount/iplayer$ ls ls: 读取目录 '.': 输入/输出错误

此消息表明为什么我认为我已经损坏了“iplayer”的“目录索引” - 但我认为文件仍然存在 - 并且可以恢复。

我已运行 lvs 和 vgcfgrestore 并获取以下信息,但我不确定如何继续恢复 iplayer 子目录中的文件。 vgcfgrestore 中的最新条目是我更换更大容量 HDD 时成功扩展逻辑卷的结果。

clive@clive-EB1033:/mnt/LVM_mount/iplayer$ sudo lvs [sudo] clive 密码:
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert > HP8300-LVM HP8300-VG -wi-ao- --- 996.73g
根 vgubuntu -wi-ao---- <144.89g
swap_1 vgubuntu -wi-ao---- <3.66g

clive@clive-EB1033:/mnt/LVM_mount/iplayer$ sudo vgcfgrestore --list HP8300-VG

文件:/etc/lvm/archive/HP8300-VG_00001-502071242.vg VG 名称:HP8300-VG
描述:已创建执行 'vgextend HP8300-VG /dev/sdf1' 备份时间:2022 年 12 月 20 日星期二 19:24:59

文件:/etc/lvm/archive/HP8300-VG_00002-22354295.vg VG 名称:HP8300-VG
描述:已创建执行 'pvmove -n HP8300-LVM /dev/sdd1 /dev/sdf1' 备份时间:2022 年 12 月 20 日星期二 19:26:30

** 添加了一些 dmesg **

[56486.269547] dev dm-2 上的缓冲区 I/O 错误,逻辑块 178257935,异步页读取

[56486.269597] dev dm-2 上的缓冲区 I/O 错误,逻辑块 178258176,异步页读取

[56486.269660] dev dm-2 上的缓冲区 I/O 错误,逻辑块 178257922,异步页面读取

[56497.053312] EXT4-fs警告(设备dm-2):htree_dirblock_to_tree:1067:inode#42254337:lblock 0:comm smbd:错误-5读取目录块

[56679.149522] EXT4-fs错误(设备dm-2):__ext4_get_inode_loc_noinmem:4410:inode#42262592:块169050117:comm gvfsd-trash:无法读取itable块

[56679.174426] EXT4-fs错误(设备dm-2):__ext4_get_inode_loc_noinmem:4410:inode#42262601:块169050118:comm gvfsd-trash:无法读取itable块

[56731.873508] EXT4-fs警告(设备dm-2):htree_dirblock_to_tree:1067:inode#42254337:lblock 0:comm pool-org.gnome。:错误-5读取目录块

[59254.561698] EXT4-fs警告(设备dm-2):htree_dirblock_to_tree:1067:inode#42254337:lblock 0:comm ls:错误-5读取目录块

[65724.820675] EXT4-fs警告(设备dm-2):htree_dirblock_to_tree:1067:inode#42254337:lblock 0:comm smbd:错误-5读取目录块

[68095.940286] sdf: sdf1 [68096.103000] buffer_io_error: 1586 个回调被抑制 [68096.103013] dev dm-2 上的缓冲区 I/O 错误,逻辑块 261286896,异步页面读取

[68096.200640] dev dm-2 上的缓冲区 I/O 错误,逻辑块 261286896,异步页面读取

无论如何,我可以“重建”“iplayer”的目录或者我需要做的任何事情来获取文件吗?

答案1

在没有任何其他想法的情况下,我重新启动了 Ubuntu Linux 机器。令人难以置信的是,Linux 软件(我不知道是哪位)检测到并修复了 LVM 目录“iplayer”中的错误。我可以访问 LV 中以前的所有文件。我已经在 Ubuntu 上安装了“Double Commander”软件包。此文件管理器使文件副本从 ex-FAT 格式的 USB 硬盘驱动器排队到 LV 中非常简单,并且不会导致问题中描述的目录问题。

相关内容