如何使用 Linux 解锁 BitLocker 加密卷

如何使用 Linux 解锁 BitLocker 加密卷

我有一个 Windows 10 系统,其 c:\ 驱动器使用 bitlocker 进行保护。最近在 Windows 升级期间,升级失败,现在每当我尝试启动笔记本电脑时,我都会进入恢复重启循环。我可以重新映像笔记本电脑,但我需要先从中恢复一些文件。

我有一个实时的 ubuntu 20.4 闪存驱动器,上面安装了 dislocker 和 libbde。我从今天的 git 存储库编译了 dislocker,并从 20200724 版本编译了 libbde。

当我以如下方式运行 dislocker 时:

root# dislocker -l dis.log -v -V /dev/nvme0n1p3 -p -- /mnt/dis

然后输入恢复密钥,我收到一条消息,说 MAC 不匹配并且解锁器中止。

当我尝试bdeinfo /dev/nvme0n1p3

bdeinfo 表示由于不受支持的 FVE 元数据条目版本,它无法打开源卷。

我还能做些什么来解密卷并恢复我的文件吗?

答案1

安装dislocker后,在Linux上使用Bitlocker的通常方法如下。

  1. 创建两个文件夹:

     sudo mkdir -p /media/bitlocker
     sudo mkdir -p /media/bitlockermount
    
  2. 使用 fdisk 或 lsblk 识别使用 BitLocker 加密的分区,但使用 GParted 更容易,因为它清楚地指示“bitlocker”。

  3. 解密并挂载 BitLocker 加密的文件系统:

     sudo dislocker <partition> -u<password> -- /media/bitlocker
     sudo mount -o loop /media/bitlocker/dislocker-file /media/bitlockermount
    

    对于 NTFS,第二个命令是:

     sudo mount -t ntfs-3g -o loop /media/bitlocker/dislocker-file /media/bitlockermount
    

    对于 exFAT(需要 exfat-fuse 包):

     sudo mount -t exFAT-fuse -o loop /media/bitlocker/dislocker-file /media/bitlockermount
    
  4. 要自动挂载 BitLocker 分区,请在中添加以下内容/etc/fstab

     <partition> /media/bitlocker fuse.dislocker user-password=<password>,nofail 0 0
     /media/bitlocker/dislocker-file /media/bitlockermount auto nofail 0 0
    

有关详细信息,请参阅文章 如何在 Linux 上挂载 BitLocker 加密的 Windows 分区

答案2

不确定这是否能解决您的问题,但是:Bitlocker 元数据的多个副本分布在卷中(一个在开始处,其他副本 - 通常还有两个 - 间隔大致均匀)。您可以使用十六进制编辑器查看这些区域,特别是找出其他两个区域的位置。dislocker 的标头描述了数据格式,尽管不完美(一些未知字段)。

然后,如果任何值看起来不合适,或者尤其是当位置之间存在差异时,您可以尝试编辑字段(在备份之后!)。使用dd可能是用另一个部分的内容覆盖一个部分的最简单方法,但请注意,它的语法和用法有点过时(并备份覆盖的部分!!)。

您还可以dislocker在调试器下运行,这样您就可以准确地检查错误发生的位置。我已经有几年没有看过 dislocker 源代码了,但那时它非常易读,所以应该不难理解。请记住,这可能不会直接解决问题,只是告诉您问题出在哪里,这样您就不必通过查看十六进制转储并手动交叉引用数据结构来解决问题。不过,您可以告诉 dislocker 忽略损坏的元数据部分或类似内容,而无需手动编辑任何内容。

相关内容