web-dev-qa-db-ja.com

CentOSにUEFIスタイルのインストーラーでレガシースタイルのブートインストールを強制する方法はありますか?

仕事で奇妙な状況が発生し、約700のシステムがあり、すべてがデフォルトでEFIで起動しています。

PXEメニューを設定していて、CentOSをインストールできますが、プロセスを続行するには、ユニットをレガシーブートモードに切り替える必要があります。

これには問題があります。 CentOS 7.4がUEFIインストーラーモードで配置されると、BIOSがレガシーモードに切り替えられたときに起動しません。

自動化された方法で、CentOS 7.4にUEFIモードでの実行中にレガシースタイルのブートローダーのインストールを強制するにはどうすればよいですか?

1
Locane

はい。次のように、--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
3
Abhik Bose