org.osbuild.bootiso.mono
Assemble a file system tree for a bootable iso
This stage prepares a file system tree for a bootable ISO, like the
Anaconda installer. It follows the convention used by Lorax to
create the boot isos: It takes an input rootfs
, which will serve
as the root file system. This is copied into a file with a ext4
file system which in turn will be made into a squashfs file system.
Options for controlling the root file-system creation can be given
via rootfs
, like it size and the compression to be used.
The boot loader is configured via the isolinux
and efi
options.
Which combination makes sense depends on the targeted platform and
architecture.
The kernel and initrd are taken from the tree given via the kernel
input, or if that was not specified, from rootfs
. In either case
it will look for the specified kernel in the /boot
directory.
Additionally kernel command line flags can passed via kernel_opts
.
This stage has the .mono
suffix to indicate that is a monolithic
stage that could, and in the future will be, broken up into smaller
pieces.
Schema 1
{}
Schema 2
{
"options": {
"additionalProperties": false,
"required": [
"product",
"kernel",
"isolabel"
],
"properties": {
"product": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"version"
],
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string"
}
}
},
"kernel": {
"type": "string"
},
"isolabel": {
"type": "string"
},
"efi": {
"type": "object",
"additionalProperties": false,
"required": [
"architectures",
"vendor"
],
"properties": {
"architectures": {
"type": "array",
"items": {
"type": "string"
}
},
"vendor": {
"type": "string"
}
}
},
"isolinux": {
"type": "object",
"additionalProperties": false,
"required": [
"enabled"
],
"properties": {
"enabled": {
"type": "boolean"
},
"debug": {
"type": "boolean"
}
}
},
"kernel_opts": {
"description": "Additional kernel boot options",
"type": "string"
},
"templates": {
"type": "string",
"default": "99-generic"
},
"rootfs": {
"type": "object",
"additionalProperties": false,
"properties": {
"compression": {
"type": "object",
"additionalProperties": false,
"required": [
"method"
],
"properties": {
"method": {
"enum": [
"gzip",
"xz",
"lz4"
]
},
"options": {
"type": "object",
"additionalProperties": false,
"properties": {
"bcj": {
"enum": [
"x86",
"arm",
"armthumb",
"powerpc",
"sparc",
"ia64"
]
}
}
}
}
},
"size": {
"type": "integer",
"description": "size in MB",
"default": 3072
}
}
}
}
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"rootfs"
],
"properties": {
"rootfs": {
"type": "object",
"additionalProperties": true
},
"kernel": {
"type": "object",
"additionalProperties": true
}
}
}
}