ディスク暗号化を設定する動機は?
ちょうど、Arch LinuxをインストールしていたラップトップマシンをNixOSに移行するタイミングで、 それなりに持ち歩くマシンなので、前々から暗号化したいな~と思っていたのでこのタミングでディスク暗号化のされたインストールを行いました。
Arch LinuxからNixOSに移行した事や後から設定したセキュアブートについてはまた別の記事にしようと思います。
ディスクの構成
インストール先のディスク(以降では、/dev/sdaとします)には、以下の表のようにgdiskでパーティションを直接(LVMは使用していない)設定しました。
| partition | mounting point | capacity | hexcode |
|---|---|---|---|
| /dev/sda1 | /boot | 1 GiB | ef00 |
| /dev/sda2 | / | 残り全て | デフォルト値 |
このとき、 暗号化するパーティションは/すなわち/dev/sda2のみで、
/dev/sda1は暗号化せずに平文のままにします。
暗号化されたインストール
LUKSによる/の暗号化
まず以下のコマンドで、/dev/sda2をLUKSによって暗号化します。
|
|
続いて、暗号化された/dev/sda2を以下でopenします。
|
|
この時openされたボリュームは以降では/dev/mapper/cryptsdaとして利用できます。
インストール
ここまでで、ディスクパーティションが用意できたので、インストール作業を進めていきます。
まず/boot,/を以下でそれぞれvfat,ext4にフォーマットします。
|
|
ファイルシステムを用意できたので、続いてマウントを以下のように行います。
|
|
ここまで来たらあとは通常のインストールと同じです。
まず、/mnt以下にconfigを生成します。
|
|
参考にした以下の記事では、起動時にディスクの復号を行う設定を手で追加していました。
しかし、インストールを行なった時には(2025 12/7)、configを生成した段階で、/mnt/etc/nixos/hardware-configuration.nixに以下のような設定が生えて、特にLUKS固有の設定されて特に追加の設定は不必要でした。
|
|
最後に、
|
|
を実行すればインストールが実行されます。無事インストールに成功するとパスワード設定を促され再起動します。
再起動時に途中でLUKSのパスワードを求められるので、それを入力してから無事起動できれば成功です。
後はお好みに/etc/nixos/configuration.nix を設定するなり、flake化するなりお好みにしてください。