Red Hat 7.4:UEFI専用システム用のUSBメディアにキックスタートファイルを挿入するには?

Red Hat 7.4:UEFI専用システム用のUSBメディアにキックスタートファイルを挿入するには?

カスタムキックスタートファイル(USBメディアに転送)を使用し、grubに適切なパラメータを追加してRed Hat Linux 7.4用のインストールイメージを構築しようとしていますが、ks=これを行う方法はわかりません。

私が試したことは次のとおりです。

dd if=rhel-server-7.4-x86_64-dvd.iso of=/dev/sdb

これにより起動可能なUSBスティックが作成されますが、もちろんキックスタートファイルはありません。

次に、ISOの内容を一時ファイルにコピーし、ISOの内容を追加してks.cfggrub構成を変更し、それを使用してgenisoimage新しいイメージを再作成しました。

genisoimage \
  -untranslated-filenames \
  -rational-rock \
  -v \
  -translation-table \
  -input-charset "default" \
  -J \
  -joliet-long \
  $VOLLABELARGS 
  -b isolinux/isolinux.bin \
  -c isolinux/boot.cat \
  -no-emul-boot \
  -boot-load-size 4 \
  -boot-info-table \
  -eltorito-alt-boot \
  -efi-boot images/efiboot.img \
  -no-emul-boot \
  -o $THISDIR/$VOLLABEL.iso \

これはRed Hat独自のRHEL 6ガイドラインに基づいています。もちろん私はRHEL 7を使用しています。これは BIOS ブートでは正常に動作しますが、UEFI システムで試してみると、結果のイメージは「互換性がない」として拒否されます。

結果の画像も元のRHEL ISOよりはるかに大きい。

確認してみると元のxorriso画像とたくさん違うことが確認されました。isohybridある程度役に立ちますが、イメージを起動可能にするのに十分ではありません。

xorriso -reportRed Hat ISOの出力:

xorriso -indev rhel-server-7.4-x86_64-dvd.iso -report_el_torito cmd
-volid 'RHEL-7.4 Server.x86_64'
-volume_date uuid '2017071101014600'
-boot_image isolinux system_area=--interval:imported_iso:0s-15s:zero_mbrpt,zero_gpt:'rhel-server-7.4-x86_64-boot.iso'
-boot_image any partition_cyl_align=on
-boot_image any partition_offset=0
-boot_image any partition_hd_cyl=64
-boot_image any partition_sec_hd=32
-boot_image any iso_mbr_part_type=0x00
-boot_image any cat_path='/isolinux/boot.cat'
-boot_image isolinux bin_path='/isolinux/isolinux.bin'
-boot_image any platform_id=0x00
-boot_image any emul_type=no_emulation
-boot_image any load_size=2048
-boot_image any boot_info_table=on
-boot_image any next
-boot_image any efi_path='/images/efiboot.img'
-boot_image any platform_id=0xef
-boot_image any emul_type=no_emulation
-boot_image any load_size=9211904
-boot_image isolinux partition_entry=gpt_basdat

xorriso私の画像への出力:

xorriso -indev myimage.iso -report_el_torito cmd
-volid '"MYIMAGE"'
-volume_date uuid '2018011923504500'
-boot_image isolinux system_area=--interval:imported_iso:0s-15s:zero_mbrpt:'MYIMAGE.iso'
-boot_image any partition_cyl_align=on
-boot_image any partition_offset=0
-boot_image any partition_hd_cyl=64
-boot_image any partition_sec_hd=32
-boot_image any iso_mbr_part_type=0x17
-boot_image any cat_path='/isolinux/boot.cat'
-boot_image isolinux bin_path='/isolinux/isolinux.bin'
-boot_image any platform_id=0x00
-boot_image any emul_type=no_emulation
-boot_image any load_size=2048
-boot_image any boot_info_table=on
-boot_image any next
-boot_image any efi_path='/images/efiboot.img'
-boot_image any platform_id=0xef
-boot_image any emul_type=no_emulation
-boot_image any load_size=9211904

2つを比較すると、Red HatにはGPTに関するいくつかの項目がありますが、私の画像がありません。

他のアプローチも見ましたが、間違った方向に行っているかどうかはわかりません。

  • lorax/livemedia-creatorを使用してください。指示が混乱していることがわかりました。ライブイメージの構築に使用されているようですが、Anacondaを呼び出す方法がわかりません。

  • USBスティックを標準の3パーティションハードドライブとしてフォーマットします。しかし、起動可能にする方法がわかりません。

私が望むことを達成するための最良/最も簡単な方法は何ですか?

