 
这是命令 nbdkit,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
nbdkit - 用于创建 NBD 服务器的工具包
概要
nbdkit [--dump-config] [-f] [-g GROUP] [-i IPADDR]
[-P PIDFILE] [-p 端口] [-r] [--run CMD] [-s]
[-U SOCKET] [-u 用户] [-v] [-V]
插件 [键=值 [键=值 [...]]]
商品描述
网络块设备 (NBD) 是一种网络协议,用于通过网络访问块设备。
网络。 块设备是硬盘和行为类似于硬盘的东西,例如磁盘
图像和虚拟机。
“nbdkit”既是用于从“非常规”来源创建 NBD 服务器的工具包,也是
NBD 服务器的名称。
要创建一个新的网络块设备源,您需要做的就是编写一些胶水
函数,可能是 C 语言,也可能是 Perl 或 Python 等高级语言。 这
nbdkit 的自由许可旨在允许您将 nbdkit 与专有
库或在专有代码中包含 nbdkit。
如果你想写一个 nbdkit 插件,你应该阅读 nbdkit 插件(3)。
可以在“$libdir/nbdkit/plugins”中找到几个插件。 您可以提供完整路径
插件,像这样:
nbdkit $libdir/nbdkit/plugins/nbdkit-file-plugin.so [...]
但使用这种等效语法通常更方便:
nbdkit 文件 [...]
$libdir 在编译时设置。 要打印出来,请执行以下操作:
nbdkit --dump 配置
示例
在端口 10809 上提供文件“disk.img”:
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
全球 配置
- 帮帮我
显示简短的命令行使用信息并退出。
--转储配置
转储编译时配置值并退出。
-f
- 前景
--无叉
别 叉到后台。
-g 公司
- 团体 公司
启动后将组更改为“组”。 组名或数字组 ID 可以是
用过的。
服务器需要足够的权限才能执行此操作。 通常这会
意味着以 root 身份启动服务器。
参见 -u.
-i IP地址
--ip-地址 IP地址
--ip 地址 IP地址
在指定的接口上侦听。 默认是监听所有接口。 看
还 -p.
-P PID文件
--pid 文件 PID文件
--pid文件 PID文件
在 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 连接。 标准输入关闭后,
服务器退出。
您可以使用此选项从 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 的版本号并退出。
PLUGIN 配置
指定插件名称后,您可以(可选,这取决于插件)给出
在命令行中以“key=value”的形式配置插件。 例如:
nbdkit 文件 file=disk.img
要列出插件支持的所有选项,请执行以下操作:
nbdkit --help 文件
俘虏 NBD套件
您可以将 nbdkit 作为“俘虏进程”运行,使用 - 跑 选项。 这意味着 nbdkit
只要(例如)运行 哇(1)或 客鱼(1) 正在运行。 当这些退出时,nbdkit
被杀了。
一些例子应该可以清楚地说明这一点。
在 qemu 下运行 nbdkit captive:
nbdkit 文件 file=disk.img --run 'qemu -drive file=$nbd,if=virtio'
在 qemu 命令行上,$nbd 会自动替换为正确的 NBD 路径,因此它
可以连接到nbdkit。 当 qemu 退出时,nbdkit 会被杀死并自动清理。
在guestfish下运行nbdkit俘虏:
nbdkit 文件 file=disk.img --run 'guestfish --format=raw -a $nbd -i'
当guestfish 退出时,nbdkit 被杀死。
以下 shell 变量在 - 跑 参数:
$nbd
引用 nbdkit 端口或套接字的 URL。
注意这里有一些魔法,因为 qemu 和 guestfish 的 URL 有不同的格式,
因此 nbdkit 会尝试猜测您正在运行哪个。 如果魔法不起作用,请尝试使用
下面的变量代替。
$端口
如果≠“”,则为nbdkit 正在侦听的端口号。
$unix套接字
如果 ≠ "",则 nbdkit 正在侦听的 Unix 域套接字。
- 跑 暗示 - 前景. 不可能,而且可能不希望有
使用时nbdkit fork到后台 - 跑.
即使在运行俘虏时,nbdkit 仍会侦听常规 TCP/IP 端口,除非您
指定 -p/-U 选项。 如果你想要一个真正私人的俘虏 nbdkit,那么你应该
创建一个私有的随机 Unix 套接字,如下所示:
nbdkit -U - 插件 [args] --run '...'
讯号
“nbdkit”响应以下信号:
“信号”
“信号退出”
“信号词”
服务器干净地退出。
“信号管”
该信号被忽略。
使用 onworks.net 服务在线使用 nbdkit
 














