ループバックによるCentOS grub2ブートiso

ループバックによるCentOS grub2ブートiso

他のLinuxイメージをマルチブートするためのUSBキー設定があります。 CentOSを追加しようとしていますが、これは類似アイテムを公開~のためgrub.cfg

set drive_label=multipass01
set isopath=/iso

menuentry "CentOS-6.3-x86_64-LiveCD" {

# Tried the following root designations;
# root=live:LABEL="multipass01" 
# root=live:LABEL=multipass01 
# root=live:LABEL="multipass01":$isofile
# root=live:LABEL=multipass01:$isofile
# root=live:/dev/disk/by-label/$drive_label$isofile
# root=live:UUID=3A55-12BC:$isofile
# root=live:UUID=:$isofile
# root=UUID=3A55-12BC
# root=live:$isofile
# iso-scan/filename=$isofile

    set isofile="$isopath/CentOS-6.3-x86_64-LiveCD.iso"
    loopback loop $isofile
    linux (loop)/isolinux/vmlinuz0 boot=isolinux root=live:LABEL=multipass01:$isofile rootfstype=auto ro liveimg 3 rhgb rd.luks=0 rd.md=0 rd.dm=0 splash --
    initrd (loop)/isolinux/initrd0.img
}

これは、この項目を開始しようとした結果です(どの項目に関係なくroot=)。

カーネルパニック

編集する。関連するFedoraエラー

答え1

root=live:私はあなたと同じ方法を試しましたが(liveosは私にとってFedora 17でした)、私も失敗しました。 isofileはオプションとして使用できません。root=live:LABEL=multipass01:$isofile認識されません(将来修正される可能性がありますが期待されます)。

だから私は別のアプローチを使用しました。

#step 1 create a blank partition that can hold the liveos.(/dev/sdb5)

#step 2 copy the liveos to the partition
dd if=/my-path-to-f17-live-iso of=/dev/sdb5

#step 3 change the grub.cfg,
#note1: don't need to use loopback, just use (hdX,Y).
#note2: "root=" becomes "root=live:/dev/sdb5"
menuentry 'F17 install' --class fedora --class gnu-linux --class gnu --class os {
    insmod part_msdos
    linux (hd1,5)/isolinux/vmlinuz0 linux root=live:/dev/sdb5 rootfstype=auto ro liveimg rd.luks=0 rd.md=0 rd.dm=0 
    initrd (hd1,5)/isolinux/initrd0.img
}

/dev/sdb5CD / DVD-ROMとして機能している場合でも、この方法を試すことができます。

別の方法は、そのようなオプションを認識するようにPythonスクリプトを変更することですdracut。しかし、それは価値がないと思います。

答え2

このように

menuentry "CentOS-7.0-1406-x86_64-DVD" {
    set root='hd1,msdos1'
    set isofile='/CentOS-7.0-1406-x86_64-DVD.iso'
    loopback loop $isofile
    linux (loop)/isolinux/vmlinuz noeject inst.stage2=hd:/dev/vdb1:$isofile
    initrd (loop)/isolinux/initrd.img
}

答え3

可能な答えが見つかりません。しかし、今は実装されているようです。

これ郵便はがきdracutで説明されている機能を実装するコミットが言及されました(これはあなたが望むものです)。

root= オプションは次のとおりです。コアコマンドラインパラメータ:

root=       [KNL] Root filesystem
        See name_to_dev_t comment in init/do_mounts.c.

このタイプの設定が機能するには、initramfsインフラストラクチャの内部を見て、サポートされていることを確認する必要があります。 (つまり、rootとして使用されたカーネルのインストール.isoは明らかにカーネル操作ではありませんか?)

38節以降の注意事項を見ると、一種の段階的な指示を見ることができます。今私は自分でテストしてみましょう。

編集:Centos 6.4では機能しません。 //dracutの古代バージョン

関連情報