Usage: zbi [OUTPUT...] INPUT... [-- PATTERN...]
Diagnostic switches:
--help, -h print this message
--list, -t list input ZBI item headers; no --output
--verbose, -v show contents (e.g. BOOTFS file names)
--extract, -x extract BOOTFS files
--extract-items, -X extract items as pseudo-files (see below)
--extract-raw, -R extract original payloads, not ZBI format
Output file switches:
--output=FILE, -o FILE output file name
--depfile=FILE, -d FILE makefile dependency output file name
--output-dir=DIR, -D FILE extracted files go under DIR (default: .)
--json-output=FILE, -j FILE record entries to a JSON file
The `--output` FILE is always removed and created fresh after all input
files have been opened. So it is safe to use the same file name as an input
file and the `--output` FILE, to append more items.
Input control switches apply to subsequent input arguments:
--directory=DIR, -C DIR change directory to DIR
--files, -F read BOOTFS manifest files (default)
--files-type=TYPE set the item type under which the BOOTFS
will be created (default: "bootfs")
--prefix=PREFIX, -p PREFIX prepend PREFIX/ to target file names
--replace, -r duplicate target file name OK (see below)
--type=TYPE[:N], -T TYPE[:N] input files are TYPE items (see below)
--compressed[=HOW], -c [HOW] compress storage images (see below)
--uncompressed, -u do not compress storage images
--recompress recompress input items already compressed
--ignore-missing-files, -i a manifest entry whose source file doesn't
exist is ignored without error
Input arguments:
--entry=TEXT, -e TEXT like an input file containing only TEXT
FILE input or manifest file
DIRECTORY directory tree copied to BOOTFS PREFIX/
The `--directory` or `-C` switch affects subsequent input arguments but
it never affects output arguments, which are always relative to the original
current working directory (`zbi` doesn't actually do `chdir()` at all).
With `--files` or `-F` (the default state), files with ZBI_TYPE_CONTAINER
headers are incomplete boot files and other files are BOOTFS manifest files.
Each DIRECTORY is listed recursively and handled just like a manifest file
using the path relative to DIRECTORY as the target name (before any PREFIX).
Each `--prefix` or `-p` switch affects each file from a manifest or
directory in subsequent FILE, DIRECTORY, or TEXT arguments.
All files are packed into a single item in BOOTFS format, regardless of
position. The `--files-type` switch controls the type field for this item,
by default `BOOTFS`. Any input items of that same type will be combined
along with any other files into the single output item. When extracting,
--files-type controls which item type to extract files from.
With `--type` or `-T`, input files are treated as TYPE instead of manifest
files, and directories are not permitted. See below for the TYPE strings.
If `:N` appears after TYPE then larger input files are truncated to N bytes.
In this case, input files other than regular files are allowed: N or fewer
bytes will be read from the input device, pipe, or socket.
ZBI items from input ZBI files are normally emitted unchanged. (However,
see below about BOOTFS items.) With `--recompress`, input items of storage
types well be decompressed (if needed) on input and then freshly compressed
(or not) according to the preceding `--compressed=...` or `--uncompressed`.
Format control switches (last switch affects all output):
--bootable=ARCH, -B ARCH verify result is a bootable image
--compressed[=HOW], -c [HOW] compress BOOTFS images (see below)
--uncompressed, -u do not compress BOOTFS images
HOW defaults to `zstd` and can be one of (case-insensitive):
* `none` (same as `--uncompressed`)
* `LEVEL` (an integer) or `max` (default algorithm, currently `zstd`)
* `lz4f` or `lz4f.LEVEL` (an integer) or `lz4f.max`
* `zstd` or `zstd.LEVEL` (an integer) or `zstd.max` or `zstd.overclock`
The meaning of LEVEL depends on the algorithm. The default is chosen for
good compression ratios with fast compression time. `max` is for the best
compression ratios but much slower compression time (e.g. release builds).
If there are no PATTERN arguments and no files named to add to the BOOTFS
(via manifest file entries, nonempty directories, or `--entry` switches)
then any ZBI input items of BOOTFS type are passed through as they are,
except for possibly compressing raw `--type=bootfs` input items.
In all other cases there is only a single BOOTFS item (if any) written out.
So `-- \*` will force merging when no individual files are being added.
The BOOTFS image contains all files from BOOTFS items in ZBI input files,
manifest files, directories, and `--entry` switches. The BOOTFS directory
table is always sorted. By default it's an error to have duplicate target
file names in the input (even with the same source). `--replace` or `-r`
allows it: the last entry in input order wins.
**TODO(mcgrathr):** not quite true yet
Each argument after -- is a shell filename PATTERN (`*` matches even `/`)
to filter the files that will be packed into BOOTFS, extracted, or listed.
For a PATTERN that starts with `!` or `^` matching names are excluded after
including matches for all positive PATTERN arguments. Note that PATTERN
is compared to the final BOOTFS target file name with any PREFIX applied.
When extracting a single file, `--output` or `-o` can be used.
Otherwise multiple files are created with their BOOTFS file names
relative to PREFIX (default empty, so in the current directory).
Note that the last PREFIX on the command line affects extraction,
though each PREFIX also (first) affects BOOTFS files added due to arguments
that follow it. So if any PREFIX appears before such input arguments when
extracting, the extracted file names will have a doubled PREFIX unless a
`--prefix=.` or other PREFIX value follows the input arguments.
With `--extract-items` or `-X`, instead of BOOTFS files the names are
synthesized as shown below, numbered in the order items appear in the input
starting with 001. Output files are ZBI files that can be input later.
With `--extract-raw` or `-R`, each file is written with just the
uncompressed payload of the item and no ZBI headers.
TYPE can be hexadecimal or a name string (case-insensitive).
Extracted items use the file names shown below:
--type --extract-item --extract-raw
CONTAINER 001.container.zbi 001.container.bin
KERNEL_X64 001.kernel_x64.zbi 001.kernel_x64.bin
KERNEL_ARM64 001.kernel_arm64.zbi 001.kernel_arm64.bin
KERNEL_RISCV64 001.kernel_riscv64.zbi 001.kernel_riscv64.bin
DISCARD 001.discard.zbi 001.discard.bin
RAMDISK 001.ramdisk.zbi 001.ramdisk.bin
BOOTFS 001.bootfs.zbi 001.bootfs.bin
BOOTFS_FACTORY 001.bootfs_factory.zbi 001.bootfs_factory.bin
KERNEL 001.kernel.zbi 001.kernel.bin
CMDLINE 001.cmdline.zbi 001.cmdline.txt
CRASHLOG 001.crashlog.zbi 001.crashlog.bin
NVRAM 001.nvram.zbi 001.nvram.bin
PLATFORM_ID 001.platform_id.zbi 001.platform_id.bin
CPU_TOPOLOGY 001.cpu_topology.zbi 001.cpu_topology.bin
DEPRECATED_CPU_TOPOLOGY_V1 001.deprecated_cpu_topology_v1.zbi 001.deprecated_cpu_topology_v1.bin
DEPRECATED_CPU_TOPOLOGY_V2 001.deprecated_cpu_topology_v2.zbi 001.deprecated_cpu_topology_v2.bin
MEM_CONFIG 001.mem_config.zbi 001.mem_config.bin
KERNEL_DRIVER 001.kernel_driver.zbi 001.kernel_driver.bin
ACPI_RSDP 001.acpi_rsdp.zbi 001.acpi_rsdp.bin
SMBIOS 001.smbios.zbi 001.smbios.bin
EFI_SYSTEM_TABLE 001.efi_system_table.zbi 001.efi_system_table.bin
FRAMEBUFFER 001.framebuffer.zbi 001.framebuffer.bin
DRV_MAC_ADDRESS 001.drv_mac_address.zbi 001.drv_mac_address.bin
DRV_PARTITION_MAP 001.drv_partition_map.zbi 001.drv_partition_map.bin
DRV_BOARD_PRIVATE 001.drv_board_private.zbi 001.drv_board_private.bin
DRV_BOARD_INFO 001.drv_board_info.zbi 001.drv_board_info.bin
IMAGE_ARGS 001.image_args.zbi 001.image_args.txt
BOOT_VERSION 001.boot_version.zbi 001.boot_version.bin
HW_REBOOT_REASON 001.hw_reboot_reason.zbi 001.hw_reboot_reason.bin
SERIAL_NUMBER 001.serial_number.zbi 001.serial_number.txt
BOOTLOADER_FILE 001.bootloader_file.zbi 001.bootloader_file.bin
DEVICETREE 001.devicetree.zbi 001.devicetree.dtb
ENTROPY 001.entropy.zbi 001.entropy.bin
EFI_MEMORY_ATTRIBUTES_TABLE 001.efi_memory_attributes_table.zbi 001.efi_memory_attributes_table.bin
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-08-23。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2024-08-23。"],[],[]]