起動がUSBドライブにあるループバックファイルホスティングLVMパーティションからシステムを起動したいと思います。
LVM以外の設定とext4ループバックファイルを使用すると正しく起動しますが(オンラインにはいくつかのガイドがあります)、さらに必要です... LVMが必要です!
私のパーティションレイアウトは次のとおりです
- USBドライブ(MBR):Grub 2
- USBドライブ(hd0、msdos1): ext4 512Mb /boot
- ノートブック内部ディスク:ホスト.linux-loops/system0.lvmオペレーティングシステムをインストールしてファイルにマッピングしました。/dev/mapper/vg_system-lv_root。
私のGrub 2メニュー項目は次のとおりです。
set BOOT_PART=(hd0,msdos1)
set HOST_PART=(hd1,gpt5)
set LOOP_FILE=.linux-loops/system0.lvm
set LOOP_DEV=loop0
set LVM_VG=vg_system
set LVM_LV=lv_root
set ROOT_DEV=/dev/mapper/${LVM_VG}-${LVM_LV}
menuentry 'Loopback / 4.10.0-38-generic' --class ubuntu --class gnu-linux --class gnu --class os {
echo "Initializing environment..."
set KERN_VER=4.10.0-38-generic
recordfail load_video gfxmode $linux_gfx_mode
echo "Loading partition drivers..."
insmod ext2
insmod gzio
insmod part_msdos
insmod part_gpt
echo Loopback(s) setup...
loopback ${LOOP_DEV} ${HOST_PART}/${LOOP_FILE}
insmod lvm
echo Debug LVM...
ls
ls (lvm/${LVM_VG}/${LVM_LV)/
echo "Loading kernel..."
set root=${BOOT_PART}
linux /vmlinuz-${KERN_VER} root=${ROOT_DEV} rw verbose nosplash debug
initrd /initrd.img-${KERN_VER}
}
二人はエルエスデバッグコマンドは、grubがLVMパーティションをチェックしたことを示していますが、初期化プログラム実行すると、システムはグループを表示します。ボリュームグループシステム見つかりませんでしたLVメタデータまだ実行されていません。
grubスクリプト内のループバック設定がinitスクリプトに伝播できないため、LVMマッパーを再初期化できないようです。
LVMではなくシナリオで(上記のように)vmlinuz...ループ=...問題を解決しました。
質問は:grubがLVMマッパーにループバックファイルを提供できるようにループバックファイルをどのように設定しますか?
とても感謝しています!
ベストアンサー1
あなたは正しいです。 GRUB はカーネルの代わりに設定できません。
GRUBはディスクアクセスにシステムファームウェア(BIOSまたはUEFI)を使用するため、実行するすべての操作はこれらのファームウェアルーチンに基づいています。カーネルが引き継がれると、これらのファームウェアルーチンは廃止され、OSが同じタスク用に独自のドライバを提供するまで、その上に構築されたものはすべて使用できなくなります。
(BIOSに関する限り、カーネルがプロセッサをフル32/64ビットモードに変換すると、16ビットのBIOSディスクアクセスルーチンは使用できなくなります。UEFIに関する限り、ディスクアクセスサービスは次のいずれかであると思います。UEFI機能は標準です」ブートサービスの終了" UEFI呼び出しを実行して、ハードウェア制御をUEFI側のオペレーティングシステムに渡すプロセスを完了すると、使用できなくなります。
代わりに、非常に早い段階でinitrdで実行されるスクリプトを設定する必要があります。 LVMが起動する前、またはLVMが起動されている場合、またはすでに初期化されている場合は、ループバックデバイスを設定した後に必要なループバックデバイスを有効にする必要がありvgscan --mknodes
ますvgchange -ay <name of the VG containing the root filesystem>
。
使用しているLinuxディストリビューションの名前とバージョンがわからない場合は、より具体的なアドバイスをするのが難しくなります。