web-dev-qa-db-ja.com

[ブート、仮想メディア] ISOからEFIファイル/スクリプトを実行する

ほとんどのベンダーは最近、EFIファイルのセット( example )としてのみサーバーのファームウェアアップデートを提供しています。ただし、サーバーの内部(および外部)IP-KVMは、ブート仮想メディアとしてISOイメージのみを接続できます。その仮想メディアでは、リモートファームウェアフラッシュは不可能です。

ほとんどの場合、サーバーはリモートであり、物理的にサーバーにアクセスしてUSBスティックをフラッシュファームウェアの更新に挿入することはできません。ファームウェアの更新は、プロセス全体を高速化するためにもリモートでなければなりません。問題は、起動可能なEFIからフラッシュファームウェアの更新まで、 これらの のようなISOファイルをどのように起動できるかです。

おそらく、レディソリューションは存在しません。自分で作りたいです。しかし、最初はグーグルで何も見つかりませんでした。開始のためのいくつかのマニュアルなどのポイントが必要です。このファイルをISOに配置する方法があるのか​​もしれませんが、このファイルはEFIにアクセスして起動できますか?

ビルドLinuxISOソリューションが欲しい。

3
raven428

以下のソリューションは、仮想マシンのLinux Mint 19 64に実装されています。

必要なツール

GParted –パーティションを管理するためのGUIツール。これは通常、Live Linux CD/DVDで入手できます。ディスクの最後に空き領域がない場合は、サイズを変更して小さなFATパーティションを作成する必要があります。既存のパーティションが使用中の場合、パーティションで機能するためには、Live Linux CD/DVDからGPartedを呼び出す必要がある場合があります。

genisoimage-ISOを管理するコマンドラインツール。これが利用できない場合は、インストールしてください。これはLinux Mint 19 64ビットですぐに利用できました

Sudo apt-get install genisoimage

ステップ1 – GPartedを使用して(できればLive Linux CD/DVDから起動します。この場合は、Live Linux Mint 19 64ビットを使用しました)、ディスクの最後に小さなFAT16フォーマットのパーティションを作成します。この特定のケースでは、100MBで十分です。そのような小さいサイズの場合、フォーマットがFAT32ではなくFAT16であることを確認してください。

enter image description here

手順2-必要なファイルを解凍して、このFATフォーマットのパーティションにコピーします。 Linuxでは、デフォルトのGUIファイルエクスプローラーを使用するだけです。個別のgzipコマンドは不要

enter image description here

enter image description here

ステップ3 –このパーティションのイメージを作成します。ここでのコマンドは

dd if=/dev/sda3 of=/home/test/efi/fat.img

上記の例では/dev/sda3は、ファイルを保持するFATフォーマットのパーティションであり、/home/test/efi/fat.imgは生成された画像ファイルです。

enter image description here

ステップ4-次に、EFIブータブルISOを作成します。ここでは、ファイル自体が必ずしも起動可能であるとは限りません。

genisoimage -v -J -r -V "TEST" \
  -o /home/test/myiso.iso \
  -eltorito-alt-boot \
  -e fat.img \
  -no-emul-boot \
  /home/test/efi

enter image description here

enter image description here

上記のコマンドでは、BIOSブートローダーを省略し、代替のEFIブートローダーのみを使用しています。 /home/test/myiso.isoは、作成中の新しいISOファイルです/home/test/efiはソースファイルの場所です。そのため、ブートローダーイメージ以外は何もありません。

これでISOがLinux Box上に作成されました。 ISOをCDドライブとしてマウントし、UEFIシステムをEFIシェルで起動します。これで、ブートローダーセクションがEFIシェルのドライブにマッピングされ、その内容と共にフォルダーを保持するその中のイメージにEFIシェルからアクセスできるようになります。

enter image description here

enter image description here

4
patkim

私があなたの質問を最もよく理解していることに基づいて、Windows 64ビットオペレーティングシステムで以下のツールを使用して解決策を提案します。

  1. imdisk_toolkit_64_bit仮想ディスクエミュレータ。 ここからダウンロードしてインストール
  2. Power ISO (問題のファイルが300MB未満であるため、試用版で行う必要があります)

手順

上記のソフトウェアをWindows OSにダウンロードしてインストールします。

最初にimdisk_toolkitを使用して仮想ディスクを作成し、ドライブ文字にマウントします。ディスクをFATファイルシステムにフォーマットします。ファイルサイズが40 MB未満になることはほとんどないため、約50〜60 MBのディスクで十分です。

enter image description here

EFIファイル、フラッシュファイル、スクリプトなどのファイルの内容をその仮想ドライブにコピーします。

enter image description here

同じアプリ内から、仮想ドライブの.imgファイルを作成して保存します。

enter image description here

仮想ドライブをマウント解除します。ジョブのこの部分は完了しました。

次に、Power ISOを開き、新しい空のISOコンテナーを作成します。

メニューアクションに移動します->ブート->ブート情報の追加

前に作成した.IMGファイルを選択します。

これでISOファイルは仮想的に起動可能になります(ファイル自体がブートローダーではないため実際には起動しませんが、ブートファイルとしてFATコンテナーを作成します)。

ファイルを.ISOとして保存し、CD/DVDに書き込みます。

このブートローダーFATコンテナーは、EFIシェルでアクセス可能で、EFIシェルでアクセス可能なドライブとしてそれ自体をマウントする必要があります。

これを仮想マシンでテストしました。これが実際のハードウェアで期待どおりに機能することを願っています。

enter image description here

enter image description here

2
patkim

おそらく、ファームウェアの更新をPXEブートイメージとしてビルドできます(ただし、再フラッシュループに陥らないように注意する必要があります)。 EFIを備えたほとんどのサーバーは、必要に応じてPXE BIOSブートにフォールバックすることもできます。

IP-KVMデバイスでUSBディスクを接続できる場合は、「イメージ」を接続するだけでブートできます。

より適切な方法は、実際に完全に起動したOSからサーバーをフラッシュすることです(一部の製造元は、これを行うためのOS固有のユーティリティを提供しています)。

最後に、一部のサーバーベンダーは[〜#〜] sum [〜#〜]の追加料金を請求し、サーバーのBIOSをネットワーク経由で(IPMIなどを介して)フラッシュできるようにします。そのシナリオ...

0
Anon

ブータブルISO以外のソリューションもありますが、構築するには多少の作業が必要です。選択するソリューションは、製造元とオペレーティングシステムに関するリモートコンピューターの性質に大きく依存します。

すべて同じメーカーのコンピューターの場合、ほとんどの大手メーカーがデータセンターの管理を目的とした製品を提供していますが、そのほとんどは無料です。それがあなたの場合、ここにいくつかのリンクがあります:

Windowsでは、PowerShellを使用してBIOSを更新できます。最初に、必要なファイルをリモートコンピューターにプッシュする必要があります。そのようなスクリプトの例は次のとおりです。

すべてのソリューションは調査とテストを必要としますが、どれも簡単ではなく、完全に保証されるものでもありません。

0
harrymc