10.1 OpenEmbedded Kickstart(.wks)参考

10 简介

本章提供可用 kickstart 命令的参考资料,列出各命令的语法和含义。 这些命令基于 Fedora kickstart 中的版本,并根据 Wic 的能力作了调整。 原始命令文档见: https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html

10 命令:part 或 partition

这两个命令都用于在系统中创建分区,语法如下:

part [mntpoint]
partition [mntpoint]

如果未提供 mntpoint,Wic 会创建分区,但不会挂载它。

mntpoint 指定分区的挂载位置,必须采用以下形式之一:

  • /path:例如“/”、“/usr”或“/home”。

  • swap:将创建的分区用作交换空间。

指定 mntpoint 后,分区会自动挂载。Wic 在生成镜像时向文件系统表 (fstab)添加条目来实现这一点。为了让 Wic 生成有效的 fstab, 还必须在命令中提供 --ondrive、--ondisk 或 --use-uuid 分区选项之一。

备注

对于 --use-uuid 和非根 mountpoint (包括交换空间), mount 程序必须能够识别所用的 PARTUUID 语法。 OpenEmbedded 中 BusyBox 的默认配置支持此功能, 但自定义配置可能会禁用它。

以下示例以“/”为挂载点,并使用 --ondisk 强制在 sdb 磁盘上 创建分区:

part / --source rootfs --ondisk sdb --fstype=ext3 --label platform --align 1024

以下列出 part 和 partition 命令支持的其他选项:

  • --size:分区的最小大小。指定一个整数,后面可以带单位: “k”或“K”表示 KiB,“M”表示 MiB,“G”表示 GiB。 未指定单位时默认为“M”。使用 --source 时不需要此选项。

  • --fixed-size:分区的精确大小。指定一个整数,后面可以带单位: “k”或“K”表示 KiB,“M”表示 MiB,“G”表示 GiB。 未指定单位时默认为“M”。不能与 --size 同时使用。 如果分区数据大于 --fixed-size,组装磁盘镜像时会报错。

  • --source:Wic 特有的选项,用于指定填充分区的数据来源。 最常用的值是“rootfs”,也可以使用任何能够映射到有效源插件的值。 有关源插件的信息,请参阅《Yocto Project 开发任务手册》的 “使用 Wic 插件接口”一节。

    使用 --source rootfs 时,Wic 会根据需要创建足够大的分区, 并以 -r 命令行选项指向的根文件系统内容填充它, 或使用根据 -e 命令行选项推导出的等效根文件系统。 创建分区所用的文件系统类型由该分区的 --fstype 选项值决定。 详情见下文的 --fstype 条目。

    使用 --source plugin-name 时,Wic 会根据需要创建足够大的分区, 并以指定插件生成的分区内容填充它。插件所用数据由 -r 命令行选项 指定,或来自根据 -e 命令行选项推导出的等效根文件系统。 具体内容以及所用的文件系统类型取决于插件的实现。

    如果不使用 --source 选项,wic 命令会创建空分区。 因此必须使用 --size 选项指定空分区的大小。

  • --ondisk 或 --ondrive:强制在指定磁盘上创建分区。

  • --fstype:设置分区的文件系统类型。有效值为:

    • btrfs

    • erofs

    • ext2

    • ext3

    • ext4

    • squashfs

    • swap

    • vfat

  • --fsoptions:指定挂载文件系统时使用的选项字符串,内容格式不限。 该字符串会复制到安装后系统的 /etc/fstab 文件中,应使用引号括起。 未指定时,默认字符串为“defaults”。

  • --label label:指定在分区上创建的文件系统的标签。 如果指定标签已被另一个文件系统使用,则为此分区创建一个新标签。

  • --active:将分区标记为活动分区。

  • --align (in KBytes):Wic 特有的选项, 要求分区起点按指定的 x KBytes 边界对齐。

  • --offset:Wic 特有的选项,要求将分区放在精确指定的偏移处。 如果无法放在指定位置,镜像构建将失败。指定一个整数,后面可以带单位: “s”或“S”表示 512 字节的扇区,“k”或“K”表示 KiB, “M”表示 MiB,“G”表示 GiB。未指定单位时默认为“k”。

  • --no-table:Wic 特有的选项。使用此选项会为分区预留空间并填充内容, 但不会将分区添加到分区表中。

  • --exclude-path:Wic 特有的选项,从生成的镜像中排除指定相对路径。 此选项仅对 rootfs 源插件有效。

  • --extra-filesystem-space:Wic 特有的选项,在分区内容占用的空间之后 增加额外空间。最终大小可以超过 --size 选项指定的大小。 默认值为 10M。指定一个整数,后面可以带单位: “k”或“K”表示 KiB,“M”表示 MiB,“G”表示 GiB。 未指定单位时默认为“M”。

  • --extra-partition-space:Wic 特有的选项,在文件系统占用的空间之后 增加额外的空白空间。使用 --fixed-size 时,从文件系统大小中扣除 这部分额外分区空间。其他情况下,无论是否指定 --size, 都将额外分区空间加到最终分区大小中。默认值为 0M。 指定一个整数,后面可以带单位:“k”或“K”表示 KiB, “M”表示 MiB,“G”表示 GiB。未指定单位时默认为“M”。

  • --overhead-factor:Wic 特有的选项,将分区大小乘以指定值。 必须提供大于或等于“1”的值。默认值为“1.3”。

  • --part-name:Wic 特有的选项,指定 GPT 分区的名称。

  • --part-type:Wic 特有的选项,指定 GPT 分区的分区类型全局唯一标识符 (GUID)。分区类型 GUID 列表见 https://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_type_GUIDs。

  • --use-uuid:Wic 特有的选项,让 Wic 为分区生成随机 GUID。 生成的标识符用于在引导加载程序配置中指定根分区。

  • --uuid:Wic 特有的选项,指定分区 UUID。

  • --fsuuid:Wic 特有的选项,指定文件系统 UUID。 如果在运行 Wic 之前,已在引导加载程序配置的内核命令行中添加预先配置的 文件系统 UUID,则可以使用此选项生成或修改 WKS_FILE。

  • --system-id:Wic 特有的选项,指定分区系统 ID。 它是一个字节长的十六进制参数,可以带有或不带 0x 前缀。

  • --mkfs-extraopts:指定传给 mkfs 工具的附加选项。 某些文件系统的部分默认选项不会生效。请参阅 Wic 的 kickstart 帮助, 即 wic help kickstart。

10 命令:bootloader

此命令指定如何配置引导加载程序,支持以下选项:

备注

引导加载程序功能以及启动分区由各个实现相应功能的源插件提供。 bootloader 命令主要提供修改引导加载程序配置的方式。

  • --append:指定内核参数。这些参数会添加到 syslinux 的 APPEND 或 grub 的内核命令行中。

  • --configfile:指定用户定义的引导加载程序配置文件。 可以提供文件的完整路径,也可以指定 files/wic 文件夹中的文件。 此选项会覆盖所有其他引导加载程序选项。

  • --ptable:指定分区表格式。有效值为:

    • msdos

    • gpt

  • --timeout:指定引导加载程序超时并启动默认选项之前等待的秒数。

10 指令:include

include 指令可用于将一个 WKS 文件包含到另一个文件中。 此命令只有一个参数,即相对于当前文件的待包含文件路径。例如:

include common.wks.inc

bootloader --configfile="directdisk-bootloader-config.cfg"