そこで、別々のルートパーティションとメインパーティション(そしてスワップとブートofc)を使ってArch Linuxをインストールしようとしました。基本的に私はそれらを分割し、マウントし、暗号化し/
(/home
使用しましたcryptsetup luksFormat
)。次のようになりますlsblk
。
(申し訳ありませんが、現在の手順では、仮想マシンからテキストをコピーすることはできません。)
今私は以下を達成しようとしています。
- 各パーティションのパスワードを入力する必要なく、システムの起動時にすべてのパーティションのパスワードを復号化したいと思います。 (ただし、同じように設定しました。)
- 暗号化されたパーティションに対してGRUBを設定したいのですが、これまでの設定だけを見て
GRUB_CMDLINE_LINUX="cryptdevice=/dev/sdXY:cryptroot"
2つの構成なので、ここに何を入れるべきかわかりません(おそらく1つだけ/
?)
これで、実行したいが正しいGRUB構成がないと、システムを起動できなくなる可能性があるmkinitcpio
ため、実行できないステップに閉じ込められました。grub-install/grub-mkconfig
私はどのようにこれを達成できるか知っていますか? 2番目の質問は、最初の質問に関する文書があるため、より重要であり、過去2時間で頭を傷つけた2番目の質問に対する簡単な提案を得るために、この質問をそこに投稿したいと思いました。
答え1
UnixとLinux StackExchangeへようこそ!
生成されたinitramfsファイルの目的は、mkinitcpio
ルートファイルシステムのロックを解除してマウントすることです。他のファイルシステムのマウントは、/home
ルートファイルシステムがロック解除されマウントされた後、起動プロセスの後半に発生します。 GRUBは/home
ファイルシステムについて何も知る必要はありません。
このcryptdevice
オプションは、ルートファイルシステムの暗号化のロックを解除するために使用されるinitramfsファイルのスクリプトに情報を提供します。後でシステム構成が変更されると、暗号化されたルートファイルシステムを保持していると見なされるデバイスの名前を簡単に変更できます。システム構成の予期しない変更に対して堅牢性を維持するために、実際にはUUID=<UUID_of_sda3>
デバイス名の代わりに構文を使用できます。
/home
したがって、ルートファイルシステムのどこかに保存されているキーファイルを使用する暗号化を設定できます。キーファイルは暗号化されたパーティション内にあるため、システムが実行されていない場合でも保護されます。ルートファイルシステムにアクセスできるようになると、ファイルを/etc/crypttab
参照できるため、/home
ファイルシステムの暗号化が自動的にロック解除される可能性があります。
~によるとArch Wikiのcrypttabセクション/home
、ファイルシステムのエントリは/etc/crypttab
次のとおりです。
crypthome /dev/sda4 /etc/cryptsetup-keys.d/crypthome.key
UUID=<UUID of sda4>
デバイス名の代わりにそれを使用することもできます。
/etc/cryptsetup-keys.d/
ルート()のみがアクセスできることを確認しchmod 700
、ファイルシステムのパスワードをファイルに書き込み/home
ますcrypthome.key
。侵入者がこのコンテンツを読むことができる場合、これは侵入者が有効なrootアクセス権を持っていることを意味するので、入力してもファイルから検索しても、侵入者にcryptsetup
電子メールで送信されたパスワードでコマンドを置き換えることができるので、とにかくこの時点でより大きな懸念あります。