最近、ラップトップのHDDをSSDに交換し、「フルディスク」暗号化を変更して使用することにしました。
/boot
LVMを使用して、ボリュームグループに5つの論理ボリュームを作成する暗号化されていない小さなパーティションと暗号化された大規模なLUKSパーティションを作成しました。
- 1つはFedora(
lv_fedora
)をインストールすることです。 - 1つはスワップ(
lv_swap
)用です。 - 1つは別のLinuxオペレーティングシステム用です(
lv_os2
)。 - データ用に2つ(
lv_data1
およびlv_data2
)。
問題なく最初のOSとしてFedoraをインストールし、lv_fedora
GRUBメニューから起動できましたが、暗号化されたディスクに別の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]これは、カーネルイメージが
boot
Linux Mintパーティションのフォルダに暗号化されているためです。おそらくGRUB 2は、Fedoraを初めてインストールするときと同じように、暗号化されていないパーティションにこれらのファイルを保存する必要があるかもしれません(/boot
単に推奨される設定なので、暗号化されていないパーティションを使用しました)。そのため、今回はFedoraのパーティションをバックアップしてLinux Mintを再インストールしましたが、カーネルイメージをそのディレクトリにコピーし、インストール後に起動できるように暗号化されていない/boot
パーティションも使用するようにしました。/boot
インストールは成功し、/boot
Linux Mintによって追加された「追加」ファイルはFedoraファイルを上書きしなかったため、少なくともFedoraは機能し、bakcupを使用する必要はありません/boot
。その後、Fedoraを起動してgrub2-mkconfig -o /boot/grub/grub.cfg
再実行しました。今回はさらに悪かったです。 GRUBは、lv_fedora
Linux Mint用のカーネルイメージをロードするためにFedora(ターゲット)のエントリを作成するなどのエントリを混在させます。成功せずにこれらの項目を手動で修正してみました。
私は何か間違っていると思います。セカンダリLinux OSを暗号化ボリュームにインストールし、プライマリLinux OSにブートローダを処理させるより良い方法はありますか? (セカンダリオペレーティングシステムから起動できるようにGRUBエントリを更新)
[1]: ご覧のように、私は努力して学んでいるだけで、そのトピックについて深く理解していません。
答え1
私が読んだことのすべてで、これはinitramfsを「カーネルに組み込み、起動プロセスの初期にロードする」ことを要約します。1
Mintの/etc/crypttab
場合update-initramfs
。2
私が理解したところによると、これはすでにインストールされているように見えるMintをインストールした後にinitramfsイメージを生成するためのガイドとして機能しなければなりません。これはすべての内容を扱うことを願っていますが、各セクションを直接調べてください。
ライブランチミント、mount
そしてchroot
Mintをインストールしたパーティションです。サム
作成と構成 /etc/crypttab
起動時にロック解除されます。4/dev/mapper/lv_os2
これはあなたの質問に従ってMintがインストールされているlvmパスを追加する場所です。/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(通常モード)形式が想定されます。
構成 /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
。uname -r
Mintに表示されている特定のカーネルバージョンを使用するのが最善です。コマンドは似ているようです。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
「どうやって」という質問に実際に答えるわけではありませんが、洞察力を提供する必要があり、説明をするには長すぎます。
まず、暗号化されたパーティションから起動できません。その理由は、スタートアップチェーンがプロセスの後半でのみ暗号化を理解しているからです。
ハードウェアはファームウェア(通常はUEFI BIOS(x86プラットフォーム))をロードします。これらのハードウェアは完全にデータに拘束されません。一部の永続ストア(事前定義されたアドレス)のすべてをロードするだけです。
ファームウェアはブートローダをロードするか、カーネルを直接ロードします。 CPUと同様に、可能な暗号化モードについて何も知りません(できないというわけではありませんが、一般的にそうではありません)。
ブートローダが関連している場合は、カーネル(またはWindowsを起動するときなど、リンクされたブートローダ)をロードし、通常は初期のRAMディスク(スタンドアロンファイルまたはカーネルイメージに含めることができます)もロードします。たとえば、GRUB2はLUKSデバイスから起動できる必要がありますが、ドキュメントは次のようになります。かなり足りない。
カーネルはルートファイルシステムをマウントして実行します
init
(System V init、、、systemd
...OpenRC
から選択できるものが多いupstart
)。初期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つの仮想化を実行する方が便利かもしれません。