Commit Graph

49 Commits

Author SHA1 Message Date
Marcus Schäfer
88930d3f3d
Add rd.kiwi.oem.luks.reencrypt_randompass
For OEM LUKS2 encrypted disk images in combination
with rd.kiwi.oem.luks.reencrypt. Reset insecure built time
passphrase with a random onetime passphrase
2025-03-03 12:55:17 +01:00
Marcus Schäfer
c90c1c11c3
Add rd.kiwi.dialog.timeout option
Allow to configure the timeout value for dialogs displayed
by the kiwi dracut code. By default the timeout is set to
60 seconds. With the special value "off" the dialog will
never timeout. This Fixes #2718
2025-01-30 22:39:12 +01:00
Marcus Schäfer
a2c4b9cddd
Merge pull request #2713 from OSInside/duplicate_deployment_detection
Added disk validation for duplicate installs
2025-01-27 11:47:26 +01:00
Marcus Schäfer
c9beec2ea7
Fix documentation regarding URI styles
In reference to commit 760a65558f
the support for iso:// URI types was dropped some time ago.
However, the documentation was not properly updated. This
commit fixes it
2025-01-22 10:38:09 +01:00
Marcus Schäfer
0eb2d2713e
Added disk validation for duplicate installs
Installing the same image to different storage disks on the
same machine creates device conflicts with unexpected side
effects. This commit adds a validation based on the PTUUID
of the disk image to check if another device on the system
has the same ID and if yes, does not allow to install the
image again including a message which device takes the same
identifier. This references bsc#1228741
2025-01-20 18:13:02 +01:00
Marcus Schäfer
2252087593
Added LUKS reencryption support
Added rd.kiwi.oem.luks.reencrypt boot option consumed by the
kiwi-repart dracut module. For OEM LUKS2 encrypted disk images.
If set, reencrypts the disk prior an eventual resize and therefore
creates a new key pool and master key. The reencryption is advisable
if the image binary is not protected. With access to the image
binary it's possible to extract the luks header which then allows to
decrypt the data unless it was reencrypted. The reencryption process
only runs if the checksum of the luks header still matches the one
from the original disk image. Be aware that the reencryption will
ask for the passphrase if the image has been built with an initial
luks passphrase.
2025-01-10 15:12:24 +01:00
Marcus Schäfer
0109686c8f
Fix documentation for repo, package gpg settings
In contrast to the documentation, kiwi sets default values
for any gpg setting if not explicitly specified differently.
We want to avoid to inherit a behavior from how the distribution
packages the package manager. This commit fixes the documentation
to be in line with the implementation
2024-12-20 21:59:38 +01:00
Marcus Schäfer
8162e45562
Add rd.kiwi.oem.force_resize boot option
Forces the disk resize process on an OEM disk image.
If set, no sanity check for unpartitioned/free space
is performed and also an eventually configured
<oem-resize-once> configuration from the image description
will not be taken into account. This Fixes bsc#1224389
2024-07-01 10:22:41 +02:00
Marcus Schäfer
cbf40d5142
Allow to customize the path of the isoscan cowfile
Added rd.live.cowfile.path option to specify the cowfile at
any path below the isoscan-loop-mount. This Fixes #2554
2024-06-10 16:13:37 +02:00
Neal Gompa (ニール・ゴンパ)
77972bee00
Merge pull request #2564 from OSInside/revise-concept-workflow
Revise concept workflow
2024-06-09 09:41:19 -04:00
Dmitri Popov
553834caa2 Revise users.rst 2024-06-06 14:24:07 +02:00
Dmitri Popov
a39960e4ec REvise systemdeps.rst 2024-06-06 13:57:29 +02:00
Dmitri Popov
cd8306773b Revise shell_scripts.rst 2024-06-06 13:42:57 +02:00
Marcus Schäfer
17ef9df9a8
Add initrd boot option rd.kiwi.allow_plymouth
By default kiwi stops plymouth if present and active in the
initrd. Setting rd.kiwi.allow_plymouth will keep plymouth
active in the initrd including all effects that might have
to the available consoles. This is related to bsc#1214824
2024-06-06 12:38:00 +02:00
Dmitri Popov
64a74eb592 REview runtime_configuration.rst 2024-05-07 11:29:18 +02:00
Dmitri Popov
af3394be34 Review repository_setup.rst 2024-05-07 11:28:45 +02:00
Dmitri Popov
5c9af3c5bd Revise profiles.rst 2024-04-17 16:05:42 +02:00
Dmitri Popov
dedbe7d150 Revise packages.rst 2024-04-17 15:32:04 +02:00
Dmitri Popov
86a91ed44a Revise customize_the_boot_process.rst 2024-04-17 15:09:39 +02:00
Dmitri Popov
166373f308 Revise customize_boot 2024-03-26 14:21:00 +01:00
Marcus Schäfer
bb468e7f50
Allow terminal emulation setup from the cmdline
Using rd.kiwi.term will export the TERM variable into the initrd
environment. In case the default value for the terminal emulation
is not appropriate rd.kiwi.term can be used to overwrite the default.
The environment is also passed to the systemd unit which calls
dialog based programs in kiwi dracut code, such that the TERM
setting will be effective there too. For example:

    rd.kiwi.term=vt100

