USBドライブを使用してRHEL 6をインストールしています。うまくいきますが、コンピュータを使いたいときはいつでもUSBを接続する必要がありました。インストール中、USBはsdaで、ターゲットハードディスクはsdbです。 GRUBは毎回USB(sda)にインストールされます。それでは、RHELをインストールしてGRUBをsdb(RHELのインストール先)にインストールする方法はありますか? RHELは毎回基本的にsdaにインストールすると思います。
助けてくれてありがとう!
答え1
特に指定しない限り、GRUBは、インストーラが検出した最初のディスクがシステムファームウェアも検出した最初のディスクであると仮定します。 CDまたはネットワークインストールでは、通常、この経験的な方法が機能します(複数のストレージコントローラがない場合)。
ただし、インストールメディアがUSBの場合、RHEL 6インストーラは他のストレージデバイスの前にそれを検出します。キックスタートインストールを設定している場合は、ブートローダに書き込むように指示できます/dev/sdb
。これはキーワードオプションを使用して--driveorder
行われますbootloader
。 USBからインストーラを起動する場合は、オペレーティングシステムがインストールされるディスクをドライブシーケンスの最初のディスクとして指定する必要があります。
bootloader --location=mbr --driveorder=sdb,sda <...>
ここのロジックは少し奇妙に感じることができます。これは、インストールされたシステムを起動するときにシステムBIOSが「最初のディスク」と見なすディスクをこのオプションが実際に識別しようとするためです。 BIOSが起動ディスクを選択する標準的な方法は、そのディスクを次のディスクに配置することです。 BIOS の表示に従って順番に最初のディスクに保存されます。ただし、--driveorderオプションは、インストール時に存在していたLinuxデバイス名を使用する必要があります。これはインストールされたシステムランタイムと必ずしも同じである必要はありません。
基本的に、私たちはインストーラに「システムがインストールされ、それ自体で起動したら、/dev/sdb
これが最初のディスクになるでしょう」と伝えなければなりません。
これは、ターゲットハードドライブにブートローダを正常にインストールするのに十分です。ただし、インストールされているシステムに/boot/grub/device.map
最初のディスクがどこにあるかを示すファイルも残ります/dev/sdb
。 USBドライブを取り外した状態でシステムを起動すると、もはや真実ではない可能性が高くなります。 GRUBパッケージを更新する必要がある場合、これが問題を引き起こし、アップグレード後にブートローダが失敗する可能性があります。
/boot/grub/device.map
しかし、解決策は簡単です。 USB Kickstartインストールを構築する場合は、インストール完了後にファイルを削除するようにインストール後にコマンドを設定するだけです。次のように簡単にできます。
%post
rm /boot/grub/device.map
%end
/boot/grub/device.map
存在しない場合、grub-install
次の実行時にコマンドは自動的に再生成されます。これにより、正しい選択をする可能性が高くなります。よく知りたい場合は、インストールが完了したら状況を確認し、システムを再起動してから/boot/grub/device.map
正しいファイルを手動で作成します。