BitLockerで暗号化されたストレージをLinuxでマウントするためのdislocker

OS: Windows 10 Pro ver 1709
OS: Ubuntu Desktop 16.04 日本語 Remix

起動しなくなったWindows10のマシンを寄越されて中のデータを取り出せるか問われたことがあるけれどもBitLockerで暗号化されているからLinuxで気軽にマウントしてアクセスするというわけにいかない。然し乍らLinuxからでも回復キーさえあれば復号して内部のデータへアクセスできるようなツールを拵えた人がいるようでほんとうにすごいと関心したものである。先ずはUbuntu Desktop 16.04 日本語 Remixを焼き付けたUSBの起動ディスクで以ってUbuntuを起動する。

そうしたら必要なパッケージをどんどこインストールしてゆく。なお、libmbedtls-devがないとdislockerをcmakeする際に「-- Could NOT find POLARSSL」というエラーで止まってしまった。またlibfuse-devがないと「-- Could NOT find FUSE」というメッセージが出る。cmakeの処理自体は恙無く終わったように見えるけれどもmakeを実施するとfuse.hが無いと言う咎で処理が止まるので結局は必要なのである。あとはdislockerをインストールするばかりである。

$ sudo apt install git cmake libmbedtls-dev libfuse-dev
$ git clone git://github.com/Aorimn/dislocker.git
Cloning into 'dislocker'...
remote: Counting objects: 3368, done.
remote: Total 3368 (delta 0), reused 0 (delta 0), pack-reused 3368
Receiving objects: 100% (3368/3368), 859.56 KiB | 484.00 KiB/s, done.
Resolving deltas: 100% (2336/2336), done.
Checking connectivity... done.

$ cd dislocker
$ cmake .
$ make
$ sudo make install

次は下準備としてディレクトリを2つ作成する。それから回復キーも予め用意しておく。回復キーが無いともはや為す術がない。

$ sudo mkdir /media/bitlocker /media/win10
回復キーの内容の一例

それからdmesgやlsblkなどでWindows10がインストールされていると思しきデバイスファイルを探る。今回のケースでは/dev/sdaがそれであった。/dev/sdaをfdiskで詳らかに見てゆくとこういう具合である。BitLockerのロックを解除したいパーティションは4番目にあることがわかった。

$ sudo fdisk -l /dev/sda
(snip)
デバイス     Start 最後から セクタ  Size タイプ
/dev/sda1     2048   1023999   1021952  499M Windows recovery environment
/dev/sda2  1024000   1226751    202752   99M EFI System
/dev/sda3  1226752   1259519     32768   16M Microsoft reserved
/dev/sda4  1259520 125827071 124567552 59.4G Microsoft basic data

あとはdislockerで以って/dev/sda4のロックを解除する。操作中にヘマをするといけないから-rオプションでリードオンリーにしておくと安心感がある。なお誤って関係の無いパーティションのロックを解除しようとすると「[ERROR] The signature of the volume (NTFS ) doesn’t match the BitLocker’s ones (-FVE-FS- or MSWIN4.1). Abort.」というようなメッセージを頂戴して終いであった。処理が終わると/media/bitlockerの直下にdislocker-fileという一つのイメージファイルが生まれるので、これをループバックデバイスとしてマウントする。するとBitLockerによって暗号化されていたストレージの内容がとうとう明らかになった。

$ sudo dislocker -r -V /dev/sda4 -p153659-674410-262823-201102-193336-410465-209352-219032 -- /media/bitlocker
$ sudo ls -lh /media/bitlocker/dislocker-file
-r--r--r-- 1 root root 60G  1月  1  1970 /media/bitlocker/dislocker-file

$ sudo mount -r -o loop /media/bitlocker/dislocker-file /media/win10/

あとは好き放題データをコピーするなり内容を検めることができる。飽きたらアンマウントするのが良かろうとおもう。

$ sudo umount /media/win10

参考:
Aorimn/dislocker
Use (Windows) BitLocker-encrypted drive on Ubuntu 14.04 LTS