ノートパソコンや外付けHDD・SSDを紛失したとき、ログインパスワードだけではディスクを取り外して読み取られる危険を防げません。Debianでは、LUKSとdm-cryptを使って保存データを暗号化できます。この記事では、Debianのインストール時にシステム領域を暗号化する方法と、既存の外付けディスクをLUKS2で暗号化する方法を、注意点や確認手順を含めて解説します。
対象:Debian 13.6(trixie)/Debian 12.15(bookworm) 最終確認:
- これからDebianをインストールする場合は、インストーラーの「ディスク全体を使い暗号化LVMをセットアップする」が最も簡単です。
- すでにDebianが入っているシステムディスクは、重要データをバックアップしてから暗号化構成で再インストールする方法が安全です。
- 外付けHDD・SSDやデータ用パーティションは、
cryptsetupでLUKS2形式にできます。 - 暗号化を解除するパスフレーズを忘れ、ほかの有効なキーもない場合、データは原則として復旧できません。
- 暗号化は盗難時の読み取り対策であり、故障・誤削除・ランサムウェアに備えるバックアップの代わりにはなりません。
インストーラーの暗号化LVMは選択したディスクのデータを消去します。また、cryptsetup luksFormatは指定したパーティションを新しい暗号化領域として初期化します。デバイス名を1文字間違えるだけで別のディスクを失う可能性があります。必要なデータを別の物理媒体へコピーし、実際に開けることを確認してから進めてください。
目的に合う暗号化方法を選ぶ
「ディスクを暗号化する」といっても、Debianを入れる内蔵SSDと、すでにデータが入っている外付けHDDでは適した方法が異なります。最初に次の表で判断してください。
| 目的・現在の状態 | 適した方法 | データの扱い | 難易度 |
|---|---|---|---|
| これからDebianを新規インストールする | Debian Installerの暗号化LVM | 選択したディスクを消去 | 低い |
| 既存のDebianシステム全体を暗号化したい | バックアップ後、暗号化LVMで再インストール | バックアップと復元が必要 | 中程度 |
| 外付けHDD・SSD、USBメモリーを暗号化したい | cryptsetupでLUKS2を作成 |
対象パーティションを消去 | 中程度 |
| ディスク内の一部ファイルだけを保護したい | 暗号化された専用ボリュームや別のファイル単位暗号化を検討 | 方式によって異なる | 中~高 |
| 暗号化済みディスクのパスフレーズを変更したい | cryptsetup luksAddKeyで新しいキーを追加してから古いキーを削除 |
通常はデータを再暗号化しない | 中程度 |
内蔵ディスク全体を保護するなら、Debianのインストール時に暗号化LVMを選びます。ルート領域、ホーム領域、スワップをまとめて暗号化し、起動に必要な設定もインストーラーが自動で行います。
LUKSによるディスク暗号化の仕組み
Debianで一般的に使われるのは、Linuxカーネルのdm-cryptと、暗号化ボリュームの標準形式であるLUKSです。LUKSには暗号化方式、暗号化されたボリュームキー、複数のキースロットなどを保存するヘッダーがあります。
- 電源が切れている間、LUKS領域の内容は暗号文として保存されています。
- 起動時または接続時に正しいパスフレーズを入力します。
/dev/mapper/名前という、復号後の仮想デバイスが作られます。- ファイルシステムは、その仮想デバイス上にマウントされます。
- 閉じると暗号鍵がメモリーから除かれ、元のディスクは再び読めない状態になります。
/bootとEFIシステムパーティションは外側に残ります。Debian Installerの標準的な暗号化LVMでは、ユーザーデータやシステム本体は暗号化されますが、起動に必要な/bootと、UEFI環境のEFIシステムパーティションは通常暗号化されません。そのため、厳密にはディスク上の全セクターが暗号化される構成ではありません。
暗号化で守れるもの・守れないもの
| 状況 | 暗号化の効果 | 補足 |
|---|---|---|
| 電源を切ったPCや外付けSSDが盗まれた | 効果が高い | 強いパスフレーズを使い、暗号化領域が閉じていれば内容を読み取りにくくできる |
| ディスクを取り外して別のPCへ接続された | 効果が高い | Linuxのファイル権限を回避されてもLUKSの解除が必要 |
| ログイン中・暗号化解除中のPCを操作された | 限定的 | 開いているファイルは通常どおり読めるため、画面ロックや物理管理も必要 |
| マルウェアや遠隔操作に侵入された | 原則として防げない | OSが暗号化領域を開いている間は、アプリもデータへアクセスできる |
| ファイルを誤削除した、SSDが故障した | 防げない | 別媒体へのバックアップが必要 |
| 弱いパスフレーズを総当たりされた | 強度に依存 | 名前、生年月日、短い単語、使い回しを避ける |
/bootを改ざんされた |
標準構成だけでは完全に防げない | Secure Boot、ファームウェアの保護、端末の物理管理は別の対策 |
暗号化する前の準備
必要なデータを別媒体へバックアップする
文書、写真、ブラウザーのデータ、SSH鍵、仮想マシン、メール、アプリの設定などを外付けHDD・SSDやNASへ保存します。コピー後は、別のPCまたはライブ環境から数個のファイルを実際に開き、バックアップが読めることを確認してください。
同じSSDの別パーティションへコピーしても、インストール時のディスク選択ミスや物理故障で一緒に失われます。暗号化対象から取り外せる別の物理媒体を使用してください。
接続中のディスクを記録する
現在のDebianを使える場合は、作業前に次のコマンドでディスクの名前、容量、型番、ファイルシステム、マウント先を確認します。
lsblk -o NAME,SIZE,TYPE,FSTYPE,LABEL,MOUNTPOINTS,MODEL
sudo blkid
内蔵NVMe SSDは/dev/nvme0n1、SATAディスクやUSBディスクは/dev/sda、/dev/sdbなどと表示されることがあります。ただし順番は接続状態によって変わるため、名前だけで判断せず、必ず容量と型番を照合します。
不要な外付けディスクを取り外す
インストール中に選び間違えないよう、インストールUSB、バックアップに必要な媒体、キーボードなどを除き、暗号化対象ではない外付けHDD・SSDやUSBメモリーを取り外します。
パスフレーズを決める
LUKSのパスフレーズは、ログインパスワードとは別に設定できます。推測されにくく、十分に長いものを使用してください。複数の無関係な単語、数字、記号を組み合わせた長いパスフレーズにすると、短く複雑な文字列より覚えやすくできます。
- 16文字以上を一つの目安にし、長さを優先する
- 氏名、生年月日、電話番号、端末名、一般的な短い単語を使わない
- ほかのサービスやDebianのログインパスワードと使い回さない
- 起動前の入力環境でも確実に打てる7-bit ASCIIの英数字・記号を使う
- 日本語入力を必要とする文字や、配列によって位置が大きく変わる記号だけに依存しない
インストール時と起動時で日本語配列・英語配列の認識が違うと、同じつもりで入力しても別の文字列になります。Debianの公式インストールガイドも、暗号化パスフレーズを入力する前にキーボードが期待どおりの文字を生成するか確認するよう案内しています。
電源と時間を確保する
ノートパソコンはACアダプターへ接続します。Debian Installerの暗号化LVMでは、暗号化領域を作成する前にランダムデータを書き込む処理が行われるため、ディスク容量や速度によっては長時間かかります。処理中に電源を切らないでください。
- 重要データを別の物理媒体へバックアップした
- バックアップしたファイルを実際に開いて確認した
- 暗号化対象のディスク容量と型番を記録した
- 対象外の外付けディスクを取り外した
- 長く推測されにくいパスフレーズを用意した
- ノートパソコンをACアダプターへ接続した
- DebianのインストールUSBを用意した
インストール時にシステムディスクを暗号化する
ここではDebian 13の標準インストーラーを例にします。Debian 12でも基本的な流れは同じです。画面の表記は、インストーラーの種類や翻訳の更新によって多少異なる場合があります。
1Debian Installerを起動する
インストールUSBからPCを起動し、最初のメニューで「Graphical install」または「Install」を選びます。言語、場所、キーボード、ネットワーク、ユーザーなどを設定し、「ディスクのパーティショニング」まで進めます。
2暗号化LVMを選ぶ
パーティショニング方法では、「ガイド-ディスク全体を使い暗号化LVMをセットアップする」を選びます。暗号化なしの「ディスク全体を使う」や、通常の「LVMをセットアップする」と間違えないようにしてください。
3暗号化するディスクを選ぶ
一覧に表示されたディスクの容量と型番を確認し、Debianをインストールする内蔵HDD・SSDを選択します。/dev/sdaや/dev/nvme0n1という名前だけで決めないでください。
Windowsとのデュアルブート環境で「ディスク全体」を選ぶと、同じディスク上のWindows領域も削除されます。Windowsを残す場合は空き領域を使う手動構成が必要です。操作に自信がなければ、別のディスクへDebianをインストールしてください。
4パーティション構成を選ぶ
初心者で特別な理由がなければ、「すべてのファイルを1つのパーティションに(初心者ユーザーには推奨)」を選びます。/homeを分ける構成を選んでも、通常はどちらも暗号化LVMの内側へ作られます。
| 構成 | 向いている使い方 | 注意点 |
|---|---|---|
| すべてのファイルを1つのパーティションに | 一般的なデスクトップ、初心者 | 容量配分で迷いにくい |
/homeを分ける |
ユーザーデータとシステム領域を分けたい | 各論理ボリュームの容量配分が必要 |
/home、/var、/tmpを分ける |
役割が明確なサーバー、高度な管理 | 容量不足が特定領域だけで起きる可能性がある |
5ディスクへの変更を確認する
暗号化LVMを構成するため、パーティションテーブルへ変更を書き込む確認が表示されます。対象ディスクが正しいことと、バックアップ済みであることを再確認してから「はい」を選びます。この段階以降、変更を簡単には元に戻せません。
6暗号化領域の消去処理を待つ
インストーラーは暗号化領域へランダムデータを書き込みます。これは使用中の場所を判別しにくくし、以前のデータの痕跡を消しやすくする処理です。大容量HDDでは長時間かかる場合があります。
残り時間が増減したり、しばらく同じ割合に見えたりすることがあります。ディスクアクセスが続いている間は待ちます。明らかな入出力エラーが表示された場合は、ディスクの健康状態も確認してください。
7暗号化パスフレーズを2回入力する
用意したパスフレーズを入力し、確認欄にも同じ内容を入力します。入力文字は画面に表示されないか、黒丸で表示されます。Caps Lock、Num Lock、キーボード配列を確認してください。
8LVMの使用量を決める
ボリュームグループの使用量を尋ねられた場合、一般的なデスクトップでディスク全体を使うなら最大値を選べます。後で論理ボリュームを追加・拡張する予定がある場合は、意図的に未割り当て領域を残します。
9最終的なパーティション構成を確認する
「パーティショニングの終了とディスクへの変更の書き込み」を選ぶ前に、次の構成になっているか確認します。ディスク名やパーティション番号は環境によって異なります。
- UEFI環境ではFAT32のEFIシステムパーティションがある
/boot用パーティションが暗号化領域の外側にある- 大きな暗号化ボリュームがある
- 暗号化ボリューム内のLVMに
/や/homeがある - スワップも暗号化領域内にある
- 削除されて困る別OS・データ用パーティションが含まれていない
10インストールを完了して再起動する
通常どおりベースシステム、デスクトップ環境、GRUBをインストールします。完了したらインストールUSBを抜いて再起動します。
起動時に暗号化パスフレーズを入力する
Debianのカーネルが読み込まれた後、暗号化ボリュームを開くためのパスフレーズ入力画面が表示されます。ここで入力するのはLUKSのパスフレーズであり、通常のログイン画面で入力するユーザーパスワードとは役割が異なります。
暗号化の目的は、電源を切った状態でディスクを読めないようにすることです。起動時のパスフレーズ入力を省略するために暗号鍵を同じディスクへ平文で保存すると、盗難対策としての効果が大きく下がります。
システムディスクが暗号化されたか確認する
Debianへログインしたら、端末を開いてディスク構成を確認します。次のコマンドは表示だけを行い、ディスクを変更しません。
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
sudo dmsetup ls --target crypt
FSTYPEにcrypto_LUKSがあり、その下にLVM2_member、ルート領域、スワップなどが階層表示されれば、暗号化LVM構成を確認できます。
crypto_LUKSの内側にLVMとルート領域が表示されています。実際の名前や容量は環境によって異なります。マッピング名がnvme0n1p3_cryptだった場合は、詳細を次のように確認できます。名前はdmsetupの結果へ置き換えてください。
sudo cryptsetup status nvme0n1p3_crypt
元のLUKSパーティションを確認できた場合は、ヘッダー情報も読み取り専用で確認できます。
sudo cryptsetup isLuks /dev/nvme0n1p3 \
&& echo "LUKSボリュームです"
sudo cryptsetup luksDump /dev/nvme0n1p3
/dev/nvme0n1p3をそのまま実行対象にせず、lsblkで自分の環境にあるcrypto_LUKSパーティションを確認してください。luksDumpはパスフレーズ自体を表示しませんが、構成情報を公開場所へ貼る必要はありません。
外付けHDD・SSDをLUKS2で暗号化する
ここからは、データ用の外付けディスクまたはパーティションをコマンドで暗号化する方法です。例では対象を/dev/sdb1、解除後の名前をsecure_diskとします。
/dev/sdb1の中身はすべて失われます
実際の対象は/dev/sdc1や/dev/nvme1n1p1かもしれません。表示例をそのままコピーせず、容量、型番、接続方式、マウント先を照合してください。暗号化したいのが1番パーティションなら/dev/sdb1であり、ディスク全体の/dev/sdbとは異なります。
1cryptsetupをインストールする
sudo apt update
sudo apt install cryptsetup
2対象ディスクを特定する
外付けディスクを接続した状態で、次のコマンドを実行します。
lsblk -o NAME,SIZE,TYPE,FSTYPE,LABEL,MOUNTPOINTS,MODEL,TRAN
TRANがusbであること、容量と型番が対象ディスクと一致することを確認します。重要なデータをバックアップした後、対象パーティションをアンマウントします。
lsblkにディスク本体のsdbだけが表示され、子項目のsdb1がない場合は、先にGNOMEの「ディスク」などでGPTパーティションテーブルとパーティションを作成します。既存パーティションがある場合は作り直さず、対象が本当に暗号化してよい領域か確認してください。
sudo umount /dev/sdb1
「target is busy」と表示された場合は、そのディスク内のファイルを開いているアプリ、「ファイル」、端末を閉じてから再実行します。
3LUKS2形式で初期化する
対象をもう一度確認してから実行します。
sudo cryptsetup --type luks2 luksFormat /dev/sdb1
確認文を読み、対象が正しい場合だけ大文字でYESと入力します。その後、新しい暗号化パスフレーズを2回入力します。
--batch-modeや自動応答を組み合わせると、対象を間違えたときの最後の確認まで失われます。手作業では確認画面を残し、表示されたデバイス名を見直してください。
4暗号化領域を開く
sudo cryptsetup open /dev/sdb1 secure_disk
正しいパスフレーズを入力すると、復号後の仮想デバイス/dev/mapper/secure_diskが作成されます。
sudo cryptsetup status secure_disk
ls -l /dev/mapper/secure_disk
5復号後のデバイスをext4でフォーマットする
新規作成直後の空の暗号化領域に、Linux用のext4ファイルシステムを作ります。このコマンドは最初の1回だけ実行します。
sudo mkfs.ext4 -L SECURE_DISK /dev/mapper/secure_disk
mkfs.ext4を実行しません
mkfsはファイルシステムを新しく作るコマンドです。データを保存した後で再実行すると、既存データを失う原因になります。普段の利用では「開く」と「マウント」だけを行います。
6マウントして所有者を設定する
sudo install -d -m 0755 /mnt/secure_disk
sudo mount /dev/mapper/secure_disk /mnt/secure_disk
sudo chown "$USER":"$(id -gn)" /mnt/secure_disk
現在のユーザーで書き込めるか確認します。
touch /mnt/secure_disk/write-test.txt
ls -l /mnt/secure_disk/write-test.txt
rm /mnt/secure_disk/write-test.txt
最後に構成を確認します。
lsblk -o NAME,SIZE,TYPE,FSTYPE,LABEL,MOUNTPOINTS
findmnt /mnt/secure_disk
次のように、元のcrypto_LUKSパーティション、その内側のcryptデバイス、ext4のマウント先が階層表示されます。
sdb 931.5G disk
└─sdb1 931.5G part crypto_LUKS
└─secure_disk 931.5G crypt ext4 /mnt/secure_disk
GNOMEの「ディスク」から作成する場合
GNOMEを使用している場合は「ディスク」アプリから対象パーティションを選び、歯車メニューのフォーマット操作でLUKSによるパスワード保護を選べることがあります。画面操作でも対象の中身は消えるため、左側で選んだディスクの容量と型番を必ず確認してください。詳細な選択肢はDebianやGNOME Disksのバージョンによって異なります。
暗号化ディスクを開く・閉じる
端末から開いてマウントする
sudo cryptsetup open /dev/sdb1 secure_disk
sudo mount /dev/mapper/secure_disk /mnt/secure_disk
利用中の状態は次のコマンドで確認できます。
sudo cryptsetup status secure_disk
findmnt /mnt/secure_disk
安全に閉じる
暗号化ディスク内をカレントディレクトリーにしている端末や、ファイルを開いているアプリを閉じます。その後、書き込みを完了し、ファイルシステムをアンマウントしてから暗号化マッピングを閉じます。
cd "$HOME"
sync
sudo umount /mnt/secure_disk
sudo cryptsetup close secure_disk
USB接続のディスクを物理的に取り外す場合は、必要に応じて電源を安全に切ります。
sudo udisksctl power-off -b /dev/sdb
- ここではパーティションの
/dev/sdb1ではなく、USBディスク本体の/dev/sdbを指定します。 - 複数パーティションがある場合は、すべてアンマウントしてから実行します。
- 「ファイル」の取り出しボタンを使った場合は、同じ操作を端末から重ねて行う必要はありません。
GNOMEの「ファイル」から開く
対応するデスクトップ環境では、暗号化済み外付けディスクを接続し、「ファイル」の左側にあるボリュームをクリックするとパスフレーズ入力画面が表示されます。共有PCや持ち運ぶPCでは、パスフレーズを永続的に保存せず、その都度入力する方法が安全です。
書き込み中に突然取り外すと、暗号化の有無に関係なくファイルシステムが破損する可能性があります。必ずアンマウントと暗号化マッピングの終了を確認してください。
起動時にパスフレーズを入力してマウントする
常時接続するデータ用ディスクは、/etc/crypttabと/etc/fstabへ登録できます。ここでは起動時にパスフレーズを尋ね、解除後に/mnt/secure_diskへマウントする構成にします。
systemd-cryptsetupを確認する
Debian 13では暗号化ファイルシステムの自動検出・マウント機能がsystemd-cryptsetupパッケージへ移されました。通常は推奨パッケージとして入りますが、自動マウントを設定する前に確認します。
# Debian 13で実行
sudo apt update
sudo apt install systemd-cryptsetup cryptsetup
1.LUKS UUIDを取得する
sudo cryptsetup luksUUID /dev/sdb1
表示されたUUIDを控えます。次の例にある11111111-2222-3333-4444-555555555555は、実際の値へ置き換えてください。
2./etc/crypttabへ登録する
設定前にバックアップを作成し、sudoeditで開きます。
if [ -f /etc/crypttab ]; then
sudo cp -a /etc/crypttab "/etc/crypttab.backup-$(date +%F-%H%M%S)"
else
sudo install -m 0600 /dev/null /etc/crypttab
fi
sudoedit /etc/crypttab
末尾へ次の1行を追加します。
secure_disk UUID=11111111-2222-3333-4444-555555555555 none luks,nofail
- 1列目は
/dev/mapper/secure_diskに使う名前です。 - 2列目は暗号化前のパーティションをLUKS UUIDで指定します。
- 3列目の
noneは、平文のキーファイルを使わず入力を求める設定です。 nofailは、外付けディスクがない場合も起動を続けやすくするための指定です。
3./etc/fstabへマウント先を登録する
sudo install -d -m 0755 /mnt/secure_disk
sudo cp -a /etc/fstab "/etc/fstab.backup-$(date +%F-%H%M%S)"
sudoedit /etc/fstab
末尾へ次の1行を追加します。
/dev/mapper/secure_disk /mnt/secure_disk ext4 defaults,nofail,x-systemd.device-timeout=10s 0 2
4.再起動前に設定を確認する
sudo systemctl daemon-reload
sudo findmnt --verify --verbose
parse error、no such file or directory、UUIDの誤りなどが表示された場合は、再起動する前に修正します。現在マッピングを閉じている場合は、次のようにテストできます。
sudo systemctl start systemd-cryptsetup@secure_disk.service
sudo mount /mnt/secure_disk
findmnt /mnt/secure_disk
動作を確認できたらアンマウントして閉じ、再起動時のパスフレーズ入力も確認します。
sudo umount /mnt/secure_disk
sudo systemctl stop systemd-cryptsetup@secure_disk.service
盗難対策が目的なのに、暗号化を解除する鍵を同じPCの暗号化されていない領域へ置くと、攻撃者も鍵を入手できる可能性があります。自動解除にはTPMや外部キーなど別の設計が必要で、利便性と攻撃耐性の評価も必要です。
パスフレーズとLUKSヘッダーを管理する
現在のキースロットを確認する
sudo cryptsetup luksDump /dev/sdb1
Keyslots以下に有効なスロットが表示されます。LUKS2は複数のパスフレーズやキーを登録できるため、普段使うものとは別に、管理された復旧用パスフレーズを追加できます。
新しいパスフレーズを追加する
sudo cryptsetup luksAddKey /dev/sdb1
最初に既存の有効なパスフレーズを入力し、続いて追加する新しいパスフレーズを2回入力します。
新しいパスフレーズをテストする
古いパスフレーズを削除する前に、いったん安全にアンマウントして閉じ、新しいパスフレーズで再び開けることを確認します。
cd "$HOME"
sync
sudo umount /mnt/secure_disk
sudo cryptsetup close secure_disk
sudo cryptsetup open /dev/sdb1 secure_disk
sudo mount /dev/mapper/secure_disk /mnt/secure_disk
解除時には、追加した新しいパスフレーズを入力してください。ファイルを開けることまで確認してから次へ進みます。
古いパスフレーズを削除する
sudo cryptsetup luksRemoveKey /dev/sdb1
削除したい古いパスフレーズを入力します。入力したパスフレーズに対応するキースロットが削除されます。
新しいパスフレーズで解除できることを確認する前に古いキーを削除しないでください。すべての有効なキーを失うと、LUKSヘッダーが残っていてもデータを開けません。
LUKSヘッダーをバックアップする
LUKSヘッダーが破損すると、暗号化されたデータ本体が無事でも復号できなくなる場合があります。ヘッダーを保存する場合は、暗号化対象とは別の安全な媒体を使います。
sudo cryptsetup luksHeaderBackup /dev/sdb1 \
--header-backup-file /media/USER/ENCRYPTED_BACKUP/luks-header-sdb1.img
sudo chmod 600 /media/USER/ENCRYPTED_BACKUP/luks-header-sdb1.img
/media/USER/ENCRYPTED_BACKUPは、別の暗号化済みバックアップ媒体の実際のパスへ置き換えます。- ヘッダーバックアップだけでは、忘れたパスフレーズを復元できません。
- ヘッダーにはキースロット情報が含まれるため、通常の設定ファイルのように公開・共有しません。
- 古いヘッダーを復元すると、削除した古いキーが再び有効になる可能性があります。
- 最も重要なのは、データ自体を別の暗号化媒体へ定期的にバックアップすることです。
luksHeaderRestoreは現在のLUKSヘッダーとキースロット領域を上書きします。対象や世代を間違えると状況を悪化させるため、ここでは通常手順として実行しません。障害時は元ディスクのイメージを保存し、対応するヘッダーバックアップであることを確認してから復旧作業を行います。
データのバックアップも暗号化する
元ディスクだけを暗号化しても、平文のバックアップが外付けHDDに残っていれば、そこから内容を読まれます。バックアップ先もLUKSなどで保護し、元ディスクと同時に紛失しない場所へ保管してください。
既存のDebianを後から暗号化できるか
cryptsetup reencryptには既存デバイスをインプレースで暗号化する機能があります。しかし、起動中のルートファイルシステムを単純に1コマンドで安全に暗号化できるわけではありません。
システムディスクを後から暗号化する作業では、少なくとも次の要素が関係します。
- 暗号化処理前の完全なバックアップ
- ライブUSBなど、対象ルート領域を使用しない起動環境
- LUKSヘッダー用領域とパーティションサイズの調整
/etc/crypttabの作成/etc/fstabのUUID・デバイス構成の修正cryptsetup-initramfsを含むinitramfsの再構築- GRUBと
/bootの構成確認 - 暗号化中の停電、I/Oエラー、中断に備えた復旧計画
- ホームフォルダーと必要なシステム設定を別媒体へバックアップする
- バックアップの読み取りと必要ファイルを確認する
- Debian Installerの暗号化LVMを選んで再インストールする
- 暗号化構成を
lsblkで確認する - 必要なデータと設定を選んで戻す
インプレース暗号化は、同じ「Debian」でもBIOS・UEFI、LVMの有無、ファイルシステム、パーティションの空き、/bootの位置によって手順が変わります。一般向けの固定コマンドをそのまま実行するのは危険です。
うまくいかない場合の対処法
| 症状・表示 | 主な原因 | 対処 |
|---|---|---|
No key available with this passphrase |
パスフレーズ違い、配列違い、Caps Lock | 英語・日本語配列、Caps Lock、Num Lockを確認し、登録済みの別パスフレーズがあれば試す |
| 起動時に解除画面が出ない、起動が止まる | initramfs、crypttab、対象UUID、画面表示の問題 |
古いカーネルやリカバリーモード、ライブUSBから構成を確認する。闇雲にヘッダーを再作成しない |
Device ... already exists |
同じ名前のマッピングがすでに開いている | sudo cryptsetup status secure_diskとlsblkで状態を確認し、二重に開かない |
Device ... is still in use |
マウント中、端末やアプリが使用中 | findmntでマウント先を確認し、ファイルを閉じてからアンマウントする |
mount: wrong fs type |
元のcrypto_LUKSデバイスを直接マウントした、内部FSが破損 |
先にcryptsetup openし、/dev/mapper/secure_diskをマウントする。blkidで内部FSを確認する |
/dev/sdb1 is not a valid LUKS device |
デバイス違い、LUKSではない、ヘッダー破損 | lsblk -fとsudo cryptsetup isLuks /dev/sdb1で確認し、初期化を再実行しない |
| Debian 13で自動解除ユニットが見つからない | systemd-cryptsetupが未導入 |
sudo apt install systemd-cryptsetup後、設定とUUIDを確認する |
| 外付けディスクを外すと起動が長時間止まる | crypttabやfstabで必須扱い、タイムアウトが長い |
nofailとデバイスタイムアウトを確認し、UUIDの誤りを修正する |
| パスフレーズを忘れた | 解除に必要なキーがない | 別の有効なキースロット、回復用キー、解除済み状態からのデータ退避を確認する。どれもなければ原則復旧できない |
| LUKSヘッダーが破損した | 誤上書き、媒体故障、I/Oエラー | 書き込みを止め、ディスクイメージを保存し、対応するヘッダーバックアップとデータバックアップから復旧を検討する |
暗号化マッピングの状態を確認する
lsblk -f
sudo cryptsetup status secure_disk
findmnt /mnt/secure_disk
内部ファイルシステムを確認する
sudo blkid /dev/mapper/secure_disk
TYPE="ext4"などが表示されるか確認します。修復コマンドを実行する場合は、必ずアンマウントし、データバックアップを確保してからファイルシステムに合った手順を選びます。
自動解除サービスのログを確認する
sudo systemctl status systemd-cryptsetup@secure_disk.service --no-pager
sudo journalctl -b -u systemd-cryptsetup@secure_disk.service --no-pager
UUID、/etc/crypttabの列数、マッピング名、パッケージ不足などのエラーを確認します。ログを共有するときは、ホスト名、ユーザー名、外部ディスク名など必要のない個人情報を隠してください。パスフレーズやキーファイルは絶対に共有しません。
よくある質問
ログインパスワードを設定していれば、ディスク暗号化は不要ですか。
用途が異なります。ログインパスワードは通常のログインを制限しますが、ディスクを取り外して別環境から読む攻撃への対策にはなりません。持ち運ぶPCや機密データを保存する端末では、ディスク暗号化が有効です。
暗号化パスフレーズとユーザーパスワードは同じでよいですか。
別にすることをおすすめします。同じ文字列を使うと、一方が見られたり漏れたりしたときに両方の保護を失います。LUKS用には長く推測されにくい専用パスフレーズを設定します。
パスフレーズを忘れたらリセットできますか。
別の有効なパスフレーズ、キーファイル、登録済みトークンなどで解除できれば、新しいキーを追加できます。どの有効なキーでも解除できない場合、通常のログインパスワードのようなリセットはできません。LUKSヘッダーバックアップだけでも、パスフレーズ忘れは解決しません。
暗号化すると動作は遅くなりますか。
読み書きのたびに暗号化・復号が必要なため処理負荷は増えます。ただし体感差はCPU、ストレージ、処理内容によって異なります。実機ではcryptsetup benchmarkで暗号処理性能を確認できますが、実際のファイル操作性能とは同一ではありません。
SSDでもLUKSを使えますか。
使用できます。TRIM・discardを暗号化層へ通す設定は性能や空き領域管理に関係しますが、使用ブロックのパターンに関する情報が見えるというトレードオフがあります。目的を理解せずallow-discardsを追加せず、まずDebian Installerの標準設定を使用してください。
スワップも暗号化されますか。
Debian Installerの暗号化LVMを使い、スワップが暗号化LVMの内側に作られていれば保護されます。lsblkで階層を確認してください。スワップだけが暗号化領域の外側にある構成では、メモリー上の情報が残る可能性があります。
/bootも暗号化されますか。
Debian Installerの標準的な暗号化LVMでは、/bootは暗号化領域の外側です。UEFIのEFIシステムパーティションも暗号化されません。起動領域の改ざん対策は、Secure Bootや端末の物理管理などと組み合わせます。
Windowsとのデュアルブートでも使えますか。
可能ですが、「ディスク全体を使う」を選ぶとWindowsも消えます。Windowsを残すには、空き領域や別ディスクを使った手動構成が必要です。BitLockerとLUKSは別々に管理し、両方の回復情報を確保してください。
暗号化した外付けディスクをWindowsやmacOSで読めますか。
標準状態のWindowsやmacOSでは、LinuxのLUKSとext4をそのまま扱えないのが一般的です。複数OS間で共有する必要がある場合は、互換性、暗号化方式、信頼できるソフトウェアの有無を先に検討してください。
休止状態やスリープ中も安全ですか。
電源を完全に切った状態とは異なります。スリープ中は暗号鍵がメモリーに残り、端末も動作中です。長時間持ち運ぶ場合や紛失リスクが高い場合は、作業を保存して完全にシャットダウンする方が保護しやすくなります。
バックアップも暗号化した方がよいですか。
個人情報や認証情報を含むなら暗号化をおすすめします。元のPCだけを暗号化しても、同じデータの平文コピーが外付けディスクにあれば、そこが情報漏えい経路になります。
暗号化済みディスクを丸ごとクローンできますか。
セクター単位のクローンは可能ですが、LUKS UUIDやヘッダー、キースロットも複製されます。元と複製を同時接続すると識別しにくくなる場合があり、破損も複製されます。日常のバックアップは、別の暗号化ボリュームへファイル単位で保存する方法が管理しやすいことがあります。
TPMを使って自動解除できますか。
LUKS2はsystemdの仕組みなどを通じてTPM連携を構成できますが、ハードウェア、Secure Boot、PCRポリシー、回復キーの管理まで含めた設計が必要です。自動解除すると利便性は上がりますが、盗難時にどの条件で解除されるかを理解する必要があります。まずはパスフレーズ方式で正常に起動・復旧できる構成を作るのが安全です。
作業後のチェックリスト
lsblkで対象がcrypto_LUKSになっている- ルート、ホーム、スワップが意図した暗号化領域の内側にある
- 再起動後にパスフレーズで正常に解除できる
- 新しいパスフレーズを追加した場合、実際に解除テストを行った
- 外付けディスクを閉じる前にアンマウントしている
- LUKSヘッダーバックアップを作る場合、別の安全な媒体へ保管している
- 暗号化されたデータ本体も別媒体へバックアップしている
- パスフレーズや回復情報をPCと一緒に紛失しない方法で管理している
- 不要な平文コピーがUSBメモリーや古いディスクに残っていないか確認した
まとめ
Debianのシステムディスクを暗号化する最も簡単な方法は、インストール時に「ディスク全体を使い暗号化LVMをセットアップする」を選ぶことです。ユーザーデータ、システム領域、スワップをまとめて保護でき、起動に必要なcrypttabやinitramfsの設定もインストーラーが行います。
外付けHDD・SSDは、対象を慎重に特定したうえでcryptsetupを使い、LUKS2領域を作成できます。作成後は、開く、マウントする、アンマウントする、閉じる、という順番を守ります。
暗号化の強さだけでなく、パスフレーズを失わないこと、LUKSヘッダーを破損させないこと、データ自体を別の暗号化媒体へバックアップすることが重要です。暗号化は紛失・盗難時の読み取り対策であり、バックアップやOSのセキュリティ対策と組み合わせて使用してください。
参考情報
- Debian 13 Installation Guide:Using Individual Components
- Debian 13.6:Installation Information
- Debian manpages:cryptsetup(8)
- Debian manpages:cryptsetup-open(8)
- Debian Cryptsetup Documentation:README.Debian
- Debian 13 Release Notes:Issues to be aware of for trixie
- Debian 12(bookworm)Release Information
記事内のコマンドと対象バージョンは、に再確認しています。
