これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド nbdkit です。
プログラム:
NAME
nbdkit - NBD サーバーを作成するためのツールキット
SYNOPSIS
nbdkit [--dump-config] [-f] [-g グループ] [-i IPADDR]
[-P PIDFILE] [-p ポート] [-r] [--run CMD] [-s]
[-U ソケット] [-u ユーザー] [-v] [-V]
プラグイン [キー=値 [キー=値 [...]]]
DESCRIPTION
ネットワーク ブロック デバイス (NBD) は、ネットワーク経由でブロック デバイスにアクセスするためのネットワーク プロトコルです。
通信網。 ブロック デバイスは、ハードディスク、およびディスクなどのハードディスクのように動作するものです。
イメージと仮想マシン。
「nbdkit」は、「型破りな」ソースから NBD サーバーを作成するためのツールキットであり、
NBD サーバーの名前。
新しいネットワーク ブロック デバイス ソースを作成するには、いくつかのグルーを記述するだけです。
関数は、おそらく C で、あるいは Perl や Python などの高級言語で作成されます。 の
nbdkit のリベラル ライセンスは、nbdkit をプロプライエタリなライセンスとリンクできるようにすることを目的としています。
ライブラリを使用するか、独自のコードに nbdkit を含めます。
nbdkit プラグインを作成したい場合は、以下を読む必要があります。 nbdkit-プラグインとします。
いくつかのプラグインが「$libdir/nbdkit/plugins」にある場合があります。 フルパスを指定できます
プラグインは次のようになります。
nbdkit $libdir/nbdkit/plugins/nbdkit-file-plugin.so [...]
ただし、通常は、次の同等の構文を使用する方が便利です。
nbdkit ファイル [...]
$libdir はコンパイル時に設定されます。 印刷するには、次のようにします。
nbdkit --dump-config
例
ファイル「disk.img」をポート 10809 で提供します。
nbdkit ファイル file=disk.img
example1 プラグインを実行し、次を使用して接続します。 ゲストフィッシュ(1):
nbdkit の例 1
guestfish --ro -a nbd://localhost
example3 プラグインを実行し、次を使用して接続します。 ゲストフィッシュ(1):
nbdkit 例 3 サイズ = 1G
guestfish --ro -a nbd://localhost
特定のプラグインに関する使用状況情報を表示するには:
nbdkit --help の例 1
GLOBAL OPTIONS
- 助けて
コマンドラインの使用法に関する簡単な情報を表示して終了します。
--ダンプ構成
コンパイル時の構成値をダンプして終了します。
-f
- 前景
-フォークなし
しないでください 背景にフォークします。
-g GROUP
- グループ GROUP
起動後、グループを「GROUP」に変更します。 グループ名または数値のグループ ID を使用できます。
中古。
これを行うには、サーバーに十分な権限が必要です。 通常、これは
root としてサーバーを起動することを意味します。
参照 -u.
-i IPADDR
--ip-アドレス IPADDR
--ipaddr IPADDR
指定されたインターフェイスでリッスンします。 デフォルトでは、すべてのインターフェイスでリッスンします。 見る
また -p.
-P PIDFファイル
--pid-ファイル PIDFファイル
--pidfile PIDFファイル
nbdkit の準備ができたら、「PIDFILE」(サーバーのプロセス ID を含む) を書き込みます。
接続を受け入れるため。
ファイルがすでに存在する場合は上書きされます。 nbdkit ありません ファイルを削除するときは
それは終了します。
-p PORT
- 港 PORT
nbdkit がリクエストを処理する TCP/IP ポート番号を変更します。 デフォルトは 10809 です。
参照 -i.
-r
-読み取り専用
-読み取り専用
エクスポートは読み取り専用になります。 クライアントが書き込むと、エラーが発生します。
一部のプラグインは本質的に書き込みをサポートしていないことに注意してください。 それらのプラグインを使用すると、 -r
オプションが暗黙的に追加されます。
コピーオンライト (または「スナップショット」) 機能は、このサーバーではサポートされていません。 しかし
qemu をクライアントとして (または libguestfs 経由で間接的に) 使用している場合は、サポートされます。
スナップショット。
- 走る CMD
nbdkit を「CMD」のキャプティブ サブプロセスとして実行します。 「CMD」が終了すると、nbdkit が強制終了されます。 見る
以下「CAPTIVE NBDKIT」。
このオプションは、 - 前景.
-s
- 独身
--標準入力
フォークしないでください。 stdin/stdout で単一の NBD 接続を処理します。 stdin が閉じた後、
サーバーが終了します。
このオプションを使用すると、inetd、systemd、または同様のスーパーサーバーから nbdkit を実行できます。 または
テストのためだけに。 または、従来とは異なる方法で nbdkit を実行したい場合。
このオプションは、 - 前景.
-U ソケット
--unix ソケット
-U -
--unix -
Unix ドメイン ソケット「SOCKET」(パス) での接続を受け入れます。
nbdkit はこのソケットを作成しますが、おそらく間違った権限を持つことになります (
寛容です)。 権限のないユーザーがこれに接続することが問題となる場合
nbdkit が起動してから許可されたユーザーが接続するまでの間にソケットを使用し、その後
制限された権限を持つディレクトリにソケットを置きます。
nbdkitは行います ソケットファイルが終了したら削除します。 発信者は、
使用後のソケット ファイル (それ以外の場合、nbdkit を再度起動しようとすると、
「アドレスはすでに使用されています」エラー)。
ソケット名が - 次に、nbdkit はランダムに名前が付けられたプライベート ソケットを生成します。 これ
「CAPTIVE NBDKIT」と併用すると便利です。
-u USER
- ユーザー USER
起動後、ユーザーを「USER」に変更してください。 ユーザー名または数値のユーザー ID を使用できます。
これを行うには、サーバーに十分な権限が必要です。 通常、これは
root としてサーバーを起動することを意味します。
参照 -g.
-v
-詳細
詳細メッセージを有効にします。
使用すると良いでしょう -f プロセスがバックグラウンドにフォークしないようにするためでもあります
(ただし必須ではありません)。
-V
- バージョン
nbdkit のバージョン番号を出力して終了します。
プラグイン CONFIGURATION
プラグイン名を指定した後、次のように指定できます(オプションで、プラグインによって異なります)。
コマンドラインで「key=value」の形式でプラグイン設定を行います。 例えば:
nbdkit ファイル file=disk.img
プラグインでサポートされているすべてのオプションをリストするには、次の手順を実行します。
nbdkit --ヘルプ ファイル
捕虜 NBDKIT
nbdkit を「キャプティブ プロセス」として実行するには、 - 走る オプション。 これは、nbdkit を意味します。
(たとえば) qemu(1)または ゲストフィッシュ(1)は実行中です。 それらが終了すると、nbdkit
殺されます。
いくつかの例でこれを明確にする必要があります。
qemu で nbdkit captive を実行するには:
nbdkit file file=disk.img --run 'qemu -drive file=$nbd,if=virtio'
qemu コマンドラインでは、$nbd が正しい NBD パスに自動的に置き換えられます。
nbdkitに接続できます。 qemu が終了すると、nbdkit が強制終了され、自動的にクリーンアップされます。
guestfish の下で nbdkit captive を実行します。
nbdkit ファイル file=disk.img --run 'guestfish --format=raw -a $nbd -i'
guestfish が終了すると、nbdkit が強制終了されます。
次のシェル変数は、 - 走る 引数:
$nbd
nbdkit ポートまたはソケットを参照する URL。
qemu と guestfish の URL は形式が異なるため、ここにはいくつかの魔法があることに注意してください。
したがって、nbdkit は、どちらを実行しているかを推測しようとします。 魔法が効かなかったら使ってみてください
代わりに以下の変数を使用します。
$ポート
≠ "" の場合、nbdkit がリッスンしているポート番号。
$unixsocket
≠ "" の場合、nbdkit がリッスンしている Unix ドメイン ソケット。
- 走る 含意する - 前景。 持つことは不可能であり、おそらく望ましくありません。
nbdkit を使用するとバックグラウンドにフォークされる - 走る.
キャプティブを実行している場合でも、nbdkit は通常の TCP/IP ポートでリッスンします。
その -p/-U オプション。 本当にプライベートなキャプティブ nbdkit が必要な場合は、次のようにする必要があります。
次のように、プライベートのランダムな Unix ソケットを作成します。
nbdkit -U - プラグイン [args] --run '...'
信号
「nbdkit」は次のシグナルに応答します。
「シギント」
「シグクイット」
「シグターム」
サーバーは正常に終了します。
「シグパイプ」
この信号は無視されます。
onworks.net サービスを使用してオンラインで nbdkit を使用する