英語フランス語スペイン語

Ad


OnWorksファビコン

mknbi - クラウドでオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターを介して、OnWorks の無料ホスティング プロバイダーで mknbi を実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド mknbi です。

プログラム:

NAME


mknbi-ネットワークを起動可能なイメージにする

SYNOPSIS


エムクンビ - バージョン

エムクンビ --format =形式でアーカイブしたプロジェクトを保存します. --target =ターゲット [--output =出力ファイル] ターゲット固有の引数

mkelf-linux [--output =出力ファイル] カーネルイメージ [RAMディスク]

mknbi-linux [--output =出力ファイル] カーネルイメージ [RAMディスク]

mknbi-rom [--output =出力ファイル] .z?rom-file

mkelf-img [--output =出力ファイル] .z?img-file

mkelf-メニュー [--output =出力ファイル] [データ画像]

mknbi-メニュー [--output =出力ファイル] [データ画像]

mkelf-nfl [--output =出力ファイル] [データ画像]

mknbi-nfl [--output =出力ファイル] [データ画像]

mkelf-ルア [--output =出力ファイル] ルアビン

mknbi-fdos [--output =出力ファイル] カーネル.sys フロッピーイメージ

エムクンビドス [--output =出力ファイル] フロッピーイメージ

DESCRIPTION


エムクンビ は、さまざまなオペレーティングシステム用のネットワークブート可能イメージを作成するプログラムです。
ROMブートローダーであるEtherbootまたはNetbootによるネットワークローディングに適しています。 もし、あんたが
PXEを使用して起動しようとしていますが、もう探す必要はありません。mknbiは必要なものではありません。 あなたはたぶん
SYSLINUXパッケージの一部であるPXELINUXのようなものが必要です。

エムクンビ --versionは、現在のバージョンを出力します。 問題を報告する前にこれを使用してください。

エムクンビ で呼び出すことができます - フォーマット & - 目標 オプションまたはリンクを作成できます
フォーマットとターゲット固有の名前の下。 例:mkelf-linuxはmknbiと同じです
--format = elf --target=linux。

- フォーマット=形式でアーカイブしたプロジェクトを保存します. 出力の形式を指定します。 現在利用可能なのはnbiとelfです。
ELF形式は、Linuxとメニューでのみ機能します。 それ以外の場合、呼び出しは
mknbi。 以下の説明では、mknbi形式が使用されます。

- 目標=ターゲット ターゲットバイナリを指定します。 現在利用可能なのは、linux、menu、rom、fdosです。
とdos。 エムクンビ FreeBSDの起動には必要ありません。

--output =出力ファイル 出力ファイルを指定します。すべてのバリアントで使用できます。 Stdoutは
デフォルト。

実行可能ファイルをインストールする前に、パッケージを宛先の場所にインストールする必要があります
ライブラリファイルを検索するため、実行します。

それぞれの変種について個別に説明します。

MKELF-LINUX


mkelf-linux & mknbi-linux Linuxカーネルイメージ(zImage)からブートイメージを作成します
またはbzImage。

MKELF-LINUX OPTIONS


--param =文字列 デフォルトのパラメータ文字列を指定されたものに置き換えます。 このオプション
次のすべてのオプションを上書きするので、何をしているのかを知る必要があります。

-追加=文字列 指定した文字列を既存のパラメータ文字列に追加します。 このオプション
他のパラメータオプションが評価された後に動作します。

--rootdir=ルートディレクトリ ブートサーバーからNFS経由でマウントするディレクトリの名前を定義します。

このオプションがない場合、デフォルトではディレクトリ「/tftpboot/」が使用されます。%s、と
  %s 起動システムのホスト名またはIPアドレスを表します。
ホスト名属性は、BOOTP/DHCP応答に存在します。

「rom」が指定されていて、BOOTP /DHCPサーバーがRFC1497拡張を処理できる場合、
ルートパスオプションの値がルートディレクトリとして使用されます。

オプションに付けられた名前が「/ dev /"、対応するデバイスはとして使用されます
ルートデバイスであり、NFSディレクトリはマウントされません。

