It can be useful to have access to `setfiles` inside a `toolbx`
container. Especially when using them as bootstrap roots to setup
other trees.
Signed-off-by: Simon de Vlieger <supakeen@redhat.com>
The ldconfig cache generator runs on first boot and attempts to
read the whole image into memory, which eats gigabytes of RAM and
slows the boot down by half a minute. This is unnecessary for
images being booted unmodified.
Thus, create the necessary dot files to inhibit their runs.
It seems the larger chunk size seems to slow the start of images in
low memory environments due to the ldconfig cache generator unit
eating gigabytes of memory from mapping the chunks into memory.
Attempt to work around this by lowering the chunk size while raising
the compression level to attempt to maintain image sizes.
The Raspberry Pi 3 does not recognize a FAT filesystem marked with
the 0xef type, so until we drop support for this device, hack the
partition manually to use a legacy FAT filesystem partition type.
It is hard to ensure that hardware support packages are pulled in
universally when it's splintered across different variant profiles.
To fix this and ensure Server benefits from this, unify everything
into a common profile and make everything require it.
U-Boot does not support XFS and this causes significant issues
when trying to boot Fedora Server on single board computers.
Resolve this by using ext4 here, as all U-Boot variants generally
support this.
Turns out that different boards needs different values, so
hardcoding a specific one here is not a good idea. Luckily,
Linux can usually figure things out on its own and automatically
provide a working serial console.
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
This switches from SquashFS to EROFS using LZMA compression
with a 1M chunksize and fragement dedpulication for inodes enabled.
This attempts to match the defaults for SquashFS in kiwi and provides
a good balance for image compression and creation time.
Note that "-Ededupe" is not used because it is not multi-threaded and
is currently extremely slow.
Of the profiles that are currently listed, only LiveInstall
actually exists. Use BootCore instead, which all profiles derive
from. In most cases we'll end up locking the root user as part
of config.sh anyway.
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
This renames the minimal profile to "tiny", it's useful to have a
profile that builds quickly and provides a small artifact. However, the
minimal name mirrors the Fedora Minimal spin name and might confuse
people building images about what they're actually building.
The Tiny descriptions do not replicate the Fedora Minimal spin.
Signed-off-by: Simon de Vlieger <supakeen@redhat.com>
This is a tiny package (250kB) that seems to be a relatively common
dependency (it just provides error codes and some common helpers, used
by stuff other than gpg itself).
Most of the changes are self-explanatory and just follow what's
already happening for existing architectures.
Two things are worth pointing out:
* we need to use shim-unsigned instead of shim-signed because
riscv64 is not fully integrated into Fedora yet and so we
can't do Secure Boot signing for the time being;
* we use ext4 as bootfilesystem since in most cases the
underlying firmware is going to be U-Boot, which needs to be
able to load the board's DTB from /boot and doesn't support
XFS.
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
This introduces the beginnings of an image definition for Windows
Subsystem for Linux (WSL).
The package list is based on the core and standard grouplists. Some
packages, like the kernel, dracut, and so on, are omitted as they are
unnecessary. Others, like audit, don't work in the environment. Finally,
many packages are omitted since I thought "people probably won't want
that", so the package list is completely up for debate. This is just a
reasonable starting point that works.
Build/test instructions:
To build the tarball:
$ ./kiwi-build --image-profile=WSL-Base --image-type=tbz --output-dir=./build/
Get it to a Windows host with WSL installed. To boot it with cgroupsv2,
add the following to `.wslconfig` in the Windows host home folder:
[wsl2]
kernelCommandLine=systemd.unified_cgroup_hierarchhy=1 cgroup_no_v1=all
This assumes the latest WSL release is installed, at least version 2.4.4:
$ wsl --install --from-file .\path\to\the\fedora.tar.xz
Alternatively, if you're using something prior to version 2.4.4:
$ wsl --import --version=2 Fedora C:\path\to\storage\Fedora\ .\path\to\the\fedora.tar.xz
Finally, run it with:
$ wsl -d Fedora
If you are using 2.4.4+, you will be prompted for a username and then
dropped into an interactive shell with that user and passwordless sudo
access.
If you're using an older version, you need to do:
$ wsl -d Fedora -u root
# /usr/libexec/wsl/oobe.sh
Signed-off-by: Jeremy Cline <jeremycline@linux.microsoft.com>
While cloud images can usually be booted without any issues and
for workstation installs we want a visually polished experience,
in the case of server installs on real hardware it is generally
expected to have convenient access to the bootloader menu for
troubleshooting purposes.
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Disk images are usually flashed to media which is much larger
than they are, and all that additional space goes unused until
the user intervenes.
Configure things so that systemd-repart, which runs by default,
automatically takes care of resizing the root partition.
systemd-growfs, which also runs by default, will subsequently
take care of resizing the filesystem to fill the newly-enlarged
partition.
Note that we don't do this for cloud images, since in that
case cloud-init takes care of resizing the root filesystem and
the underlying partition together with all the other setup
tasks.
Signed-off-by: Andrea Bolognani <abologna@redhat.com>