仕事で奇妙な状況が発生し、約700のシステムがあり、すべてがデフォルトでEFIで起動しています。
PXEメニューを設定していて、CentOSをインストールできますが、プロセスを続行するには、ユニットをレガシーブートモードに切り替える必要があります。
これには問題があります。 CentOS 7.4がUEFIインストーラーモードで配置されると、BIOSがレガシーモードに切り替えられたときに起動しません。
自動化された方法で、CentOS 7.4にUEFIモードでの実行中にレガシースタイルのブートローダーのインストールを強制するにはどうすればよいですか?
はい。次のように、--target
オプションとgrub2-install
を使用してプラットフォームを設定できます。
grub2-install --target=i386-pc /dev/sdX
i386-pc
オプションは、UFI
ブートプラットフォームでもレガシーgrubインストールを作成します。
[〜#〜] note [〜#〜]gpt
パーティションテーブルを使用してレガシースタイルのgrubをインストールするときは、bios-boot
フラグが付いた小さな1Mbのフォーマットされていないパーティションが必要です。
また、grubに構成ファイルを作成させる必要があります。インストーラーはEFIモードであるため、EFIキーワードのインスタンスをレガシーキーワードに置き換える必要があります。 awkを使用した例を次に示します。
#EXAMPLE: Normal grub make config command
#grub2-mkconfig > /boot/grub2/grub.cfg
#With awk statement to replace EFI keywords with legacy ones:
grub2-mkconfig |awk '{gsub("linuxefi /", "linux /");gsub("initrdefi /", "initrd /");print $0}' > /boot/grub2/grub.cfg