--ルートモード= "ro|rw"ルートデバイスを読み取り専用または読み取り/書き込みのどちらでマウントするかを定義します
それぞれ。 このパラメーターがない場合、デフォルトは「rw」です。

--ip =文字列 クライアントとサーバーのIPアドレスを定義します。

このオプションがない場合、IPアドレスは定義されず、カーネルが決定します
IPアドレス自体、通常はDHCP、BOOTP、またはRARPを使用します。 カーネルの
クエリは in 添加 〜へ bootromによって作成されたクエリで、IP:カーネルレベルが必要です
カーネルに含まれる自動構成(CONFIG_IP_PNP)機能。

重要な注意:Linuxカーネル2.2.x(x> = 18)および2.4.x(x> = 5)では、
必要 次の段落で有効化オプションのXNUMXつを指定して、IPを発生させます
有効化する自動構成。 以前のカーネルとは異なり、IP自動構成は
デフォルトでは発生しません。 また、IP自動構成とNFSrootが実行される可能性があることにも注意してください
Linux 2.6ではなく、RAMディスクとユーザースペースを使用したユーザースペースのIP構成方法
現在、DHCPデーモンが優先されます。

次のいずれかが指定された場合:「off、none、on、any、dhcp、bootp、rarp、both」が指定された場合、
オプションは変更されずにカーネルに渡され、そのautoconfigオプションは次のようになります。
選ばれた

このオプションの引数として「rom」が指定されている場合、NFSルートに必要なすべてのIPアドレス
マウントは、ブートROMがサーバーから取得したBOOTP/DHCP応答から継承されます。

ブートイメージのコンパイル中にアドレスを定義することも可能です。 その後、すべて
アドレスはコロンで区切って、次のように並べ替える必要があります。

"--ip ="client:server:gateway:netmask:hostname [:dev [:proto]]

