The oem resize should only start if there is unallocated
space on the disk available. If it starts the message in
case of a not applicable resize should be more meaningful
This commit addresses both issues and Fixes#1102
Usually the return code from the filesystem check tools is
simple: Non zero exit code means an error occurred. However
in case of the extX filesystem this does not apply. This
commit documents the possible error conditions and supplies
a tool specific check condition. This Fixes#1209
The installation of the checkmedia tool is optional and
and not mandatory. In addition activate the media check
verification also through the upstream used rd.live.check
kernel parameter. This is related to Issue #1158
This commit makes the modules provided by dracut-kiwi-overlay and
dracut-kiwi-oem-repart compatible. The main idea of this commit
is forcing the preparation of the overlay rootfs write partition
after kiwi-repart gets into the play. Since kiwi-overlay mounts the
write partitiontition it has to be executed after the kiwi-repart.
For that instead of doing the job using an initqueue event added by a
udev rule we just add the very same logic in pre-mount hook that happens
after the kiwi-repart pre-mount hook thanks to lower priority.
Fixes#1184
With this commit dracut modules won't be installed by default
in the initrd unless they are requested by the commandline calling
dracut or by a dracut configuration file.
Fixes bsc#1142899 bsc#1136444
Fixes#1103
The current disk detection only takes lsblk entries into
account that marks the device as 'disk'. However on raid
disks like fake raid controllers the disk is mapped via
dmraid and marked as 'raidX' device. This commit also takes
those devices into account for deployment. Issue #1181
This commit fixes the dependencies of the kiwi-lib dracut module to
include crypt module required by kiwi-luks-lib.sh.
In addition it also updates the check() section to return 255 instead of
0. In check section a return code of 0 means install it, 255 install
only if required by another module, anything else, do not install.
Related with bsc#1142899
Some values evaluated in the initrd code are created in
the kiwi builder and passed in as a profile file. bool
values created by kiwi for use in shell scripts takes
the string 'true' or 'false' or are not set at all if not
specified in the kiwi XML description. Some code paths
in the initrd code uses the '-n' switch to check for bool
values, however if the string 'false' is passed '-n' will
do the wrong thing. Therefore a method for the initrd
code has been introduced to clearly handle bool values
The method get_persistent_device_from_unix_node takes a device
path and looks up it's basename to be present as persistent
variant below the given schema, e.g by-id. However if the
method receives an already persistent device path e.g from
/dev/mapper the persistent schema representation will only
match a numbered dm-N device and not the map name. The method
then returns nothing but should return the original device
path. This caused bad after effects like reported in
Issue SUSE-Enceladus/azure-li-services#163
During the boot process of a live image, dracut shows this WARNING:
dracut-initqueue: mount: /run/initramfs/live: WARNING: device write-protected, mounted read-only
This is not a problem, as the live ISO image is, indeed, read-only.
This patch fix this cosmetic issue being explicit in the mount
options in `mountIso` function.
This commit makes default dependencies from sysroot.mount to be
explicitly omitted. This fixes potential inconsistencies in
ordering pre-mount.service with local-fs.target. This change is
also applied to upstream sysroot.mount generator here:
https://github.com/systemd/systemd/pull/12281Fixes#1015
This commit parses the `rd.kiwi.install.pxe.curl_options` argument from
the kernel command line to read and use curl options for the
`fetch_file` function of `kiwi-net-lib.sh` utility. Options are passed
as comma separated values.
Fixes#891
There was a regression introduced in #1035 (048b5c3e). We mask
systemd-fsck-root.service during the repart, but we are not always
unmasking it. If the repart is not possible the service is masked but
not unmasked, which causes the boot to fail.
With this commit after masking the fsck service we trap EXIT and run the
unmask command on script exit. This way we ensure the unmask command is
always executed.
See issue #1034, this fixes non-booting CentOS-7 OEM images that fail
during repartition / FS resize.
Summary: all parted actions trigger a rescan of partition tables and
this repeatedly starts / stops systemd-fsck-root.service until it
finally fails. The workaround is to mask systemd-fsck-root.service
during repartitioning / FS resize.
The @root volume setup allows to specify a size for the root
volume in an LVM setup. The size setting was not respected and
the root volume was always resized to the rest space available.
This patch fixes the read_volume_setup_all_free method
on the dracut kiwi library to know if there is root volume
setup and respect its contents. This Fixes#983
No matter if one ore more devices are used in a multipath map,
if the root device is managed by multipath kiwi has to use the
mapped device for all operations, otherwise we run into busy
or blocked state inside of the initrd operations. This is
related to Issue #954 and bsc#1126283 and bsc#1126318
Simplify the relocation of the GPT to the end of the current
disk by using sgdisk -e instead of gdisk. The possitive after
effect of this is that the broken return value handling of
gdisk in centos will be fixed and did not harm the kiwi
deployment anymore. This Fixes#958
If a BOOTIF= parameter (pxelinux "IPAPPEND 2" option) is present, dracut
handles the network already *and* overwrites the 90-net.rules that
kiwi-*-net-genrules.sh created, thus the interface is not named "lan0"
and ifup is destined to fail.
Work around the issue by detecting if the interface is already handled
by generic dracut code and just skipping the ifup call.
Fixes / improves issue #942
The method lookup_disk_device_from_root assigns the disk device
matching the root device uuid. However in a multipath environment
multiple disk devices matches the same root device. The code to
assign the multipath map in this case was missing in the dracut
code base. This Fixes#954 and Fixes bsc#1126283 and bsc#1126318
When using tools like live-grub-stick the live iso as generated
by kiwi will be copied as file on the target device and a grub
loopback setup is created there to boot the live system from file.
In such a case the persistent write setup which tries to create
an extra write partition on the target fails in almost all cases
because the target has no free and unpartitioned space available.
Therefore in case of such a loopback mounted system we create a
cow file(live_system.cow) instead of a partition to setup
persistent writing. The cow file will be created in the same
directory the live iso image file was read from grub
This Fixes#860
If an error condition applies in the kiwi dump dracut code
the reaction was to stop the process with a dracut die() call.
If the option 'rd.debug' was set on boot, this lead to a debugging
shell which is good, but in a standard process this lead to a
lock of the machine which is an unfortunate situation. This
patch changes the behavior to always print the error message
as a dialog message box on the primary console and reboot
the system after keypress or timeout. In case of the debug
switch configured the system die()'s as before.
This Fixes#884
Dialog's "--radiolist" feature requires to navigate to the item,
press "space" to select the item and then "enter" to execute.
With "--menu", it is enough to just navigate to the item and press
"enter" to execute, which is much more intuitive for most users.
In the implementation of the ramdisk installer from
SUSE/ramdisk_deployment(4fdeee3faa) an error for the
standard case was introduced such that the lsblk call
was invalid. This lead to no devices being present
for the installation. This patch Fixes#877
A LVM-enabled oem image spuriously did not resize its PV / LVs. Tracking
this down, I discovered that lsblk was sometimes racing with udev and
the disk was just not available during get_partition_node_name().
Call udev_pending() before all lsblk calls to avoid that.
(lsblk man page also advocates this to synchronize with udev)
Using the rd.kiwi.ramdisk boot option enables the deployment
into a ramdisk. If this option is enabled only ramdisk devices
as provided by the brd kernel driver will be available for
deployment
This commit makes volid attribute also available for OEM images.
The installation media makes use of the volid value. Only posix
safe names are allowed, up to 32 characters.
Fixes#811
If the live iso is used as a disk on e.g USB sticks and
is configured to setup a persistent write space via the
initrd option rd.live.overlay.persistent, it's required
to find the disk device to create a write partition on
it.
This detection worked if the live iso is binary dumped
on the disk and bootet due to the hybrid support each
iso built by kiwi provides.
However if the live ISO deployment should not destroy
existing data on the disk there is an alternative setup
which uses grub's loopback support and puts the iso as a
file on some partition of the disk. In this mode the
kiwi-live dracut module failed to find the disk device
and could not setup a persistent write partition.
The live ISO should support a network reference. We are using
the Ata Over Ethernet protocol to achieve this. In combination
with pxe boot of the kernel/initrd a live iso can boot from
the network using the following parameter example:
root=live:AOEINTERFACE:e0.1 rd.kiwi.live.pxe
Export of the live iso file via AOE can be achieved using the
vblade toolkit which needs to be available on the exporting
system and compatible with the live operating system.
This Fixes#796
In fate#323743 the decision was made to drop dmraid from
the distribution. Along with the low business case for those
controllers and the support for linux softraid via mdadm
we also drop the support in kiwi for oem-ataraid-scan
For all images which boots via dracut the .profile file is included
except for live iso's because no information is needed from that file
to boot or customize the boot. However the .profile contains the
kiwi_revision information which is useful for any image type.
This Fixes#755