我的硬盘在对手机进行 MTP 安装后损坏了。它是在 Fedora Core 20 下使用默认值创建的。本来我以为是做ext4分区的。我尝试将其安装为 ext4,但无法安装,并且 fsck 报告损坏的超级块。 TestDisk 程序也无法确定分区是什么。出于绝望,我创建了新的超级块,如下所示:
mke2fs -n -b 2048 /dev/sdb3
分区仍然无法挂载。后来从 grub.cfg 文件中看到以下行
linuxefi /vmlinuz-3.19.8-100.fc20.x86_64 root=/dev/mapper/fedora_dfl-root ro rd.lvm.lv=fedora_dfl/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=fedora_dfl/root rd.luks.uuid=luks-a0d2613e-ce2a-4a6b-96cf-b999b3a36ab8 rhgb quiet LANG=en_US.UTF-8
我的猜测是,我创建了一个加密卷,但忘记了我这样做了。幸运的是,我只使用了几个密码,因此猜测我使用的是哪个密码应该不会太难。
在一个完美的世界里,我希望能恢复完整的音量。不过,我希望能拿回一些文件。
答案1
这完全取决于您是否实际上覆盖了分区的开头。如果有,除非您备份了密钥,否则您的数据将无法恢复。 (不是密码:密钥。)如果没有,只需打开加密卷并正常提供密码即可。
该密码仅用于生成密钥加密密钥。该密钥加密密钥又仅用于解密数据加密密钥。数据加密密钥是您获取任何有用数据所需的。这种两层结构的主要原因是您可以拥有多个密码而无需拥有加密数据的多个副本,并且您可以更改密码而无需重新加密所有数据。
数据加密密钥(以加密形式)存储在分区最开始的一个或多个密钥槽(与密码一样多)中的前几千字节中(通常在第一个千字节中,如果您定义了单一密码)。
如果您只运行mke2fs -n -b 2048 /dev/sdb3
,由于该选项,实际上不会修改任何内容-n
。但如果你mke2fs
没有运行-n
,钥匙就会丢失。如果你运行e2fsck
并且它改变了某些东西,那么钥匙很可能丢失了。
跑步file -s /dev/sdb3
。如果这告诉您您有一个 LUKS 卷,那么标头可能完好无损,因此您所需要做的就是记住密码。如果这告诉您其他信息,那么标头可能已被覆盖,您需要密钥的备份来恢复任何内容。