Andrew Geissler | f034379 | 2020-11-18 10:42:21 -0600 | [diff] [blame] | 1 | .. SPDX-License-Identifier: CC-BY-SA-2.0-UK |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 2 | |
| 3 | ******************************************* |
| 4 | OpenEmbedded Kickstart (``.wks``) Reference |
| 5 | ******************************************* |
| 6 | |
| 7 | .. _openembedded-kickstart-wks-reference: |
| 8 | |
| 9 | Introduction |
| 10 | ============ |
| 11 | |
| 12 | The current Wic implementation supports only the basic kickstart |
| 13 | partitioning commands: ``partition`` (or ``part`` for short) and |
| 14 | ``bootloader``. |
| 15 | |
| 16 | .. note:: |
| 17 | |
| 18 | Future updates will implement more commands and options. If you use |
| 19 | anything that is not specifically supported, results can be |
| 20 | unpredictable. |
| 21 | |
| 22 | This chapter provides a reference on the available kickstart commands. |
| 23 | The information lists the commands, their syntax, and meanings. |
| 24 | Kickstart commands are based on the Fedora kickstart versions but with |
| 25 | modifications to reflect Wic capabilities. You can see the original |
| 26 | documentation for those commands at the following link: |
Andrew Geissler | d1e8949 | 2021-02-12 15:35:20 -0600 | [diff] [blame] | 27 | https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 28 | |
| 29 | Command: part or partition |
| 30 | ========================== |
| 31 | |
| 32 | Either of these commands creates a partition on the system and uses the |
Andrew Geissler | c926e17 | 2021-05-07 16:11:35 -0500 | [diff] [blame] | 33 | following syntax:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 34 | |
Andrew Geissler | 3b8a17c | 2021-04-15 15:55:55 -0500 | [diff] [blame] | 35 | part [mntpoint] |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 36 | partition [mntpoint] |
| 37 | |
| 38 | If you do not |
| 39 | provide mntpoint, Wic creates a partition but does not mount it. |
| 40 | |
| 41 | The ``mntpoint`` is where the partition is mounted and must be in one of |
| 42 | the following forms: |
| 43 | |
| 44 | - ``/path``: For example, "/", "/usr", or "/home" |
| 45 | |
| 46 | - ``swap``: The created partition is used as swap space |
| 47 | |
| 48 | Specifying a mntpoint causes the partition to automatically be mounted. |
| 49 | Wic achieves this by adding entries to the filesystem table (fstab) |
| 50 | during image generation. In order for Wic to generate a valid fstab, you |
| 51 | must also provide one of the ``--ondrive``, ``--ondisk``, or |
| 52 | ``--use-uuid`` partition options as part of the command. |
| 53 | |
| 54 | .. note:: |
| 55 | |
| 56 | The mount program must understand the PARTUUID syntax you use with |
Andrew Geissler | 595f630 | 2022-01-24 19:11:47 +0000 | [diff] [blame] | 57 | ``--use-uuid`` and non-root *mountpoint*, including swap. The default |
| 58 | configuration of BusyBox in OpenEmbedded supports this, but this may |
| 59 | be disabled in custom configurations. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 60 | |
| 61 | Here is an example that uses "/" as the mountpoint. The command uses |
Andrew Geissler | c926e17 | 2021-05-07 16:11:35 -0500 | [diff] [blame] | 62 | ``--ondisk`` to force the partition onto the ``sdb`` disk:: |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 63 | |
| 64 | part / --source rootfs --ondisk sdb --fstype=ext3 --label platform --align 1024 |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 65 | |
| 66 | Here is a list that describes other supported options you can use with |
| 67 | the ``part`` and ``partition`` commands: |
| 68 | |
Patrick Williams | 0ca19cc | 2021-08-16 14:03:13 -0500 | [diff] [blame] | 69 | - ``--size``: The minimum partition size. Specify as an integer value |
| 70 | optionally followed by one of the units "k" / "K" for kibibyte, |
| 71 | "M" for mebibyte and "G" for gibibyte. The default unit if none is |
| 72 | given is "M". You do not need this option if you use ``--source``. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 73 | |
Patrick Williams | 0ca19cc | 2021-08-16 14:03:13 -0500 | [diff] [blame] | 74 | - ``--fixed-size``: The exact partition size. Specify as an integer |
| 75 | value optionally followed by one of the units "k" / "K" for kibibyte, |
| 76 | "M" for mebibyte and "G" for gibibyte. The default unit if none is |
| 77 | given is "M". Cannot be specify together with ``--size``. An error |
| 78 | occurs when assembling the disk image if the partition data is larger |
| 79 | than ``--fixed-size``. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 80 | |
| 81 | - ``--source``: This option is a Wic-specific option that names the |
| 82 | source of the data that populates the partition. The most common |
| 83 | value for this option is "rootfs", but you can use any value that |
| 84 | maps to a valid source plugin. For information on the source plugins, |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame^] | 85 | see the ":ref:`dev-manual/wic:using the wic plugin interface`" |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 86 | section in the Yocto Project Development Tasks Manual. |
| 87 | |
| 88 | If you use ``--source rootfs``, Wic creates a partition as large as |
| 89 | needed and fills it with the contents of the root filesystem pointed |
Andrew Geissler | 595f630 | 2022-01-24 19:11:47 +0000 | [diff] [blame] | 90 | to by the ``-r`` command-line option or the equivalent root filesystem derived |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 91 | from the ``-e`` command-line option. The filesystem type used to |
| 92 | create the partition is driven by the value of the ``--fstype`` |
| 93 | option specified for the partition. See the entry on ``--fstype`` |
| 94 | that follows for more information. |
| 95 | |
| 96 | If you use ``--source plugin-name``, Wic creates a partition as large |
| 97 | as needed and fills it with the contents of the partition that is |
| 98 | generated by the specified plugin name using the data pointed to by |
Andrew Geissler | 595f630 | 2022-01-24 19:11:47 +0000 | [diff] [blame] | 99 | the ``-r`` command-line option or the equivalent root filesystem derived from |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 100 | the ``-e`` command-line option. Exactly what those contents are and |
| 101 | filesystem type used are dependent on the given plugin |
| 102 | implementation. |
| 103 | |
| 104 | If you do not use the ``--source`` option, the ``wic`` command |
| 105 | creates an empty partition. Consequently, you must use the ``--size`` |
| 106 | option to specify the size of the empty partition. |
| 107 | |
| 108 | - ``--ondisk`` or ``--ondrive``: Forces the partition to be created |
| 109 | on a particular disk. |
| 110 | |
| 111 | - ``--fstype``: Sets the file system type for the partition. Valid |
| 112 | values are: |
| 113 | |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 114 | - ``btrfs`` |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 115 | |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 116 | - ``erofs`` |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 117 | |
| 118 | - ``ext2`` |
| 119 | |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 120 | - ``ext3`` |
| 121 | |
| 122 | - ``ext4`` |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 123 | |
| 124 | - ``squashfs`` |
| 125 | |
| 126 | - ``swap`` |
| 127 | |
Patrick Williams | 4585273 | 2022-04-02 08:58:32 -0500 | [diff] [blame] | 128 | - ``vfat`` |
| 129 | |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 130 | - ``--fsoptions``: Specifies a free-form string of options to be used |
| 131 | when mounting the filesystem. This string is copied into the |
| 132 | ``/etc/fstab`` file of the installed system and should be enclosed in |
| 133 | quotes. If not specified, the default string is "defaults". |
| 134 | |
| 135 | - ``--label label``: Specifies the label to give to the filesystem to |
| 136 | be made on the partition. If the given label is already in use by |
| 137 | another filesystem, a new label is created for the partition. |
| 138 | |
| 139 | - ``--active``: Marks the partition as active. |
| 140 | |
| 141 | - ``--align (in KBytes)``: This option is a Wic-specific option that |
| 142 | says to start partitions on boundaries given x KBytes. |
| 143 | |
Patrick Williams | 0ca19cc | 2021-08-16 14:03:13 -0500 | [diff] [blame] | 144 | - ``--offset``: This option is a Wic-specific option that |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 145 | says to place a partition at exactly the specified offset. If the |
| 146 | partition cannot be placed at the specified offset, the image build |
Patrick Williams | 0ca19cc | 2021-08-16 14:03:13 -0500 | [diff] [blame] | 147 | will fail. Specify as an integer value optionally followed by one of |
| 148 | the units "s" / "S" for 512 byte sector, "k" / "K" for kibibyte, "M" |
| 149 | for mebibyte and "G" for gibibyte. The default unit if none is given |
| 150 | is "k". |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 151 | |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 152 | - ``--no-table``: This option is a Wic-specific option. Using the |
| 153 | option reserves space for the partition and causes it to become |
| 154 | populated. However, the partition is not added to the partition |
| 155 | table. |
| 156 | |
| 157 | - ``--exclude-path``: This option is a Wic-specific option that |
| 158 | excludes the given relative path from the resulting image. This |
| 159 | option is only effective with the rootfs source plugin. |
| 160 | |
| 161 | - ``--extra-space``: This option is a Wic-specific option that adds |
| 162 | extra space after the space filled by the content of the partition. |
| 163 | The final size can exceed the size specified by the ``--size`` |
Patrick Williams | 0ca19cc | 2021-08-16 14:03:13 -0500 | [diff] [blame] | 164 | option. The default value is 10M. Specify as an integer value |
| 165 | optionally followed by one of the units "k" / "K" for kibibyte, "M" |
| 166 | for mebibyte and "G" for gibibyte. The default unit if none is given |
| 167 | is "M". |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 168 | |
| 169 | - ``--overhead-factor``: This option is a Wic-specific option that |
| 170 | multiplies the size of the partition by the option's value. You must |
| 171 | supply a value greater than or equal to "1". The default value is |
| 172 | "1.3". |
| 173 | |
| 174 | - ``--part-name``: This option is a Wic-specific option that |
| 175 | specifies a name for GPT partitions. |
| 176 | |
| 177 | - ``--part-type``: This option is a Wic-specific option that |
| 178 | specifies the partition type globally unique identifier (GUID) for |
| 179 | GPT partitions. You can find the list of partition type GUIDs at |
Patrick Williams | 7784c42 | 2022-11-17 07:29:11 -0600 | [diff] [blame] | 180 | :wikipedia:`GUID_Partition_Table#Partition_type_GUIDs`. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 181 | |
| 182 | - ``--use-uuid``: This option is a Wic-specific option that causes |
| 183 | Wic to generate a random GUID for the partition. The generated |
| 184 | identifier is used in the bootloader configuration to specify the |
| 185 | root partition. |
| 186 | |
| 187 | - ``--uuid``: This option is a Wic-specific option that specifies the |
| 188 | partition UUID. |
| 189 | |
| 190 | - ``--fsuuid``: This option is a Wic-specific option that specifies |
| 191 | the filesystem UUID. You can generate or modify |
| 192 | :term:`WKS_FILE` with this option if a preconfigured |
| 193 | filesystem UUID is added to the kernel command line in the bootloader |
| 194 | configuration before you run Wic. |
| 195 | |
| 196 | - ``--system-id``: This option is a Wic-specific option that |
| 197 | specifies the partition system ID, which is a one byte long, |
| 198 | hexadecimal parameter with or without the 0x prefix. |
| 199 | |
| 200 | - ``--mkfs-extraopts``: This option specifies additional options to |
| 201 | pass to the ``mkfs`` utility. Some default options for certain |
| 202 | filesystems do not take effect. See Wic's help on kickstart (i.e. |
| 203 | ``wic help kickstart``). |
| 204 | |
| 205 | Command: bootloader |
| 206 | =================== |
| 207 | |
| 208 | This command specifies how the bootloader should be configured and |
| 209 | supports the following options: |
| 210 | |
| 211 | .. note:: |
| 212 | |
| 213 | Bootloader functionality and boot partitions are implemented by the |
Patrick Williams | 2390b1b | 2022-11-03 13:47:49 -0500 | [diff] [blame] | 214 | various source plugins that implement bootloader functionality. The bootloader |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 215 | command essentially provides a means of modifying bootloader |
| 216 | configuration. |
| 217 | |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 218 | - ``--append``: Specifies kernel parameters. These parameters will be |
Andrew Geissler | 5f35090 | 2021-07-23 13:09:54 -0400 | [diff] [blame] | 219 | added to the syslinux :term:`APPEND` or ``grub`` kernel command line. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 220 | |
| 221 | - ``--configfile``: Specifies a user-defined configuration file for |
| 222 | the bootloader. You can provide a full pathname for the file or a |
William A. Kennington III | ac69b48 | 2021-06-02 12:28:27 -0700 | [diff] [blame] | 223 | file located in the ``canned-wks`` folder. This option overrides |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 224 | all other bootloader options. |
Patrick Williams | 2390b1b | 2022-11-03 13:47:49 -0500 | [diff] [blame] | 225 | |
| 226 | - ``--ptable``: Specifies the partition table format. Valid values are: |
| 227 | |
| 228 | - ``msdos`` |
| 229 | |
| 230 | - ``gpt`` |
| 231 | |
| 232 | - ``--timeout``: Specifies the number of seconds before the |
| 233 | bootloader times out and boots the default option. |
| 234 | |