定義されたサーバーで何を開始するかを尋ねる方法

定義されたサーバーで何を開始するかを尋ねる方法

次の起動シナリオを完了するために使用できるオプションは何ですか?

起動時に(起動前に)定義されたネットワークサーバーに接続し、何を起動するかを尋ねます。 (一般的な回答:ローカルハードドライブから起動、代替回答:起動イメージXYZ)

目的は、クライアント側でユーザーの対話なしでクライアントを再インストールできることです。これを行う論理的な方法はPXEブートですが、デフォルトでは通常のブートに設定されている環境を制御できないため、PXEは攻撃ベクトルを開くので安全ではありません。

これまで、私は次を見つけようとしました。ローカルハードドライブからGrub2を起動し、iPXEをチェーンロードします。その後、iPXEはhttpを介して定義されたWebサーバーに接続し、iPXEスクリプトを取得します。しかし、そこで私はローカルドライブから起動する方法を見つけることができませんでした(Grubを再起動して無限ループで終わる以外)。起動しようとしているオペレーティングシステムは、Grub / iPXEが起動したのと同じハードドライブのパーティション2にあります。

  1. 私たちが達成したいことを達成する他の方法はありますか?
  2. 2番目の起動(iPXEから再起動)でGrubに別のオプションを選択するように指示するか、iPXEにパーティション2から起動するように指示する方法はありますか?

注:パーティション2には、Grubメニューから起動できるWindows Boatloaderが含まれています。

ベストアンサー1

私はリモートシステムをアップグレードするために次の技術を使用しましたが、これはあなたにも役立ちます。このシステムではリセットを開始するだけで、(ブート)画面は表示できません.システムはgrub(Ubuntu 12.04)で起動し、追加のパーティションとデータパーティションがあります。秘密は以下を挿入することです /etc/default/grub

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=false

以下の場合を除き、常にエントリ0(Ubuntu 12.04)で起動します。

  • コンソールの誰かが別のものを選択しました。
  • grub-reboot XUbuntuにログインして実行してから再起動してください。

Ubuntuからtarファイルをダウンロードして追加のパーティションに抽出し(または手動で少し変更を加える)、実行してupdate-grubgrubメニューを更新します(新しく塗りつぶされた追加のパーティションをスキャンし、そのOSのメニュー項目を作成します)。grub-reboot と を使用しますreboot

マシンを回復できない場合(つまりssh猶予期間以降に回復できない場合)、マシンをリセットするとUbuntuで再起動し、何が間違っているかを分析し、次のサイクルの準備ができます。

起動時に適切なプログラムを実行すると、ダウンロードする必要がある次の「画像」が何であるかを確認し、そのイメージがすでに存在するか(ダウンロードしていない場合)確認してインストールできます。その後、上記のように再起動します。

リーンベースのsystemdディストリビューションの場合、再起動プロセスは比較的高速である必要があり、代替OS/ディストリビューションのダウンロード/インストールにはほとんど時間がかかります。

おすすめ記事