このオプションの使用 mkelf-linux システム名をXNUMX進数のIPに自動的に変換します
この文字列の最初のXNUMXつのエントリのアドレス。 The hostname エントリはによって使用されます
起動したLinuxディスクレスクライアントのホスト名を設定するカーネル。 複数の場合
ネットワークインターフェイスがディスクレスクライアントにインストールされている場合、名前を指定することができます
オプションを指定することにより、NFSを介してルートディレクトリをマウントするために使用するインターフェイスの
値「dev」。 このエントリは、文字列「eth」で始まり、その後に0からXNUMXまでの数字が続く必要があります。
9.ただし、クライアントにXNUMXつのインターフェースしかインストールされていない場合、これは devの を含むエントリ
前のセミコロンは省略できます。 The プロト 引数はIP自動構成のXNUMXつです
上記のオプションを有効にします。 (作成者:IPが何であるかは私にはわかりません
自動構成は、パラメーターがすでに指定されている場合に実行されます。 多分それは得ることです
パラメータが指定されていません(例:NISドメイン)。

--rdbase =top | asis | 0xNNNNNNNN RAMディスクのロードアドレスを設定します。 「top」はRAMディスクをに移動します
カーネルにジャンプする前にメモリのトップ。 rdbaseがない場合、これがデフォルトです
指定。 このオプションでは、first-linuxのカーネルサイジングが正しく機能する必要があります。 "そのまま"
カーネルが低くロードされている場合は、0x100000(1MB)でロードします。 またはカーネルの直後に残します
カーネルが高くロードされている場合、メモリ内。 このオプションが機能するには、カーネルが次の機能を備えている必要があります
これらのアドレスでramdiskを処理します。 0xNNNNNNNN RAMディスクをXNUMX進アドレスに移動します
指定。 に受け入れられる適切なアドレスを指定する責任はユーザーにあります
カーネルであり、他のセグメントと重複しません。 Etherbootはアドレスを切り捨てます
4kの倍数(最後の3桁からゼロ)。

--rdnopad デフォルトでは、etherbootは(nullを使用して)任意のサイズの指定されたinitrdを複数にパッドします
4kバイト(メモリページ境界に合わせて)。 このオプションを使用して、パディングを無効にします
問題を引き起こします。

--first32 =プログラム デフォルトの第XNUMX段階のセットアッププログラムを上書きします。 呼び出すために使用することができます
Etherbootコードの拡張機能。これにより、追加の便利な機能への道が開かれます。
Etherbootフットプリントのサイズを拡大することなく。 --first32はELFによって暗示されます
形式でダウンロードすることができます。

--進捗状況 このオプションは、-first32と組み合わせて使用​​され、-firstXNUMXでのみ有効です。
呼び出されたプログラムがローダーに戻ることをEtherbootローダーに示すオプション
したがって、Etherbootは、プログラムの場合のようにネットワークデバイスを無効にしないでください。
Etherbootに戻ることはありません。

--relocseg =セガアドレス このオプションは、最初にLinuxの再配置を指定するために使用されます。
セットアップ、および別の64kバンドへのパラメーターセグメント。 現在、有効な値は次のとおりです。
0x9000および0x8000、0x90000および0x80000以上の線形アドレスに対応します。 The
デフォルトは0x9000です。 通常、Etherbootを0x84000に再配置した場合は、このオプションを使用します
DOCのような0x90000セグメントの他のコードを避けるため。 Linuxカーネルはサポートする必要があります
2.4カーネル以降を意味する再配置。 --relocsegはELFまたは
--first32=。

mem =メモリサイズ これはコマンドラインオプションではなく、傍受されるカーネルパラメータです
Linuxの解釈と一致するように、first32ステージまでに、メモリの最上位として使用されます。
メモリサイズ ギビバイト(2 ^ 30倍)を示すために「G」の接尾辞を付けることができ、「M」は示すために
メビバイト(2 ^ 20倍)または「K」はキビバイト(2 ^ 10倍)を示します。 接尾辞に注意してください
大文字です。 このカーネルパラメータは、-append=またはoption-129で指定できます。
DHCP/BOOTPレコード。

このようにプログラムを実行します。

mkelf-linux カーネルイメージ [RAM ディスク イメージ]> linux.nb

次に移動します Linux.nb ネットワークブートプロセスがそれを見つけることを期待する場所へ。

MKELF-LINUX BOOTP / DHCP VENDOR タグ


mkelf-linux Linuxカーネルの先頭にスタートアップコードが含まれています。
特定のDHCPベンダー定義のオプションを検出します。 これらはカーネルを変更するために使用できます
実行時のロードプロセス。 人気のあるDHCPデーモンであるISCDHCPDv3でこれらのオプションを使用するには、
構文は次のとおりです。 他のDHCPまたはBOOTPの構文を調整する必要があります
デーモン。

オプションetherboot-署名コード128=文字列;

オプションkernel-parameterscode129 = text;

...

option etherboot-signature E4:45:74:68:00:00;

オプションkernel-parameters"INITRD_DBG= 6 NIC = 3c509";

オプション128は、上記のXNUMXバイトの署名である必要があります。 のvendortags付録を参照してください
詳細については、Etherbootユーザーマニュアルを参照してください。

次のオプションは現在、によってサポートされています mkelf-linux:

129   文字列 このオプションで指定された値は、カーネルの最後に逐語的に追加されます
コマンドライン。 I/OアドレスやDMAチャネルなどの引数を指定するために使用できます
SCSIアダプタ、ネットワークカードなどの特別なハードウェアに必要です。
これらのオプションに必要な構文に関するLinuxカーネルのドキュメント。 と同じです
  -追加 コマンドラインオプションから mkelf-linux、ただし、イメージではなく起動時に機能します
ビルド時間。

130 このオプションを使用すると、マウントに使用するネットワークアダプタを選択できます
マルチホームディスクレスクライアント上のNFS経由のルート。 の構文 文字列 値は同じです
で使用される「dev」エントリについては --ip = 上記のオプション。 ただし、注意してください
  mkelf-linux ランタイムセットアップルーチンは、文字列の構文をチェックしません。

MKNBI-ROM


mknbi-rom Etherboot「.rom」または「.zrom」ブートROMイメージからブートイメージを作成します。 これ
既存のROMを使用してネットブートできるようにします。 これはEtherbootの開発に役立ちます
ドライバーまたは古いバージョンのEtherbootの新しいバージョンをロードします。

次のようにmknbi-romを実行します。

mknbi-rom nic.zrom> nic.nb

移動 ニックネーム ネットワークブートプロセスがそれを見つけることを期待する場所へ。 ブートROMは
これを オペレーティング   ROMイメージを実行します。

MKELF-IMG


mkelf-img Etherboot「.img」または「.zimg」イメージからブートイメージを作成します。 これにより、
既存のROMを使用してネットブートされます。 これは、Etherbootドライバーの開発や
新しいバージョンのEtherbootを古いバージョンと一緒にロードします。

次のようにmkelf-imgを実行します。

mkelf-img nic.zimg> nic.nb

移動 ニックネーム ネットワークブートプロセスがそれを見つけることを期待する場所へ。 ブートROMは
これを オペレーティング   イメージを実行します。

これは、「。z?rom」イメージにあるROMローダー部分をテストしないことに注意してください。
「.z?img」。

MKELF メニュー


mkelf-メニュー & mknbi-メニュー 補助メニュープログラムからブートイメージを作成します。 Etherbootには
ユーザーと対話できる補助プログラムをロードし、DHCPを変更する機能
構造体を作成し、ステータスを返します。 ステータスに基づいて、Etherbootは別のバイナリをロードできます。
再起動または終了します。 これにより、複雑なユーザーインターフェイスプログラムを作成する必要がなくなります。
Etherbootを変更する必要があります。 補助プログラムの仕様は、
Etherboot開発者マニュアル。

mkelf-メニュー & mknbi-メニュー ライブラリディレクトリから「menu」という名前のバイナリを取得します。
0x60000のエントリポイントがあると想定されます。 オプションの引数が受け入れられ、これは
0x80000でロードされます。 これは、メニュープログラムで使用されるデータファイルにすることができます。

現在、提供されているメニューバイナリは、Etherbootの組み込みメニュー機能と重複しています。
いくつかの小さな違いを除いて:サーバーまたはゲートウェイの仕様はありません
使用済みおよびネストされたTFTPロードは機能しません。 MOTDまたはIMAGE_MENUをで定義してはいけません
この外部メニューバイナリを使用できるようにするためのEtherbootビルド。 の仕様
必要なDHCPオプションは、Etherbootユーザーマニュアルのvendortagsドキュメントにあります。

一般的な使用法は次のとおりです。

mkelf-menu> menu.nb

次に、menu.nbをTFTPブートディレクトリに配置し、DHCPオプションを次のように編集します。
のドキュメントで詳しく説明されています)。

