web-dev-qa-db-ja.com

dosユーティリティファームウェアアップデータからの起動可能なPXEイメージの作成

DosユーティリティファームウェアからPXEブート可能イメージを作成できるかどうか疑問に思いました。いくつかの詳細については、ファームウェアアップデーターは通常 SBスティック にインストールされます。私はすべてのフラットファイルを持っています。フラットファイルをtftpbootサーバーにダンプしてから、pxemenuの適切なビットを追加するだけで問題ないのでしょうか、それともプロセスはもう少し複雑ですか?

FreeDOSを見つけましたが、ファームウェアROMだけでサイズが5MBであるため、1.44MBよりも大きなイメージが提供されません。これは問題です。より大きなイメージを作成しようとしました これらの手順を使用して イメージを起動するたびに、通常のFreeDOSメニューが表示されないため成功しませんでした(FreeDOSを出力するだけで、コマンドは表示されません)促す)。

編集:私は ここ からFreeDOSイメージからROMを実行することができましたが、もちろん、ROMを実行すると、ROM全体が実際にはそこになく、部分的にしか存在しないため、ROMが破損していると表示されます画像に1.44MBのスペースしかないためです。さらに複雑なことに、ROMはhimem.exeとemm386.exeが実行されている場合にのみ実行されます(FreeDOSで2番目のオプションを選択することで開始されます)。

EDIT2:フラットファイルをスティックに追加し、COMMAND.COMを見つけたカスタムfreedos usbスティックから追加した後、ようやくUSBスティックが機能するようになりました。それでもファイルをUSBイメージにコピーし、PXEから起動しようとすると、起動を拒否します。

4
Wilshire

ここでステップバイステップのチュートリアルを見ることができます: http://www.smop.co.uk/mediawiki/index.php/PXE_booting_floppy_images

または、「PXE経由でISOを起動」、「PXE経由でDOSを起動」などを検索してみてください。


拡張編集

以下はテストされ、動作しています。

必要なのは Full FreeDOS ISO、最近の Linux LiveCD 、インストールされたLinux、そして Virtual Machine だけです。

それからこれは私がしたことです:

  1. only20 MBサイズのハードディスクを使用して仮想マシンを作成し、フルFreeDOSISOをCD-ROMとして接続します。
  2. FreeDOS ISOから仮想マシンを起動し、仮想ハードディスクに最小バージョンのFreeDOSをインストールします。
  3. インストール中に、付属のFreeDOSツールを使用してハードディスクをパーティション分割してフォーマットしてください。ディスクは起動可能で、FAT16としてフォーマットされている必要があります。
  4. ISOイメージを取り出し、仮想ハードディスクから起動してみます。仮想ハードディスクが正常に起動するまで、手順を繰り返します。私にとっては、3番目のFreeDOSブートオプションでのみ機能しますが、すべて試してみてください。
  5. Linux LiveCDを仮想マシンに接続し、LiveCDを起動します。次に、仮想ハードディスクをファイルシステムのどこかにマウントします。
  6. 必要なDOSツールをマウントされたハードディスクに転送します。 HTTP、SCP、FTP、SMB、または実際のUSBフラッシュドライブを介して。外部またはLinuxLiveCDシステム内でファイルを抽出しました。ハードディスク上のFreeDOSファイルを上書きしないようにしてください。
  7. 仮想ハードディスクをアンマウントします。
  8. dd if=/dev/sda of=/tmp/freedos.imgを使用して仮想ハードディスクのディスクイメージを作成します(/ dev/sdaを仮想ハードディスクの正しいデバイス名に置き換えます)
  9. イメージ/tmp/freedos.imgを実際のマシン(SCP、SMB、FTPなど)に転送します。
  10. Linux LiveCDシステムをシャットダウンし、LiveCDイメージを取り出し、再起動して、FreeDOSハードディスク(イメージではない)から再起動してみます。
    それが機能し、コピーされたプログラムが表示された場合は、すべて問題なく、システムを再度シャットダウンできます。そうでない場合は、手順5)から繰り返します。
  11. Linuxをどこかにインストールしている場合は、syslinuxパッケージをインストールしてみてください。これは、独自のバイナリをコンパイルしたり、コンパイル済みの画像をどこかからダウンロードしたりするよりも簡単です。
    インストール後、ファイルシステムでmemdiskバイナリを見つけます。私は/usr/lib/syslinux/memdiskにいました。
  12. memdiskfreedos.imgをPXE環境のtftpサーバーに転送し、次の構成エントリを使用して構成します。

label freedos
menu label FreeDOS flash environment 
kernel memdisk
append initrd=freedos.img harddisk

PXE経由で起動し、ネットワークからFreeDOSをお楽しみください。


読者の演習として、オープンソースのPXEファームウェアである iPXE を試してみてください。これを使用すると、すべてのtftp/PXEがらくたをスキップして、代わりにHTTP経由で起動できます。この場合、iPXEブートローダーから起動して、次のコマンドを入力できます。

dhcp
imgfetch http://192.168.1.1/freedos.img
chain http://192.168.1.1/memdisk harddisk

dhcpは、192.168.1.1または(内部)Webサーバーと通信するためだけにDHCPサーバーからIPを提供します。代わりに静的IPを設定することもできます。他のコマンドは、HTTPからブートローダーとディスクイメージをダウンロードしてインストールし、イメージを起動します。印象的です。

6
mailq

memdisk を使用して、ブートディスクイメージ(フロッピーディスクやハードドライブなど)またはISOイメージを実行できます。たとえば、DBANを起動するためのPXE構成は次のとおりです。

label dban
menu label Wipe hard drive 
kernel memdisk
append initrd=dban/dban.img floppy

これは、一部のベンダーの更新ツールで機能するのに十分です。ただし、ファームウェアアップデートはイメージとしてではなく、多数のファイルとして配布されているようです。

AUTOEXEC.BAT CONFIG.SYS HPQUSB.exe O37_0323.ROM AFU0323.BAT AFUDOS.exe ID.exe

私がやろうとしているのは、HPQUSB.exeユーティリティを使用してUSBキーを準備し、USBキーのイメージを作成してから、memdiskを使用してそのイメージを起動することです。

0
sciurus