f307bb4d8b
fedora-minimal fails to build on Ubuntu Trusty due do being unable to find the initrd (see Id4c04d7ae20068643df34d2fa31068e8a917a52d). This is a rather obscure problem that comes from the intersection of several things. The first thing to note is that the post-install scripts of the kernel-core package use kernel-install [1]. For whatever reason, this installs the kernel to /boot/MACHINE-ID/KERNEL-VERSION MACHINE-ID comes from /etc/machine-id; a UUID that should have been created by the systemd post-inst scripts with systemd-machine-id-setup [2]. The chroot environment provided for root.d elements has no kernel file-systems like /proc or /dev mounted. This is where differences in the base-system come into play -- on more recent systems that implement getrandom() systemd does not need /dev/urandom to generate the machine-id [3]; we get a value and /etc/machine-id is populated. On older platforms (Trusty), systemd-machine-id-setup fails (unable to access /dev/urandom) and we end up with a blank /etc/machine-id. This ends up making kernel-install (the script) fail during yum's installation of kernel-core, which means the initrd is not installed correctly. We end up bailing out in fedora-minimal/install.d/99-ramdisk, where we try to put the installed ramdisk in /boot for the later grub install scripts to find. The solution here is to mount the standard kernel file-systems within the chroot before we try installing. [1] http://www.freedesktop.org/software/systemd/man/kernel-install.html [2] http://www.freedesktop.org/software/systemd/man/systemd-machine-id-setup.html [3] https://github.com/systemd/systemd/blob/master/src/basic/random-util.c Change-Id: Ibcce35da928f64e6a719b070bcc833346ee7ee92 |
||
---|---|---|
.. | ||
install.d | ||
pre-install.d | ||
root.d | ||
element-deps | ||
package-installs.yaml | ||
pkg-map | ||
README.rst |
=========== yum-minimal =========== Base element for creating minimal yum-based images. This element is incomplete by itself, you'll want to use the centos-minimal or fedora-minimal elements to get an actual base image. Use of this element will require 'yum' and 'yum-utils' to be installed on Ubuntu and Debian. Nothing additional is needed on Fedora or CentOS. The `DIB_OFFLINE` or more specific `DIB_YUMCHROOT_USE_CACHE` variables can be set to prefer the use of a pre-cached root filesystem tarball.