英语法语西班牙语

Ad


OnWorks 网站图标

mknbi - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 mknbi

这是命令 mknbi,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


mknbi - 制作网络可启动映像

概要


米克尼比 - 版

米克尼比 --格式=格式 --目标=目标 [--输出=输出文件] 特定目标参数

mkelf Linux [--输出=输出文件] 内核映像 [RAMDISK]

mknbi-Linux [--输出=输出文件] 内核映像 [RAMDISK]

mknbi-rom [--输出=输出文件] .z?rom 文件

mkelf-img [--输出=输出文件] .z?img-文件

mkelf-菜单 [--输出=输出文件[数据图像]

mknbi-菜单 [--输出=输出文件[数据图像]

MKELF-NFL [--输出=输出文件[数据图像]

mknbin-nfl [--输出=输出文件[数据图像]

mkelf-lua [--输出=输出文件] 鲁宾

MKNBI-FDOS [--输出=输出文件] 内核文件 软盘映像

mknbi-dos [--输出=输出文件] 软盘映像

商品描述


米克尼比 是一个为各种操作系统制作网络可启动映像的程序
适用于通过 Etherboot 或 Netboot 进行网络加载,它们是 ROM 引导加载程序。 如果你
正在寻找使用 PXE 引导,别再看了,mknbi 不是您想要的。 你可能
想要像 PXELINUX 这样的东西,它是 SYSLINUX 包的一部分。

米克尼比 --version 打印当前版本。 在报告问题之前使用它。

米克尼比 可以用 - 格式- 目标 可以对其进行选项或链接
在格式和目标特定名称下。 比如 mkelf-linux 和 mknbi 一样
--format=elf --target=linux。

- 格式=格式 指定输出的格式。 目前可用的是nbi和elf。
ELF 格式仅适用于 linux 和菜单。 否则调用与 for 相同
mknbi。 在下面的讨论中,使用了 mknbi 形式。

- 目标=目标 指定目标二进制文件。 目前可用的有linux、menu、rom、fdos
和做。 米克尼比 不需要引导 FreeBSD。

--输出=输出文件 指定输出文件,可用于所有变体。 标准输出是
默认。

必须先将包安装在目标位置,然后才能执行可执行文件
运行,因为它查找库文件。

将分别描述每个变体。

MKELF-Linux


mkelf Linuxmknbi-Linux 从 Linux 内核映像制作启动映像,或者 zImage
或 bzImage。

MKELF-Linux 配置


--参数=绳子 用指定的参数字符串替换默认参数字符串。 这个选项
覆盖以下所有选项,因此您应该知道自己在做什么。

- 附加=绳子 将指定的字符串附加到现有的参数字符串。 这个选项
在评估其他参数选项后运行。

--根目录=根目录 定义要从引导服务器通过 NFS 挂载的目录名称。

如果没有这个选项,默认是使用目录“/tftpboot/”%s,
%s 表示引导系统的主机名或 IP 地址,具体取决于
主机名属性存在于 BOOTP/DHCP 回复中。

如果给出“rom”,并且 BOOTP/DHCP 服务器能够处理 RFC 1497 扩展,
rootpath 选项的值用作根目录。

如果选项的名称以“/ dev /”,对应的设备作为
根设备,不会挂载 NFS 目录。

--root模式="ro|rw" 定义根设备是以只读方式挂载还是以读写方式挂载
分别。 如果没有这个参数,默认是“rw”。

--ip=绳子 定义客户端和服务器 IP 地址。

如果没有此选项,则不会定义 IP 地址,内核将确定
IP 地址本身,通常使用 DHCP、BOOTP 或 RARP。 注意内核的
查询是 in 增加 bootrom 进行的查询,需要 IP:内核级别
要包含在内核中的自动配置 (CONFIG_IP_PNP) 功能。

重要说明:在 x >= 2.2 的 Linux 内核 18.x 和 x >= 2.4 的 5.x 中,它是
必要 指定下一段中的启用选项之一以导致 IP
自动配置被激活。 与以前的内核不同,IP 自动配置不会
默认情况下不会发生。 还要注意 IP 自动配置和 NFSroot 可能会去
在 Linux 2.6 中以及使用 ramdisk 和用户空间的用户空间 IP 配置方法
现在首选 DHCP 守护进程。

如果给出以下之一:“off、none、on、any、dhcp、bootp、rarp、both”,则
选项将未经修改地传递给内核,并导致该自动配置选项成为
选择。

如果“rom”作为此选项的参数给出,则 NFS 根目录的所有必要 IP 地址
挂载将继承自 bootrom 从服务器获得的 BOOTP/DHCP 应答。

也可以在编译引导映像期间定义地址。 那么,所有
地址必须用冒号分隔,并按以下方式排序:

“--ip=”客户端:服务器:网关:网络掩码:主机名[:dev[:proto]]

使用这个选项 mkelf Linux 将自动将系统名称转换为十进制 IP
此字符串中前三个条目的地址。 这 主机 条目将被使用
内核设置启动的 Linux 无盘客户端的主机名。 当不止一个
网络接口安装在无盘客户端,可以指定名称
通过提供可选的用于通过 NFS 挂载根目录的接口
值“开发”。 此条目必须以字符串“eth”开头,后跟一个从 0 到
9. 但是,如果客户端只安装了一个接口,这个 开发 条目包括
前面的分号可以省略。 这 参数是 IP 自动配置之一
启用上面列出的选项。 (作者:不清楚IP是什么
自动配置在参数已经指定时执行。 或许是为了获得
未指定参数,例如 NIS 域。)

--rdbase=顶部|sis|0xNNNNNNNN 设置 ramdisk 加载地址。 “top”将 ramdisk 移动到
跳转到内核之前的内存顶部。 如果 rdbase 不是,这是默认值
指定的。 此选项要求 first-linux 的内核大小正确工作。 “阿西”
如果内核加载低,则在 0x100000 (1MB) 处加载它; 或者在内核之后留下它
在内存中,如果内核加载高。 要使此选项起作用,内核必须能够
处理这些地址的 ramdisk。 0xNNNNNN 将 ramdisk 移动到十六进制地址
指定的。 用户有责任指定可接受的合适地址
内核并且不与任何其他段重叠。 Etherboot 会将地址四舍五入到
4k 的倍数(最后 3 位到零)。

--rdnopad 默认情况下,etherboot 将(带有空值)任何大小的给定 initrd 填充为多个
4k 字节(对齐到内存页边界)。 使用此选项禁用填充,如果它
导致问题。

--first32=程序 覆盖默认的第一阶段设置程序。 它可以用来调用
Etherboot 代码的扩展,为其他有用的功能铺平了道路
无需扩大 Etherboot 占用空间的大小。 --first32 由 ELF 隐含
格式。

--进度回报 此选项与 --first32 一起使用并且仅对它有效
向 Etherboot 加载程序指示被调用程序将返回加载程序的选项
因此 Etherboot 不应像程序一样禁用网络设备
永远不会回到 Etherboot。

--relocseg=分段地址 此选项用于指定 Linux 首先的重定位、引导、
设置和参数分段到另一个 64k 频段。 目前唯一有效的值是
0x9000和0x8000,对应0x90000和0x80000向上的线性地址。 这
默认值为 0x9000。 如果您已将 Etherboot 重新定位到 0x84000,通常您会使用此选项
避免 0x90000 段中的其他代码,如 DOC。 Linux内核必须支持
重定位意味着 2.4 或更高版本的内核。 --relocseg 仅与 ELF 或
--first32=。

内存=内存大小 这不是命令行选项而是拦截的内核参数
由 first32 阶段并用作内存的顶部,以匹配 Linux 的解释。
内存大小 可以加后缀“G”表示千兆字节(乘以 2^30),“M”表示
mebibytes(乘以 2^20)或“K”表示千比字节(乘以 2^10)。 注意后缀
是大写的。 这个内核参数可以在 --append= 或 option-129 中指定
DHCP/BOOTP 记录。

这样运行程序:

mkelf Linux 内核映像 [虚拟磁盘映像] > linux.nb

然后移动 linux.nb 到网络启动过程期望找到它的位置。

MKELF-Linux 启动/DHCP 卖方 标签


mkelf Linux 在 Linux 内核的开头包含一个启动代码,它能够
检测某些 DHCP 供应商定义的选项。 这些可用于修改内核
运行时加载过程。 要将这些选项与流行的 DHCP 守护程序 ISC DHCPD v3 一起使用,
语法如下。 您将需要调整其他 DHCP 或 BOOTP 的语法
守护进程。

选项 etherboot 签名代码 128 = 字符串;

选项内核参数代码 129 = 文本;

...

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

选项内核参数“INITRD_DBG=6 NIC=3c509”;

选项 128 需要是上面的六字节签名。 请参阅供应商标签附录
有关详细信息,请参阅 Etherboot 用户手册。

目前支持以下选项 mkelf Linux:

129 绳子 使用此选项给出的值逐字附加到内核的末尾
命令行。 它可用于指定 I/O 地址或 DMA 通道等参数
需要特殊硬件,如 SCSI 适配器、网卡等。请咨询
有关这些选项所需语法的 Linux 内核文档。 它与
- 附加 命令行选项 mkelf Linux, 但在启动时工作而不是图像
建造时间。

130 使用此选项可以选择用于安装的网络适配器
在多宿主无盘客户端上通过 NFS 进行 root。 的语法 绳子 价值是一样的
至于与“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 引导目录中并根据
文档。

强烈鼓励使用替代用户界面程序。

美式橄榄球联盟


MKELF-NFLmknbin-nfl 从 NFL 菜单程序制作启动映像。 这个菜单程序
从菜单文本文件文件中获取图像的名称,该文件只包含带有
要加载的图像的文件名(相对于 tftpd 根目录)。 用户界面是
一个灯条,类似于 GRUB 中使用的灯条。 有一个示例菜单文本文件
“菜单-nfl.eg”。 可以使用特殊条目“Quit Etherboot”(当然没有引号)
在菜单文本文件中作为导致 Etherboot 退出并返回调用的条目
环境,在 ROM 的情况下是 BIOS。

典型用法是:

MKELF-NFL 菜单文本文件 > nfl.nb

然后将 nfl.nb 放在 TFTP 引导目录中并指定为引导映像。 链接到
其他菜单有效。

接受菜单格式的增强以指定其他功能,例如标题、
高度鼓励超时、颜色等。

MKELF-LUA


mkelf-lua 从预编译的 Lua ("http://www.tecgraf.puc-rio.br/lua/")
程序。

典型用法是:

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

其中“hello.lb”是通过以下方式从 Lua 程序生成的:

luac -o hello.lb 你好.lua

此环境下 Lua 程序可用的功能在单独的
文档。

MKNBI-FDOS


MKNBI-FDOS 从 FreeDOS 内核文件和软盘映像制作启动映像。 注意
内核映像不是从引导映像的软盘部分读取的,而是一个单独的
启动映像中的部分。 引导加载程序已调整为直接跳转到它。 这个
表示将占用的空间 软盘 通过内核映像文件现在可以
用于应用程序和数据。

获得带有最新内核的 FreeDOS 发行版,可能至少是 2006 年。它已经
用 2012 测试,但没有更旧的。 您可以在此处获取 FreeDOS 内核:

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

按照说明制作可引导软盘。 然后使用以下命令获取软盘的图像:

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

还提取 内核文件 从软盘。 您可以使用 mtools 从图像中执行此操作
包,通过将文件指定为 驾驶 像这样的声明 〜/.mtoolsrc:

驱动器 x: file="/tmp/floppyimage"

然后运行:

mcopy x:kernel.sys 。

然后通过以下方式运行 mknbi:

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

哪里 内核文件/tmp/软盘图像 是上面提取的文件。 然后移动 freedos.nb 网站
到网络启动过程期望找到它的位置。

如果您已成功将其设置为网络引导,则可以返回并将文件添加到
软盘图像。 你可以删除 内核文件 在软盘映像中以节省空间,这不是
需要。 请注意,您可以使用 mformat 创建任意大小的软盘映像
来自 mtools 的程序,您不受引导软盘的实际大小的限制。

MKNBI-FDOS 配置


- 硬盘 将启动 ramdisk 设为第一个硬盘,即 C:。 您可能想要的一个原因
这样做是因为您要使用真正的软盘。 中“磁盘大小”的限制
此选项不会引发引导映像,因此这不是使用此选项的理由。 这个
选项与 --disableharddisk 不兼容。

--禁用硬盘 当 ramdisk 模拟软盘驱动器时,此开关将
禁用硬盘访问。 如果客户端应该使用网络文件,这是必要的
系统作为驱动器 C:,这只有在 DOS 找不到硬盘的情况下才有可能。 这个
选项与 --harddisk 不兼容。

--诺斯南瓜 不要试图从软盘映像的末尾切掉未使用的扇区。 这个
如果软盘上的 FAT 文件系统增加了启动映像的大小,从而增加了加载时间
大部分为空,但如果您怀疑
挤压算法工作正常。

--rdbase=0xNNNNNN 设置 ramdisk 加载地址。 ramdisk的默认加载地址
是 0x110000。 如果出于某种原因您需要将它移得更高(降低将不起作用)
在它当前占用的地址加载其他东西。 因为这是一个线性地址而不是
段地址,最后 4 位未使用,应为 0。

MKNBI-DOS


mknbi-dos 从包含可启动 DOS 文件系统的软盘映像制作启动映像。 它
如果您有 mtools,则无需在物理软盘上构建文件系统
包,但您需要一张任何大小的可引导软盘才能开始。 首先解压boot
从软盘中阻止,这个引导块必须与您将复制的 DOS 内核文件匹配
下一步:

dd if=/dev/fd0 of=bootblock bs=512 计数=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.88 MB 的软盘,同时
将引导块写入其上的时间:

mformat -C -t 80 -s 36 -h 2 -B 引导块 x:

“软盘”的大小仅受柱面数、扇区数的限制
和磁头,分别为 1023、63 和 255,以及您愿意的 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,用 IO.SYS 代替 IBMIO.COM,用 MSDOS.SYS 代替 IBMDOS.COM。 的情况
必须保留文件,如果 VFAT 小写名称在
软盘图像。 注意复制的顺序,因为引导块可能会期望
新格式化的磁盘上的前两个条目是 IO.SYS、MSDOS.SYS。 也有可能
COMMAND.COM 必须是第三个条目,所以我们要安全。 感谢 Phil Davey 和 Phillip
Roa 的这些提示。

我有报告说 MS-DOS 6.22 的引导块有时无法引导 ramdisk。 你
可以尝试使用来自 Netboot 的引导块,而不是将引导块从
软盘。 我在发行版中提供了这个引导块作为 altboot.bin,在源代码中
形式为 altboot.S 和 boot.inc。 一个重要的事情是使 IO.SYS 成为第一个文件
磁盘,否则此引导块将不起作用。

如果您碰巧有相同大小的媒体,则可以测试该映像是否可通过以下方式启动
将其复制到媒体上,然后启动它:

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

然后在图像上运行 mknbi-dos /tmp/软盘图像 创建启动映像:

mknbi-dos /tmp/floppyimage > dos.nb

移动 文件 到网络启动过程期望找到它的位置。

MKNBI-DOS 配置


- 硬盘 将启动 ramdisk 设为第一个硬盘,即 C:。 您可能想要的一个原因
这样做是因为您要使用真正的软盘。 中“磁盘大小”的限制
此选项不会引发引导映像,因此这不是使用此选项的理由。 这个
选项与 --disableharddisk 不兼容。

--禁用硬盘 当 ramdisk 模拟软盘驱动器时,此开关将
禁用硬盘访问。 如果客户端应该使用网络文件,这是必要的
系统作为驱动器 C:,这只有在 DOS 找不到硬盘的情况下才有可能。 这个
选项与 --harddisk 不兼容。

--诺斯南瓜 不要试图从软盘映像的末尾切掉未使用的扇区。 这个
如果软盘上的 FAT 文件系统增加了启动映像的大小,从而增加了加载时间
大部分为空,但如果您怀疑
挤压算法工作正常。

--rdbase=0xNNNNNN 设置 ramdisk 加载地址。 ramdisk的默认加载地址
是 0x110000。 如果出于某种原因您需要将它移得更高(降低将不起作用)
在它当前占用的地址加载其他东西。 因为这是一个线性地址而不是
段地址,最后 4 位未使用,应为 0。

使用 onworks.net 服务在线使用 mknbi


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad