暗号化されたディスクに追加のLinuxをインストールする

暗号化されたディスクに追加のLinuxをインストールする

最近、ラップトップのHDDをSSDに交換し、「フルディスク」暗号化を変更して使用することにしました。

/bootLVMを使用して、ボリュームグループに5つの論理ボリュームを作成する暗号化されていない小さなパーティションと暗号化された大規模なLUKSパーティションを作成しました。

  • 1つはFedora(lv_fedora)をインストールすることです。
  • 1つはスワップ(lv_swap)用です。
  • 1つは別のLinuxオペレーティングシステム用です(lv_os2)。
  • データ用に2つ(lv_data1およびlv_data2)。

問題なく最初のOSとしてFedoraをインストールし、lv_fedoraGRUBメニューから起動できましたが、暗号化されたディスクに別のLinuxベースのOS(Linux Mint 17)をインストールし、FedoraのGRUB2にそれを検出してオペレーティングシステムを起動させる方法がわかりません。 。システム。

私は2つの異なるアプローチを試しました。どちらの場合も、Mintがブートローダをインストールしないようにするオプションをubiquity使用してLinux Mintインストーラを起動しました。どちらの場合も、インストールを開始するために、LinuxMint LiveイメージのファイルマネージャでLUKSパーティションをロック解除して、その論理ボリュームをインストール先として--no-bootloader選択できました。lv_os2今:

  • /まず、lv_os2。成功したインストール。 FedoraはGRUBエントリを更新しましたgrub2-mkconfig -o /boot/grub/grub.cfg(暗号化されていないディスクを使用したときに行ったことです)。 GRUBはLinux Mintの存在を検出し、そのエントリを起動メニューに追加します。問題は、後でこのエントリで起動できないことです。
  • それではおそらくそうだと思いました。[1]これは、カーネルイメージがbootLinux Mintパーティションのフォルダに暗号化されているためです。おそらくGRUB 2は、Fedoraを初めてインストールするときと同じように、暗号化されていないパーティションにこれらのファイルを保存する必要があるかもしれません(/boot単に推奨される設定なので、暗号化されていないパーティションを使用しました)。そのため、今回はFedoraのパーティションをバックアップしてLinux Mintを再インストールしましたが、カーネルイメージをそのディレクトリにコピーし、インストール後に起動できるように暗号化されていない/bootパーティションも使用するようにしました。/bootインストールは成功し、/bootLinux Mintによって追加された「追加」ファイルはFedoraファイルを上書きしなかったため、少なくともFedoraは機能し、bakcupを使用する必要はありません/boot。その後、Fedoraを起動してgrub2-mkconfig -o /boot/grub/grub.cfg再実行しました。今回はさらに悪かったです。 GRUBは、lv_fedoraLinux Mint用のカーネルイメージをロードするためにFedora(ターゲット)のエントリを作成するなどのエントリを混在させます。成功せずにこれらの項目を手動で修正してみました。

私は何か間違っていると思います。セカンダリLinux OSを暗号化ボリュームにインストールし、プライマリLinux OSにブートローダを処理させるより良い方法はありますか? (セカンダリオペレーティングシステムから起動できるようにGRUBエントリを更新)

[1]: ご覧のように、私は努力して学んでいるだけで、そのトピックについて深く理解していません。

答え1

私が読んだことのすべてで、これはinitramfsを「カーネルに組み込み、起動プロセスの初期にロードする」ことを要約します。1

Mintの/etc/crypttab場合update-initramfs2

私が理解したところによると、これはすでにインストールされているように見えるMintをインストールした後にinitramfsイメージを生成するためのガイドとして機能しなければなりません。これはすべての内容を扱うことを願っていますが、各セクションを直接調べてください。

ライブランチミントmountそしてchrootMintをインストールしたパーティションです。サム

作成と構成 /etc/crypttab起動時にロック解除されます。4/dev/mapper/lv_os2これはあなたの質問に従ってMintがインストールされているlvmパスを追加する場所です。/dev/<big encrypted LUKS>/lv_os25

私が見たほとんどの例は/etc/crypttab次のとおりです
root /dev/mapper/lv_os2 none luks。 4つのフィールドは、Mintをインストールするために選択したlvmパス、noneシステム起動時に手動で入力するパスワード設定、luksLUKSモード強制ですが、不要なようです。