代替のユーザーインターフェイスプログラムを強くお勧めします。

Mケルフ-NFL


mkelf-nfl & mknbi-nfl NFLメニュープログラムからブートイメージを作成します。 このメニュープログラム
メニューテキストファイルファイルから画像の名前を取得します。このファイルには、
ロードするイメージのファイル名(tftpdルートディレクトリを基準)。 ユーザーインターフェイスは
GRUBで使用されているものと同様のライトバー。 にサンプルのmenu-text-fileがあります
「menu-nfl.eg」。 特別なエントリ「QuitEtherboot」(もちろん引用符なし)を使用できます
menu-text-filesで、Etherbootを終了して呼び出し元に戻るエントリとして
ROMの場合はBIOSである環境。

一般的な使用法は次のとおりです。

mkelf-nfl メニュー-テキスト-ファイル > nfl.nb

次に、nfl.nbをTFTPブートディレクトリに配置し、ブートイメージとして指定します。 に連鎖
他のメニューは機能します。

タイトルなどの他の機能を指定するために受け入れられたメニュー形式の拡張、
タイムアウト、色などを強くお勧めします。

Mケルフ・ルア


mkelf-ルア プリコンパイルされたLuaからELFイメージを作成します( "http://www.tecgraf.puc-rio.br/lua/")
プログラム。

一般的な使用法は次のとおりです。

mkelf-lua hello.lb> luaprog.n​​b

ここで、「hello.lb」はLuaプログラムから次の方法で生成されました。

luac -o hello.lb hello.lua

この環境でLuaプログラムで使用できる機能については、別の説明で説明します。
の資料をご参照ください。

MKNBI-FDOS