私の要求:

  • Linux コマンドラインでなければなりません。このプロセスをスクリプトで作成したいと思います。
  • イメージファイルを作成する必要があり、可能であればUSBスクリプトに直接書きたくありません。
  • root以外のユーザーとして実行できる必要があります。

イメージファイルはCD / DVDの起動をサポートする必要はありません。

ベストアンサー1

これで手順が完了しました。 @ありがとう。トーマス・シュミット貴重なヒント。

これが完全なプロセスです。

概要

元のRed Hat DVDで3つのファイルを変更する必要があります。

  • isolinux/isolinux.cfg
  • EFI/BOOT/grub.cfg
  • images/efiboot.img

使用するボリュームラベルを決定します。ボリュームラベルは14文字未満でなければなりません。

その後、genisoimageそのボリュームラベルで新しいISOをビルドし、isohybrid --uefiUEFIと互換性があり、implantisomd5正しいチェックサムを更新するために使用されます。

段階的に

このスクリプトは私が書いたが、私たちの状況にぴったりなので、投稿する必要はありません。

  • オリジナルのRed Hat DVDを使用してインストールしますfuseiso
  • 環境変数をVOLUMELABEL目的のボリュームラベルに設定します。
  • 変更する必要がある3つのファイルを別の場所にコピーします。

isolinux.cfgファイルを編集します。このファイルは BIOS ブートに使用されます。

  • isolinux.cfgファイルを編集してappend:で始まる最初の2行にパラメータを追加しますks=hd:LABEL=$VOLUMELABEL:/ks.cfg
  • inst.stage2読み取り可能な場所(おそらく4つの場所)でこのパラメータを更新しますinst.stage2=hd:LABEL=$VOLUMELABEL
  • menu default画像がデフォルト値Installに設定されるようにこの項目を削除することもできますTest & Install

grub.cfgファイルを編集します。このファイルは EFI ブートに使用されます。このファイル(およびその中のすべての項目EFI/BOOT)は2回存在します。一度は通常のDVDイメージに、もう1つはefiboot.imgファイル内に存在します。

  • で始まる最初の2行に同じパラメータを追加しますlinuxefi
  • inst.stage2読み取り可能な場所(おそらく4つの場所)でこのパラメータを更新しますinst.stage2=hd:LABEL=$VOLUMELABEL
  • search重要だが見落としやすい内容:inで始まる行も編集してくださいgrub.cfg

efiboot.imgファイルを編集します。実際にはEFIが有効になります。

  • ファイルのコピーをマウントしますefiboot.img。残念ながら、私はこれを行う方法を見つけることができませんでした。fusermountしたがって、これを行うにはroot権限が必要です。
  • 変更した内容を以下のファイルgrub.cfgにコピーしてくださいefiboot.imgEFI/BOOT
  • ファイルのコピーを削除しますefiboot.img

これでISOイメージを作成できます。

パラメータはgenisoimage位置を区別します。重要:元のマウントされたISOファイル(にマウントされている)に基づいて画像に基づいて、$TMPDIR3-mつの修正ファイルを除いて、移行ポイントを使用して修正とキックスタートファイルを画像に挿入しました。私の画像からカタログプラグインも削除しました。

genisoimage \
  -untranslated-filenames \
  -graft-points \
  -rational-rock \
  -v \
  -translation-table \
  -input-charset "default" \
  -J \
  -joliet-long \
  -V $VOLLABEL -A $VOLLABEL -volset $VOLLABEL \
  -b isolinux/isolinux.bin \
  -c isolinux/boot.cat \
  -no-emul-boot \
  -boot-load-size 4 \
  -boot-info-table \
  -eltorito-alt-boot \
  -efi-boot images/efiboot.img \
  -no-emul-boot \
  -quiet \
  -o $THISDIR/$VOLLABEL.iso \
  -m $TMPDIR/EFI/BOOT/grub.cfg \
  -m $TMPDIR/isolinux/isolinux.cfg \
  -m $TMPDIR/images/efiboot.img \
  -m addons \
  $TMPDIR \
  EFI/BOOT/grub.cfg=$TMPGRAFT/grub.cfg \
  isolinux/isolinux.cfg=$TMPGRAFT/isolinux.cfg \
  images/efiboot.img=$TMPGRAFT/efiboot.img \
  $KICKSTARTFILE=$KICKSTARTDIR/$KICKSTARTFILE

isohybrid --uefi次に、次を使用しますimplantisomd5

isohybrid --uefi $THISDIR/$VOLUMELABEL.iso
implantisomd5 $THISDIR/$VOLUMELABEL.iso

おすすめ記事