オプションフィールドにモードが指定されておらず、ブロックデバイスにLUKS署名が含まれている場合は、LUKSデバイスとして開きます。それ以外の場合は、生のdm-crypt(通常モード)形式が想定されます。

構成 /etc/fstab/dev/mapper/<name>作成したばかりのディレクトリを/etc/crypttabルートディレクトリにマウントします/。たとえば、次のように
/dev/mapper/<name> / <fs_vfstype> <fs_mntops>
なりますman fstab

持っていれば /etc/crypttab必要に応じて設定すると、ブートイメージをビルド/アップデートする/etc/fstabために使用できます。update-initramfs

望むよりman update-initramfsuname -rMintに表示されている特定のカーネルバージョンを使用するのが最善です。コマンドは似ているようです。update-initramfs -u -k 3.11.0-26-genericカーネルのバージョンを独自のバージョンに置き換えます。

この時点でgrub2-mkconfig -o /boot/grub/grub.cfg、Fedoraを再起動し、Mintが以前に検出したオプションを試すことができます。それでも機能しない場合は、GRUBマニュアルのマルチブート手動設定に従ってください。6

特にこの部分は:

GRUBツールはすべてのオペレーティングシステムにインストールされますが、ブートセクタにGRUBをインストールすることは禁止されているので、menu.lst、grub.cfgを使用してください。設定を使用してos-proberを無効にすることもできます。

GRUB_DISABLE_OS_PROBER=true

存在する/etc/default/grub

これがMintを始めるのに必要な内容の大部分を扱うことを願っています。

答え2

「どうやって」という質問に実際に答えるわけではありませんが、洞察力を提供する必要があり、説明をするには長すぎます。

まず、暗号化されたパーティションから起動できません。その理由は、スタートアップチェーンがプロセスの後半でのみ暗号化を理解しているからです。

  1. ハードウェアはファームウェア(通常はUEFI BIOS(x86プラットフォーム))をロードします。これらのハードウェアは完全にデータに拘束されません。一部の永続ストア(事前定義されたアドレス)のすべてをロードするだけです。

  2. ファームウェアはブートローダをロードするか、カーネルを直接ロードします。 CPUと同様に、可能な暗号化モードについて何も知りません(できないというわけではありませんが、一般的にそうではありません)。

  3. ブートローダが関連している場合は、カーネル(またはWindowsを起動するときなど、リンクされたブートローダ)をロードし、通常は初期のRAMディスク(スタンドアロンファイルまたはカーネルイメージに含めることができます)もロードします。たとえば、GRUB2はLUKSデバイスから起動できる必要がありますが、ドキュメントは次のようになります。かなり足りない

  4. カーネルはルートファイルシステムをマウントして実行しますinit(System V init、、、systemd...OpenRCから選択できるものが多いupstart)。

  5. 初期RAMディスクから起動する場合は、まずメモリに拡張され、そこからinitシステムがインストールされ、実行されます。 initramfsには、正しいルートファイルシステムをマウントするために必要なすべてが含まれている必要があります。通常、これには、使用可能なすべてのドライバ(最終的なrootfsがRAIDデバイスにあるときに必要なRAIDドライバなど)、グラフィックブートインフラストラクチャが含まれます。これは通常最小値を意味します(またはそれほど最小ではありません)。 X11スタック - 通常、暗号化されたパーティションをマウントするためのツールです。すべての設定が完了すると、initシステムはついにrootfsにマウントされ、initramfsで実行されますpivot_root()(参照:pivot_root(8)そしてpivot_root(2)/詳細については、マニュアルページを参照してください)正しいファイルシステムに切り替えてください。

暗号化されたボリュームを起動する最も簡単な方法は、通常、手順5で暗号化設定を実行することです。これは、主に実行されるカーネルによって実行され、まともな最新のディストリビューションで提供されるインフラストラクチャを使用できるためです。

したがって、FedoraとMintが暗号化されたボリュームから実際にどのように起動するかを知りたいかもしれません。たとえば、問題の解決策は、Mintカーネルに適したinitramfsイメージを生成することです。起動したカーネルに応じて、正しいrootfsを条件付きでマウントする限り、2つのカーネルに1つのinitramfsを使用することもできます。しかし、お勧めしません。特に別の(たとえば在庫)カーネルを使用することを決定した場合は、さらにそうです。各配布カーネルについて。

つまり、実際に両方のインストールを並列にインストールするかどうかを検討することもできます。 1つの仮想化を実行する方が便利かもしれません。

関連情報