mknbi-fdos FreeDOSカーネルファイルとフロッピーイメージからブートイメージを作成します。 ご了承ください
カーネルイメージはブートイメージのフロッピーセクションから読み取られませんが、別のものです
ブートイメージのセクション。 ブートローダーは、直接ジャンプするように調整されています。 これ
で占有されるスペースを意味します フロッピーディスク カーネルイメージファイルによって、
アプリケーションとデータに使用されます。

最近のカーネル、おそらく少なくとも2006年のFreeDOSのディストリビューションを入手してください。
2012年にテストされましたが、それより古いものはありません。 ここでFreeDOSカーネルを入手できます。

"http://freedos.sourceforge.net/"

指示に従って、起動可能なフロッピーを作成します。 次に、次のフロッピーの画像を取得します。

dd if = / dev / fd0 of = / tmp / floppyimage

また、抽出します カーネル.sys フロッピーから。 mtoolsを使用して画像からこれを行うことができます
パッケージ、ファイルをとして指定することにより ドライブ このような宣言で 〜/ .mtoolsrc:

ドライブx:file = "/ tmp / floppyimage"

次に、

mcopy x:kernel.sys。

次に、次の方法でmknbiを実行します。

mknbi-fdos kernel.sys / tmp / floppyimage> freedos.nb

コラボレー カーネル.sys & / tmp / floppyimage 上で抽出されたファイルです。 次に移動します フリードス.nb
ネットワークブートプロセスがそれを見つけることを期待する場所へ。

正常にネットブートできるようになったら、戻ってファイルをに追加できます。
フロッピー画像。 削除できます カーネル.sys スペースを節約するためにフロッピーイメージで、それはそうではありません
必要です。 mformatを使用して、任意のサイズのフロッピーイメージを作成できることに注意してください。
mtoolsのプログラムでは、ブートフロッピーの実際のサイズに制限されません。

MKNBI-FDOS OPTIONS


- ハードディスク ブートRAMディスクを最初のハードディスク、つまりC:にします。 あなたが望むかもしれないXNUMXつの理由
これを行うのは、実際のフロッピーを使用したいからです。 の「ディスクサイズ」の制限
このオプションではブートイメージが生成されないため、このオプションを使用する理由にはなりません。 これ
オプションは--disableharddiskと互換性がありません。

--ハードディスクを無効にする ramdiskがフロッピーディスクドライブをシミュレートしているとき、このスイッチは
ハードディスクアクセスを無効にします。 これは、クライアントがネットワークファイルを使用する必要がある場合に必要です
ドライブC:としてのシステム。これは、DOSでハードディスクが見つからない場合にのみ可能です。 これ
オプションは--harddiskと互換性がありません。

--ノスカッシュ フロッピーイメージの最後から未使用のセクターを切り取ろうとしないでください。 これ
フロッピーのFATファイルシステムの場合、ブートイメージのサイズが大きくなり、読み込み時間が長くなります
ほとんど空ですが、
押しつぶしアルゴリズムは正しく機能しています。

--rdbase =0xNNNNNNNN RAMディスクのロードアドレスを設定します。 ramdiskのデフォルトのロードアドレス
0x110000です。 何らかの理由で必要な場合は、上に移動できます(下は機能しません)。
現在占有しているアドレスに他のものをロードします。 これは線形アドレスであり、
セグメントアドレス。最後の4ビットは使用されないため、0にする必要があります。

MKNBI-DOS


エムクンビドス 起動可能なDOSファイルシステムを含むフロッピーイメージからブートイメージを作成します。 それ
mtoolsを使用している場合は、物理フロッピーでファイルシステムを構築する必要はありません。
パッケージですが、最初は任意のサイズの起動可能なフロッピーが必要です。 最初にブーツを抽出します
フロッピーからブロックします。このブートブロックは、コピー先のDOSカーネルファイルと一致する必要があります。
次のステップ:

dd if = / dev / fd0 of = bootblock bs = 512 count = 1

次に、DOSカーネルファイルを取得します(これはDR-DOSの場合は正しいですが、MSでは名前が異なります-
DOS、IO.SYSおよびMSDOS.SYS):

mcopy a:IBMBIO.COM a:IBMDOS.COM a:COMMAND.COM。

次に、にエントリを作成します 〜/ .mtoolsrc フロッピーをファイルにマップすることを宣言するには:

