web-dev-qa-db-ja.com

RHEL 6のUSBからのインストールでsdbにGRUBをインストールする方法はありますか?

USBドライブを使用してRHEL6のインストールを行っています。それはうまく機能しますが、コンピューターを使用するたびに、USBを挿入する必要があります。インストールでは、USBはsdaであり、ターゲットハードドライブはsdbです。 GRUBは毎回USBにインストールされます(sda)。したがって、RHELをインストールする方法はありますかGRUB to sdb(the RHELがインストールされているターゲット)?RHELはデフォルトで毎回sdaにインストールすると思います。

助けてくれてありがとう!

1
jonesy19

特に明記されていない限り、GRUBは、インストーラーによって検出された最初のディスクがシステムファームウェアによって検出された最初のディスクでもあると想定します。CDまたはネットワークインストールでは、このヒューリスティックは通常機能します(複数ある場合を除く)ストレージコントローラー)。

ただし、インストールメディアがUSBの場合、RHEL6インストーラーは他のストレージデバイスよりも先にUSBを検出します。キックスタートインストールを設定している場合は、代わりにブートローダーを/dev/sdbに書き込むように確実に指示できます。これは、bootloaderキーワードの--driveorderオプションを使用して実行されます。USBからインストーラーを起動する場合は、OSがインストールされるディスクをドライブの順序で最初のディスクとして指定する必要があります。 、すなわち.

bootloader --location=mbr --driveorder=sdb,sda <...>

ここではロジックが少し奇妙に感じるかもしれません。これは、インストールされたシステムを起動するときに、システムBIOSがどのディスクを「最初のディスク」と見なすかをオプションが実際に識別しようとしているためです。起動元のディスクを選択する事実上のBIOSの標準的な方法は、ディスクをBIOSから見た順序で最初のディスク。ただし、-driveorderオプションでは、インストール時に存在するLinuxデバイス名を使用する必要があります...これは、インストールされたシステムが実行されているときと必ずしも同じではありません。

基本的に、「システムがインストールされ、それ自体で起動すると、現在/dev/sdbが最初のディスクになる」とインストーラーに指示する必要があります。

これは、ブートローダーをターゲットハードドライブに正常にインストールするのに十分です。ただし、インストールされたシステムには/boot/grub/device.mapファイルが残り、最初のディスクが/dev/sdb...になることを示します。これは、USBドライブを抜いてシステムを起動すると、おそらく真ではなくなります。これにより、GRUBパッケージを更新する必要がある場合に問題が発生し、アップグレード後にブートローダーが失敗します。

ただし、解決策は簡単です。USBのキックスタートインストールを構築している場合は、インストールの完了後に/boot/grub/device.mapファイルを削除するインストール後コマンドを設定するだけです。それは次のように単純にすることができます:

%post
rm /boot/grub/device.map

%end

/boot/grub/device.mapが存在しない場合、grub-installコマンドは、次回実行されたときに自動的に再作成します...その後、正しい選択を行う可能性がはるかに高くなります。絶対に確認したい場合は、インストールが完了してシステムが再起動した後で状況を確認し、正確な/boot/grub/device.mapファイルを手動で書き込むことができます。

1
telcoM