最近,我在未加密的 ext4 USB 记忆棒上存储了 LUKS 加密驱动器的随机密钥文件,因为我在操作系统之间并且需要能够访问它。后来,我安装了新操作系统,我将密钥文件移至装有操作系统的驱动器,并将其从 USB 驱动器中删除。
删除文件一段时间后,操作系统出现故障,我决定重新安装,忘记先备份密钥文件。因此,我认为我唯一的希望是尝试从 USB 驱动器中找到已删除的密钥文件。
我尝试解锁的驱动器包含备份和其他数据,其中最值得注意的是我的密码管理器的文件。我不确定这是唯一的副本,但我的下一个猜测是当前丢失的 SD 卡,我宁愿能够恢复所有数据。
到目前为止,我已尝试通过ext4magic -m
在 USB 驱动器的映像上运行来恢复文件。完成后,我查看了application/octet-stream
恢复文件的目录,并通过在文件上运行将其范围缩小到一个文件file
(大多数文件实际上不是application/octet-stream
!),然后vim
检查其余文件以查看它们是否看起来像随机数据。我尝试用这个文件解锁磁盘,但失败了。
我还应该做什么来尝试恢复我的密钥文件?
答案1
最坏的情况是,您可以尝试读取 USB 驱动器的每个块,选择适当的长度,然后尝试将其作为密钥。
我不会抱太大希望。删除的数据可能已被“修剪”,从而返回到磨损均衡池中。
命令的起点:
dd if=<device> skip=<block-number> bs=4096 count=1 \
| dd bs=<key-length> count=1 \
| cryptsetup open ... --keyfile - ...
然后,这将处于可能的块编号的循环中,并且我不会排除任何内容。