Incompatible Filesystem Settings on Host vs. Image
==================================================
.. note:: **Abstract**
This page provides further information how to solve
image boot problems if the filesystem tool chain on
the image build host is incompatible with the
image target distribution
When {kiwi} builds an image which requests the creation of a
filesystem, the required filesystem creation tool, for
example `mkfs.xfs`, is called from the host on which {kiwi}
gets called. It is expected that the generated filesystem
is compatible with the image target distribution. This
expectation is not always correct and depends on the
compatibility of the filesystem default settings between
build host and image target. We know about the following
settings that causes an incompatible filesystem which
will not be able to be used on boot:
Ext[2,3,4]
Check `/etc/mke2fs.conf` on the build host and make sure
the configured `inode_size` is the same as the setting used
for the target image. To solve an issue of this type use
the following filesystem creation option in your {kiwi}
image configuration:
.. code:: xml
XFS
Check the XFS metadata setup on the build host and make sure
the settings are compatible with the target image. XFS has the
default settings compiled in, thus it might be needed to build
the image first and use the `xfs_info` tool in a `disk.sh` script
to fetch the settings at build time of the image. We know from
community reports that the setting `sparse=1` will cause issues
on older versions of grub's xfs module, which does not know how
to handle this setting properly. To solve an issue of this type
use the following filesystem creation option in your
{kiwi} image configuration:
.. code:: xml
btrfs
btrfs and default page sizes (4k vs 64k). By default btrfs
autodetects the sectorsize according to the used kernel page
size. If the sectorsize differs from the page size, the
created filesystem can not be mounted by the image target
kernel. If there is a different kernel page size between the
kernel on the system the image is build on and the later
kernel used for the image, it's required to specify the
filesystem sector size to match with the kernel page size
of the kernel used for the image. This can be done like in
the following example:
.. code:: xml
.. note::
There can be more inconsistencies in the area of filesystems
which we haven't listed here. In general it's advisable to
build the image in a compatible environment. At best the
build host distribution is of the same major Linux version
than the image target. For this purpose {kiwi} provides the
so called `boxed-plugin`. Further details can be found
in :ref:`self_contained`