ドライブx:file = "/ tmp / floppyimage"

次に、目的のサイズのフロッピー、この例では2.88MBのフロッピーを同時にフォーマットします。
ブートブロックを書き込む時間:

mformat -C -t 80 -s 36 -h 2 -Bブートブロックx:

「フロッピー」のサイズは、シリンダー、セクターの数の制限によってのみ制限されます
ヘッドはそれぞれ1023、63、255であり、RAMの容量は
メモリ内の「フロッピー」に割り当てます。 RAMは貴重なので、少し大きいサイズを選択してください
「フロッピー」ファイルを保持するために必要なものよりも。

最後に、必要なすべてのファイルをフロッピーにコピーします。

mcopy IBMBIO.COM x:

mcopy IBMDOS.COM x:

mcopy COMMAND.COM x:

mcopy CONFIG.SYS AUTOEXEC.BAT APP.EXE APP.DAT ... x:

MS-DOSの場合は、IBMIO.COMの代わりにIO.SYSを使用し、IBMDOS.COMの代わりにMSDOS.SYSを使用します。 の場合
ファイルを保存する必要があります。VFAT小文字の名前がで生成された場合は機能しない可能性があります。
フロッピー画像。 ブートブロックはコピーの順序を予期する可能性があるため、コピーの順序に注意してください。
新しくフォーマットされたディスクの最初のXNUMXつのエントリは、IO.SYS、MSDOS.SYSになります。 おそらくあまりにも
安全にプレイするには、COMMAND.COMをXNUMX番目のエントリにする必要があります。 PhilDaveyとPhillipに感謝します
これらのヒントのRoa。

MS-DOS6.22のブートブロックがRAMディスクの起動に失敗することがあるという報告があります。 君
ブートブロックをオフにする代わりに、Netbootのブートブロックを使用してみてください。
フロッピー。 このブートブロックをaltboot.binとしてディストリビューションに提供し、ソースに提供しました
altboot.Sおよびboot.incとして形成します。 重要なことのXNUMXつは、IO.SYSを最初のファイルにすることです。
ディスク、またはこのブートブロックは機能しません。

同じサイズのメディアがある場合は、イメージが次の方法で起動可能かどうかをテストできます。
メディアにコピーしてから起動します。

dd if = / tmp / floppyimage of = / dev / fd0

次に、イメージに対してmknbi-dosを実行します / tmp / floppyimage ブートイメージを作成するには:

mknbi-dos / tmp / floppyimage> dos.nb

移動 dos.nb ネットワークブートプロセスがそれを見つけることを期待する場所へ。

MKNBI-DOS OPTIONS


- ハードディスク ブートRAMディスクを最初のハードディスク、つまりC:にします。 あなたが望むかもしれないXNUMXつの理由
これを行うのは、実際のフロッピーを使用したいからです。 の「ディスクサイズ」の制限
このオプションではブートイメージが生成されないため、このオプションを使用する理由にはなりません。 これ
オプションは--disableharddiskと互換性がありません。

--ハードディスクを無効にする ramdiskがフロッピーディスクドライブをシミュレートしているとき、このスイッチは
ハードディスクアクセスを無効にします。 これは、クライアントがネットワークファイルを使用する必要がある場合に必要です
ドライブC:としてのシステム。これは、DOSでハードディスクが見つからない場合にのみ可能です。 これ
オプションは--harddiskと互換性がありません。

--ノスカッシュ フロッピーイメージの最後から未使用のセクターを切り取ろうとしないでください。 これ
フロッピーのFATファイルシステムの場合、ブートイメージのサイズが大きくなり、読み込み時間が長くなります
ほとんど空ですが、
押しつぶしアルゴリズムは正しく機能しています。

--rdbase =0xNNNNNNNN RAMディスクのロードアドレスを設定します。 ramdiskのデフォルトのロードアドレス
0x110000です。 何らかの理由で必要な場合は、上に移動できます(下は機能しません)。
現在占有しているアドレスに他のものをロードします。 これは線形アドレスであり、
セグメントアドレス。最後の4ビットは使用されないため、0にする必要があります。

onworks.net サービスを使用して mknbi オンラインを使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad