GRUB2から起動するためにCentOS 7 iso(ハードドライブ上)を取得できません。

GRUB2から起動するためにCentOS 7 iso(ハードドライブ上)を取得できません。

ハードドライブにインストールされているGRUB2からCentOS 7 ISO(ハードドライブ上)を起動できません。

私は次のステップを試しましたこの記事

私の要件は、VMWare VM内の仮想ハードドライブからCentOS ISO(つまり起動可能な.vmdk)を起動することです。これは要件であり、代替案は現在私が探しているものではありません。

仮想ハードディスクにgrub2をインストールし、このISOを起動するようにgrub設定を変更しようとしました。

最新のCentOS Gnome Live ISOで起動したVMで両方のアクティビティを実行します(これが私が使用しているプロセスです)。

4GBの仮想ハードディスク(vmdk)を使用して新しいVM(VMDK_Stagerと呼ばれる)を作成します。

インストールと実行CentOS-Live-GNOME.iso

端末を開き、コマンドを実行してください

ルートディレクトリのインポート

su

次のコマンドを実行してドライブを準備し、grubをインストールし、パーティションを作成します。

fdisk /dev/sda
n (for new partition, then select all defaults for blocks/sizing/etc.)
a (to activate)
w (to write changes and quit fdisk)

パーティションフォーマット

mkfs.ext4  /dev/sda1

マウントパーティション

mount /dev/sda1

関連インストールパッケージの更新

yum install livecd-tools
yum upgrade grub2
yum upgrade dracut

ディスク/パーティションにGrubをインストールします。 (こうすれば/mnt/boot/grub2

   grub2-install /dev/sda --boot-directory=/mnt/boot

/mnt/boot/isoISOファイルを保存するために作成された

mkdir /mnt/boot/iso
cd /mnt/boot/iso

コピーCentOS-7-x86_64-GNOME-1603-02.iso(CentOSイメージからダウンロード)を/mnt/boot/iso (「既知の良い」ISOをテストするためにこれを行いました)

カスタム作成grub.cfg

#Begin /boot/grub2/grub.cfg
set default=0
set timeout=10
set root=(hd0,1)

menuentry 'CentOS-Live-GNOME' {
    set isolabel=CentOS-7-x86_64-GNOME-1603-02
    set isofile='/boot/iso/CentOS-7-x86_64-GNOME-1603-02.iso'
    loopback loop $isofile
    linux (loop)/isolinux/vmlinuz0 iso-scan/filename=$isofile root=live:CDLABEL=$isolabel ro rd.live.image quiet rhgb
    initrd (loop)/isolinux/initrd0.img
}

この準備されたvmdkを別のVMで使用できるように、ホストの別のディレクトリにコピーします(VMDK_ISO_Booterと呼ばれます)。 VMを作成し、このvmdkを唯一のハードドライブとして使用します。

dracutプロンプトで終わり、/dev/disk/by-label見つからないというメッセージが表示されます。

ベストアンサー1

問題は、ほとんど間違いなくわずかに誤ったCDLABELを使用し、grubがisoをマウントできない、カーネルパラメータが画像で使用されているものと一致しない、またはISOのいくつかの不規則性が組み合わされていることです。私はミラーでそれを見ませんでした。特定の。

isoのisolinux.cfgファイルから正確なタグを取得する必要があります。

CentOS-7-x86_64-LiveGNOME-1603-02.isoがある場合、ファイルの行は次のようになります。

 append initrd=initrd0.img root=live:CDLABEL=CentOS-7-x86_64-GNOME-1603-02 rootfstype=auto ro rd.live.image quiet  rhgb rd.luks=0 rd.md=0 rd.dm=0 

以下は、試してみた修正されたgrub.cfgです(私が持っているISOに基づいています。あなたのISOは少し異なる場合があります。明らかに名前の「Live」部分を削除したか、削除しました。

menuentry "CentOS-Live-GNOME" {
    set isolabel="CentOS-7-x86_64-GNOME-1603-02"
    set isofile="/boot/iso/CentOS-7-x86_64-LiveGNOME-1603-02.iso"
    insmod iso9660
    loopback loop ${isofile}
    linux (loop)/isolinux/vmlinuz0 root=live:CDLABEL=CentOS-7-x86_64-GNOME-1603-02 rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 iso-scan/filename=${isofile} 
    initrd (loop)/isolinux/initrd0.img
}

これは現状のまま動作しますが、isolinux.cfgエントリのラベルと残りのカーネルパラメータを再確認してください。

dracutプロンプトが表示されたら、sosreport.txtファイルで「loop」という単語を見つけます。その後、isoに示されている実際の名前を指定する必要があります。また、/ devのデバイスを見てください。 /dev/disk/... by-id .. by-label .. by-uuidなどでiso "デバイス"を見つけることはできますか?これらの参照はすべて機能します。完全に一致する必要があります。何が評価されているのかそして、あなたが経験しているエラーはどこから来ますか?

私はあなたがしたのとほぼ同じですが、しばらく前にFedoraを使用していました(fedora 19?)、操作する前にいくつかの調整が必要でした。

次のリンクは、これを手動で(ある種の)実行する方法を示しているため、再構築、再起動、繰り返しの痛みを伴うサイクルを経ることなく段階的に実行できます。

https://help.ubuntu.com/community/Grub2/ISOBoot

おすすめ記事