Arch LinuxでBitLockerドライブを起動時に自動マウントする

Mido のアバター画像

Mido

Arch Linux

2分

490字

目的

LinuxとWindowsのデュアルブート環境で、まれにWindows側のファイルをLinux側からアクセスしたいことがある。様々な事情でWindowsをBitLockerで暗号化している場合、アクセスの前にアンロックが必要である。

起動してからアンロック・マウントするだけならば、cryptsetupを使用して次のようにすればよい。

Terminal window
$ sudo cryptsetup bitlkOpen /dev/nvme0n1pX win
Enter passphrase for /dev/nvme0n1pX: XXXXX-XXXXX-XXXXX-...-XXXXX # BitLockerの回復キー
$ sudo mount -t lowntfs-3g /dev/mapper/win /mnt/win

これを手動で行うのは面倒なので、できれば起動時に自動的にアンロックからマウントまでしてほしい。

手順

Systemd環境のLinuxでは、/etc/crypttabを用いて起動時にBitLockerドライブをアンロックすることをサポートしている1

次の手順で設定する。
Arch Linuxを対象としているが、Systemdを使用しているLinuxディストリビューションであれば同様の方法で設定できるはずである。

  1. キーファイルを適当な場所に配置する。内容はBitLockerの回復キーで、末尾に改行が含まれていてもよい。

    Terminal window
    $ echo "XXXXX-XXXXX-XXXXX-...-XXXXX" > /etc/cryptsetup-keys.d/win.key
  2. /etc/crypttabに次の行を追加する。

    /etc/crypttab
    win UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX /etc/cryptsetup-keys.d/win.key bitlk

    ここで、win/dev/mapper/winにマッピングされるデバイス名である。3番目にキーファイルのパスを、4番目にbitlkオプションを指定する。

  3. /etc/fstabのマウントが/dev/mapperを使うように修正する。

    /etc/fstab
    /dev/mapper/win /mnt/win lowntfs-3g defaults 0 0
  4. 再起動する。

ルートファイルシステムのマウント後にアンロックが行われるため、initramfsの再生成は必要ない2

ここまで行った上でlsblkを叩くとうまくいっているかが確認できる。

Terminal window
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 1.8T 0 disk
...
├─nvme0n1pX 259:X 0 354.2G 0 part
└─win 253:Y 0 354.2G 0 crypt /mnt/win
...

脚注

  1. https://www.freedesktop.org/software/systemd/man/latest/crypttab.html#bitlk ↩︎

  2. 起動前にできないか/etc/crypttab.initramfsに書いてみたが、なぜかアンロックがうまくいかなかった。 ↩︎