取消删除 GNU/Linux 上 LUKS 加密、btrfs 格式分区上包含文本文件的特定文件夹

取消删除 GNU/Linux 上 LUKS 加密、btrfs 格式分区上包含文本文件的特定文件夹

如何“取消删除”系统上充满文件的文件夹GNU/LINUX,其中分区LUKS使用加密和格式化btrfs *

在我的Debian Stable (currently Bullseye)机器上,我的所有数据都位于LUKS加密分区中(除了/boot)。在该加密分区上,我使用 LVM 来组织不同的卷**,这些卷使用 btrfs 进行格式化,这是我的实际数据所在。

所以我的磁盘设置如下:

lsblk -o path,type,fstype,mountpoint 
PATH                            TYPE  FSTYPE      MOUNTPOINT
/dev/sda                        disk              
/dev/sda1                       part  ext2        /boot
/dev/sda2                       part              
/dev/sda5                       part  crypto_LUKS 
/dev/sr0                        rom               
/dev/mapper/sda5_crypt          crypt LVM2_member 
/dev/mapper/vg-root             lvm   btrfs       /
/dev/mapper/vg-var              lvm   btrfs       /var
/dev/mapper/vg-swap             lvm   swap        [SWAP]
/dev/mapper/vg-tmp              lvm   btrfs       /tmp
/dev/mapper/vg-home             lvm   btrfs       /home

在我的一个分区中,我不小心删除了***一个/home/USERNAME/mail/somefolderfullofimportantmessages充满电子邮件的文件夹 ( )(文本文件,因为我使用的是maildir- 格式)。

虽然我能够找到一些工具来恢复丢失的文件,但它们都有局限性,例如仅适用于extX-filesystems(例如extundelete)或仅适用于图像或整个分区(例如foremost)或仅适用于特定文件类型(例如testdiskphotorec)。

就我而言,最合适的工具是应用btrfs restore-命令 **** 经过与它的使用方式斗争了相当长的时间后regex(或使用btrfs-undelete- 工具这里),但是这样我只能“重新发现”文件夹路径中的一些未删除的文件,但不能“重新发现”已删除的文件。

为什么会这样?这可能是由于LUKS-加密造成的吗?如果是:我还应该/可以做什么?


*免责声明:我有一个备份,并且能够从那里恢复所有内容,但让我们只是为了证明这个备份不存在。是的,我知道,如果你没有备份,那是你自己的错

**是的,我知道,我本来可以使用btrfs subvolumes,但我用来安装系统的自动安装程序没有提供该选项。但在我的下一次安装中,我计划摆脱LVM.

***从技术上讲,我曾经isync/mbsync将远程IMAP文件夹(不受我的管理控制)与本地文件夹同步。但由于某种原因(我不明白),该工具认为我的本地文件夹是空的,因此向远程文件夹发送了“删除所有内容”命令。下次我执行同步时,该工具删除了我的本地文件夹,因为它假定我的远程IMAP文件夹是最新的。

****在没有外部启动驱动器的情况下做到这一点很棘手。我切换到 a tty,杀死了所有访问/home(使用lsof /home)的进程,然后卸载/home(在屏蔽了一些systemd持续访问/home且不想停止的服务之后),这样我就能够执行该btrfs restore -Dv /dev/mapper/vg-home --path-regex '^/(|home(|/USERNAME(|/mail/(|/.*))))$' /tmp命令(-Dis --dry-run,仅当您删除它时确保您不会意外炸毁您的系统)。

相关内容