This is related to bsc#1218095
2024-02-21 10:21:48 +01:00
Marcus Schäfer
b085012679
Add support for reading .profile.extra in initrd
If there is the file /.profile.extra available in the
initrd, kiwi will import this additional environment file
after the import of the standard /.profile file.
This is related to bsc#1218095
2024-02-14 12:43:54 +01:00
Marcus Schäfer
379ccf2a82
Update documentation
drop documentation for isolinux in API and user docs
2024-01-26 21:25:37 +01:00
Marcus Schäfer
21ea2243dd
Allow install disk overwrite from cmdline
Add rd.kiwi.oem.installdevice=DEVICE. Configures the disk device
that should be used in an OEM installation. This overwrites any
other oem device setting, e.g device filter or maxdisk and just
continues the installation on the given device. However, the
device must exist and must be a block special.
This Fixes jira#PED-7180
2023-11-23 12:31:09 +01:00
glaubway
f5c2b3281f
make alias unique in any cases 2023-06-10 17:22:47 +03:00
Marcus Schäfer
60d9c077a6
Split container systemdeps in OCI and WSL 2023-04-21 21:32:21 +02:00
Marcus Schäfer
05f83e545b
Add support for config-host-overlay.sh script 2023-03-16 17:14:13 +01:00
Marcus Schäfer
41875f57ea
Add support for creating delta containers
Add new attribute delta_root="true|false" which in combination with
derived_from="OCI-base-image" allows to create a delta root tree
only containing the differences between the OCI-base-image and the
actions taken by the kiwi prepare step. Based on the delta root tree
the subsequent image creation process starts. Such an incomplete
root tree is only useful under certain circumstances which is also
the reason why the feature is only available to the oci and docker
image types.
2023-03-16 17:06:15 +01:00
J Mixer
301892e412
Added a NOTE: section to explain the finer points of adding tools to a
dracut hook.
2022-08-03 17:27:07 -06:00
Dan Čermák
2796582c69
Correct the URL to the dracut home page
This fixes https://github.com/OSInside/kiwi/issues/2097
2022-04-26 09:32:43 +02:00
Marcus Schäfer
d2a968a2e1
Fixed disk.sh caller environment
The documentation explains the disk.sh script to be called
from inside of the image root as it exists on the block layer.
The disk.sh script is therefore also called after the sync
of the unpacked image root tree to the block layer. The
implementation however, was only partially calling disk.sh
from such an environment. In fact the environment was only
the mountpoint of the root partition but this is not the
complete system regarding layouts that uses extra partitions
and/or volumes. This commit introduces the use of the new
class ImageSystem and calls disk.sh in the way it was
designed and documented.
2022-03-01 10:00:48 +01:00
Marcus Schäfer
c666a785c3
Add support for pre_disk_sync.sh script
The optional pre_disk_sync.sh script is executed for the
disk image type oem only and runs right before the synchronisation
of the root tree into the disk image loop file. The script hook
can be used to change content of the root tree as a last action
before the sync to the disk image is performed. This is useful
for example to delete components from the system which were
needed before or cannot be modified afterwards when syncing
into a read-only filesystem.
2022-02-15 18:18:38 +01:00
Fabian Vogt
922c61a289 Extend and update documentation about /etc/machine-id setup 2022-01-25 14:42:31 +01:00
Fabian Vogt
6b55762e1b Fix ordered list in shell_scripts.rst
Ordered lists must be indented by three spaces, otherwise the numbering breaks.
2022-01-25 14:42:31 +01:00
Marcus Schäfer
7fa6cda579
Run scripts via a screen session in debug mode
When creating a custom script it usually takes some iterations of
try and testing until a final stable state is reached. To support
developers with this task kiwi calls scripts associated with a
screen session. The connection to screen is only done if kiwi
is called with the --debug option.
2021-09-22 11:48:47 +02:00
Marcus Schäfer
e3e0d888c8
Added support for repo customization script
repo files allows for several customization options
which could not be set by kiwi through the current
repository schema. As the options used do not follow
any standard and are not compatible between package
managers and distributions the only generic way to
handle this is through a script which is invoked
with the repo file as parameter for each file created
to describe a repo for the selected package manager.
This allows users to update/change the repo file content
on their individual needs. In the kiwi description the
path to the custom script can be specified as follows

    <repository ... customize="/path/to/custom_script">
        <source path="..."/>
    </repository>

