最近、ラップトップのHDDの代わりにSSDを入手し、「フルディスク」暗号化を変更して使用することにしました。
/boot
用の暗号化されていない小さなパーティションと暗号化された大きなLUKSパーティションを作成し、LVMを使用してボリュームグループに5つの論理ボリュームを作成しました。
lv_Fedora
)。lv_swap
)。lv_os2
)。lv_data1
とlv_data2
)。Fedoraを最初のOSとしてlv_Fedora
に問題なくインストールし、GRUBのメニューから起動できましたが、暗号化された別のLinuxベースのOS(Linux Mint 17)をインストールする方法がわかりません。ディスクを作成し、FedoraのGRUB2にそれを検出させ、このOSも起動します。
私は2つの異なるアプローチを試しました。どちらの場合も、Linux Mintインストーラーであるubiquity
を--no-bootloader
オプションで起動して、Mintがブートローダーをインストールしないようにしました。どちらの場合も、インストールを開始するために、LinuxMint LiveイメージのファイルマネージャーからLUKSパーティションのロックを解除して、対応するlv_os2
ロジックボリュームをインストールターゲットとして選択できるようにしました。今:
/
のlv_os2
に割り当てられた単一のパーティションにLinuxMintをインストールしようとしました。インストールは成功しました。 Fedoraから、grub2-mkconfig -o /boot/grub/grub.cfg
を実行してGRUBエントリを更新しました(これは、暗号化されていないディスクを使用しているときにずっとやってきたことです)。 GRUBはLinuxMintが存在することを検出し、対応するエントリをブートメニューに追加しました。問題は、後でそれらのエントリから起動できなかったことです。boot
フォルダーでカーネルイメージが暗号化されているためだと思いました。たぶん、GRUB 2では、Fedoraを最初にインストールしたときと同じように、これらのファイルを暗号化されていないパーティションに配置する必要がありました(推奨されるセットアップであるという理由だけで、/boot
暗号化されていないパーティションを使用しました)。そこで今回は、Fedoraの/boot
パーティションをバックアップして(念のため)Linux Mintを再インストールしましたが、暗号化されていないパーティションも/boot
として使用するようにして、カーネルイメージをそのディレクトリにコピーして、多分、インストール後に起動します。インストールは成功し、LinuxMintによって/boot
に追加された「追加」ファイルはFedoraファイルを上書きしなかったため、少なくともFedoraは機能しており、/boot
bakcupを使用する必要はありませんでした。 。次に、Fedoraを起動し、grub2-mkconfig -o /boot/grub/grub.cfg
を再度実行しました。今回はさらにひどいものでした。 GRUBエントリを混同して、たとえば、Linux MintのカーネルイメージをロードするFedora(lv_Fedora
をターゲットとする)のエントリを作成します。これらのエントリを手動で変更しようとしましたが、失敗しました。私は何か間違ったことをしているに違いない。すでに暗号化されたボリュームにセカンダリLinuxOSをインストールし、プライマリLinux OSにブートローダーを処理させるより良い方法はありますか? (そのGRUBエントリを更新して、セカンダリOSからも起動できるようにします)
[1]:ご覧のとおり、私はただ努力して学んでいますが、このテーマについて深く理解していません。
それはあなたの質問に「どのように」答えるわけではありませんが、少し洞察を与えるはずです-そしてコメントするには長すぎます。
まず第一に、暗号化されたパーティションを起動することはできません。ブートチェーンが暗号化を理解するのは、プロセスのかなり遅い段階にすぎないからです。
ハードウェアはファームウェアをロードします-通常はUEFIのBIOS(x86プラットフォーム上)。ハードウェア自体は完全にデータに依存しません。永続ストレージ(事前定義されたアドレス)にあるものをすべてロードするだけです。
ファームウェアは、ブートローダーまたは直接カーネルをロードします。 CPUと同様に、可能な暗号化モードについては何も考えていません(できなかったわけではありませんが、通常はできません)。
ブートローダーが関係している場合は、カーネル(またはWindowsの起動時などのチェーンブートローダー)と、多くの場合、初期ramdisk(スタンドアロンファイルまたはカーネルイメージに埋め込まれている)をロードします。ここでは、たとえばGRUB2はLUKSデバイスから起動できるはずなので、さらに興味深いものになりますが、ドキュメントは かなり不足している のようです。
カーネルはルートファイルシステムをマウントし、init
を実行します(System V init、systemd
、OpenRC
、upstart
...の選択肢は豊富です)。
最初のramdiskで起動する場合、最初にメモリに展開され、次にマウントされ、そこからinitシステムが実行されます。 initramfs shuoldには、適切なルートファイルシステムをマウントするために必要なすべてのものが含まれています-通常、使用可能なすべてのドライバー(たとえば、最終的なrootfsがRAIDデバイス上にあるときに必要なRAIDドライバー)、グラフィカルブートインフラストラクチャが含まれています-これは、多くの場合、最小限(またはそれほど最小限ではない)X11スタック-そして多くの場合、暗号化されたパーティションをマウントするためのツール。結局、セットアップされ、initramfsから実行されるinitシステムをマウントした最後のrootfsはpivot_root()
を実行します( pivot_root(8)
および pivot_root(2)
詳細についてはmanページ)、したがって/
を適切なファイルシステムに切り替えます。
現在、暗号化されたボリュームを起動する最も簡単な方法は、通常、手順5で暗号化のセットアップを行うことです。これは主に、実行するカーネルによって行われ、最近の適切なディストリビューションによって提供されるインフラストラクチャを使用できるためです。
したがって、暗号化されたボリュームからFedoraとMintがどのように正確に起動するかを調べたいと思うかもしれません。問題の解決策は、たとえば、Mintカーネル用の適切なinitramfsイメージを作成することです。起動したカーネルに応じて適切なrootfsが条件付きでマウントされていることを確認すれば、両方のカーネルに1つのinitramfsを使用できる場合もありますが、特に別のカーネルを使用することにした場合はお勧めしません(例:ストック)各ディストリビューションのカーネル。
つまり、実際に2つのインストールを並べて実行するかどうかも検討する必要があるかもしれません。1つを仮想化して実行する方が便利な場合があります。
私が読んだすべてのことから、initramfsが「カーネルに埋め込まれ、ブートプロセスの初期段階でロードされた」ことに帰着するようです。 1
Mintの場合、/etc/crypttab
を構成してから、update-initramfs
を使用する必要があります。 2
私の理解では、これは、すでにインストールされているように見えるMintをインストールした後にinitramfsイメージを作成するためのガイドとして役立つはずです。うまくいけば、これですべてがカバーされますが、必ず各部分を自分で調べてください。
MintをインストールしたパーティションへのライブブートMint、mount
、およびchroot
. ==
作成して構成/etc/crypttab
を起動時にロック解除します。 4 ここで、Mintがインストールされているlvmへのパスを追加します。あなたの質問に基づいて、これは/dev/mapper/lv_os2
または/dev/<big encrypted LUKS>/lv_os2
5 に配置する必要があります
私が見た/etc/crypttab
のほとんどの例は、次のようになります。root /dev/mapper/lv_os2 none luks
。 4つのフィールドはそれぞれ、選択したもの、Mintをインストールしたlvmへのパス、none
システムの起動時に手動で入力するパスワードの設定、およびluks
はLUKSモードを強制しますが、必要ないようです。
オプションフィールドにモードが指定されておらず、ブロックデバイスにLUKS署名が含まれている場合、LUKSデバイスとして開かれます。それ以外の場合は、生のdm-crypt(プレーンモード)形式であると見なされます。
Configure/etc/fstab
は、/dev/mapper/<name>
で作成した/etc/crypttab
をルートディレクトリ/
としてマウントします。何かのようなもの:/dev/mapper/<name> / <fs_vfstype> <fs_mntops>
man fstab
を参照してください。
/etc/crypttab
と/etc/fstab
を好みに合わせて構成したら、update-initramfs
を使用してブートイメージをビルド/更新できます。
man update-initramfs
を参照してください。 Mintのuname -r
によって表示される特定のカーネルバージョンを使用するのが最善の場合があります。コマンドは、カーネルバージョンを独自のものに置き換えることを除いて、update-initramfs -u -k 3.11.0-26-generic
のようになります。
この時点で、Fedoraを再度起動して、以前にMintを検出したgrub2-mkconfig -o /boot/grub/grub.cfg
オプションを試すことができる場合があります。それが機能しない場合は、GRUB manual . 6 のマルチブート手動設定に従ってください。
特に、この部分:
すべてのOSでGRUBツールをインストールしますが、ブートセクタへのインストールGRUBを無効にするため、menu.lstとgrub.cfgを使用できるようになります。また無効にします設定によるos-proberの使用:
GRUB_DISABLE_OS_PROBER=true
/etc/default/grub
で
うまくいけば、これはミントを起動させるために必要なものの大部分をカバーしています。