LVM パーティション上の Grub

LVM パーティション上の Grub

基本的に、私の問題は /boot (/dev/sda1) で、これは非常に小さなパーティション (88 MB) でした。

このマシンで使用可能な VolumeGroup を使用して、新しい LVM ボリューム (600 Mo) をフォーマットしました。

次に、/boot/ の内容を新しい LVM パーティションにコピーしました ( を使用cpio)。

umount /boot古い /boot パーティションを置き換えるために、Fstab にいくつかの変更を加えました。

update-grub最後に、を正しく生成するようにしましたgrub.cfg。再起動すると、すでに動作していました。新しい LVM パーティションが正しいと考えていたのでfdisk /dev/sda、 で を削除します/dev/sda1

そして今、起動時に Grub Rescue が起動します。

Ubuntu livecd でも:

grub-install --modules='lvm' /dev/rootvg/bootlv

/usr/sbin/grub-probe: error: cannot find a device for /boot/grub/
No path or device is specified.


grub-install --modules='lvm' /dev/sda5

/usr/sbin/grub-probe: error: cannot find a device for /boot/grub/
No path or device is specified.

同じエラー...

既存の LVM デバイスに Grub ブートローダーをインストールするソリューションはありますか?

答え1

おそらく (私は lvm と grub については全くの初心者です)、次のように grub をインストールする必要があります。

grub-install --modules='lvm' --boot-directory=/dev/rootvg/bootlv dev/sda

grub を MBR に配置し、/dev/rootvg/bootlv を grub ファイルが存在する /boot パーティションとして使用します。

ただし、ディスクが GPT で、BIOS で起動する場合は、タイプ BIOS_grub (フォーマットなし、grub のステージ 2 用の未加工のもの) の 1MiB ~ 8MiB の特別なパーティションが必要になります。

3 ストライプ Raid0 LVM 内に /boot パーティションがあり、EFI パーティションと LVM を持つ [U]EFI から Grub2 を起動するのに非常に問題がありますが、BIOS ブート モードであれば正常に起動できます。

3 台の HDD のそれぞれに、GPT スタイルのパーティション (サイズ、位置などはすべて同一) があります。GPT1: LVM (大きいもの、HDD の残りのスペース) GPT2: EFI (512MiB、FAT32) GPT3: bios_grub (8MiB、フォーマットなし - RAW)

/dev/sd[ac]1にvgを作成し、LVM内に/boot用のパーティションを1つ作成します。

/boot をマウントします: mount /dev/mapper/bla_bla_bla /boot

そこに EFI マウント ポイントを作成します (実際には必要ありませんが、grub2-install で入力する文字数を減らすのに役立ちます)

/dev/sda2を/boot/efiにマウントします

次に、次のコマンドを使用して、必要なモジュールに lvm を追加します。

echo GRUB_PRELOAD_MODULES=\"lvm\" >> /dev/default/grub

次に、次のコマンドで Grub2 をインストールします。

grub-install --target=i386-pc /dev/sda

そして、アンマウントして BIOS モードで再起動すると、Grub2 が起動します。

重要:/boot をアンマウントする前に、必要に応じて /boot/grub/grub.cfg を編集してください。

また、OS を起動しているのではなく、LVM パーティション内に Grub2 をインストールして起動できるようになっているだけであることに留意してください。

注意: ターゲット x86_64-efi でインストールすると、2 つのメッセージが表示され、[U]EFI モードで正しく起動しないため、LVM にアクセスできなくなります。

PD: [U]EFI モードと BIOS モードの SystemRescueCD.iso ループで起動できる 2 つの異なる USB スティックを作成できるレベルの知識を身に付けましたが、LVM 内にある Grub2 を起動しようとすると、[U]EFI モードの場合は問題が発生します...私は専門家ではありません...Grub2 と LVM、LUKS などに取り組んできました...私の意図は非常に複雑なブートを作成することです...LVM 外に /boot のない Raid0 LVM 内の 3 つの USB スティックで、[U]EFI のみの PC と古い BIOS のみの PC、それらの混合 PC などで起動できます.../boot が LVM 外にあり、BIOS モードでも /boot が LVM 内にある場合は [U]FI と BIOS の両方で起動できますが、/boot が LVM 内にある場合は [U]EFI で起動できません。

PPD: これは grub2*.efi のバグで、LVM をマウントしないので、BIOS モードで起動することをお勧めします... この中で、/boot パーティションなしで LVM にインストールでき、LVM 内に / があるという ArchLinux の記事をいくつか読みましたが、手順を追って説明しておらず、再現もできません。また、これは私の本当の目的ではありません。Linux をインストールしたくはなく、Grub2 だけをインストールしたいからです... 最終的な本当の目的は、3 つの物理 HDD を raid0 モード (3 ストライプ) で使用した LVM パーティション上の LUKS パーティション内にある LVM パーティション内の大きなファイルに Linux を配置し、[U]EFI および BIOS ブート モードの USB から起動して、そのような大きなファイル内にある Grub2 にチェーンロードする Grub2 を使用し、そのような大きなファイル内からカーネル、initram などを Grub2 がロードするようにすることです... など。あなたがそのような Linux を持っていることをもっともらしく否定します... HDD から起動すると暗号化された Linux が表示され、その rootfs に私が言及した大きなファイルがありますが、外付け USB スティックから起動する場合、そのファイル内の Linux を起動する方法がわかります... 妄想モード: そのようなチェーンロードを行うコマンドが頭に浮かびますが、USB スティックでは SystemRescueCD.iso ループ ブートだけになりますが、それを起動することを選択する代わりに、c と入力して grub コンソールに移動し、私が言及した大きなファイル内の Linux にチェーンロードするコマンドを入力します... これは複雑すぎることはわかっていますが... パスフレーズに応じてダミー OS または隠し OS をマウントする TrueCrypt/VeraCrypt のトリックがなければ、他に選択肢がないので、数か月前に最初の手順を開始しました... [U]EFI および BIOS のみの PC で起動する USB を用意し (完了)、LVM 内に Grub2 を用意し (BIOS モードでは完了、[U]EFI モードではエラー)、まだ多くの手順が残っています。

私のスキームとコマンドが、システムの起動方法を見つけるのに役立つか、少なくとも検索するためのオプションを提供できれば幸いです。

関連情報