This Fixes #1896
2021-08-10 10:10:01 +02:00
Marcus Schäfer
779d44458c
Delete deprecated shell functions from docs
suseActivateDefaultServices
suseSetupProductInformation
suseImportBuildKey
suseConfig
baseCleanMount
baseSetupUserPermissions
baseGetPackagesForDeletion
baseGetProfilesUsed
baseStripMans
baseStripDocs
baseStripInfos
Rpm
2021-06-07 12:01:14 +02:00
Marcus Schäfer
50416ddc22
Added optional post_bootstrap.sh script hook
After the bootstrap phase a script post_bootstrap.sh is executed
in a chroot process which allows to add/modify system settings
prior the completion of the system installation. This helps
users for example with custom package manager settings and
Fixes #1763 as well as Fixes #1782
2021-04-05 13:21:49 +02:00
Marcus Schäfer
b5900e62a1
Deleted legacy kiwi chapter from the docs
The information there is almost obsolete since kiwi(perl)
does no longer exist in any modern distribution. It's
only maintained on SLE12 which itself is EOL and the kiwi
there has its own documentation which we don't need to
reference anymore in the upstream project
2021-02-22 15:37:37 +01:00
Marcus Schäfer
03aa40a039
Added documentation for kiwi-systemdeps concept
Added information about the kiwi-systemdeps sub packages
and its purpose. This Fixes #1686
2021-02-18 17:27:33 +01:00
Marcus Schäfer
5403a0eea2
Update documentation
The runtime config file can also be specified on the
commandline
2021-02-18 17:26:38 +01:00
Marcus Schäfer
2510bb3d6f
Fix vagrant documentation
The previous pull request adding a baseVagrantSetup method
and documentation broke the build of the docs due to invalid
indentation. The test pipeline has failed but the PR was
merged so this followup commit is needed to fix the docs
2020-12-15 15:54:17 +01:00
Dan Čermák
119da03e67
[doc] Clarify that suse* functions are also for openSUSE 2020-12-15 15:15:31 +01:00
Dan Čermák
35a23d3bb5
Add baseVagrantSetup helper function
This function is used to setup a vagrant box, so that each vagrant box creator
needn't implement it themselves.
2020-12-15 15:15:31 +01:00
Dan Čermák
2c31e5de30
Use DEBUG=0 by default in function Debug
This avoids script failures when invoked with `set -u`.
2020-12-15 15:15:31 +01:00
David Cassany
d6fa037637
Fix documentation to be consistent with the XML KIWI scheme
This commit fixes the user section documentation to properly reflect
XML KIWI scheme constraints. 'home' attribute is optional and 'password'
attribute is mandatory.

Fixes #1599
2020-11-12 16:19:01 +01:00
Marcus Schäfer
89f85e4504
Use custom tmpfs for managing overlays
Provide a method to manage the base mount point for overlay and
iso mount points and set the base directory to it because /run
has a RAM space limitation which is unfortunate to handle live
systems. This Fixes #1558
2020-10-08 15:04:13 +02:00
Marcus Schäfer
8d2d9c214c
Make oem be a superset of vmx
A vmx image is the same disk as an oem just without the dracut
repart/resize feature. This difference is better handled with
an oemconfig parameter <oem-resize> which allows to switch resize
on or off. The extra image type vmx will be dropped and an XSLT
stylesheet automatically transforms a vmx description to be a
oem image with the resize feature switched off.
This Fixes #1425
2020-09-16 12:56:14 +02:00
Marcus Schäfer
caf1b633fe
Update documentation in content and structure
This commit adds a documentation for the KIWI XML description.
In contrast to the former auto generated code from the XML
schema this document can now finally be used as a reference.
Along with that new chapter all auto generated and static
html content as been deleted. Also all helper scripts around
the proprietary oxygen tool and our schema doc generator
has been deleted. Auto generating this information does not
lead to a reference guide people can really work with.
As a consequence to these changes this commit also includes
some changes of the structure such that no information written
by other people in the past gets lost. This Fixes #1421
and Fixes #1474
2020-07-01 10:42:51 +02:00