Feature: metal
Description
A feature that provides standard kernel, physical hardware support, and server configuration for bare metal systems. Produces .raw and .qcow2 artifacts. The feature is usually pulled in via the baremetal platform feature.
What it does
Installs the standard (non-cloud) kernel and physical hardware tooling: lvm2, efibootmgr, efitools, ipmitool, ethtool, dosfstools. Configures:
- Kernel command line and console settings for serial/physical consoles
- Microcode update hook (
postinst.d/00-ucode) - Monthly PCI/USB ID update cron jobs
- udev rules for network device naming and Intel LLDP
- Removes networking init.d scripts replaced by systemd-networkd
Files
Files present in this feature and their purpose. See the feature file reference for the semantics of each file type.
| File | Purpose |
|---|---|
exec.config (ref) | Applies metal-specific configuration: removes legacy networking scripts and configures hardware services. |
file.exclude (ref) | Removes from rootfs: /etc/network, /etc/init.d/irqbalance, /etc/init.d/ipmievd, /etc/runit, /etc/sv, ... (7 total). |
file.include.markers.yaml (ref) | Maps files to test-coverage marker IDs. |
info.yaml (ref) | Declares type: element and included/excluded features. |
pkg.include (ref) | Installs: ethtool, fdisk, lvm2, dosfstools, efibootmgr, efitools, ipmitool, and others. |
file.include/etc/cron.monthly/update-pciids (file.include) | Monthly cron job to update the PCI device IDs database. |
file.include/etc/cron.monthly/update-usbids (file.include) | Monthly cron job to update the USB device IDs database. |
file.include/etc/kernel/entry-token (file.include) | Sets the boot entry token used by systemd-boot. |
file.include/etc/kernel/cmdline.d/00-default.cfg (file.include) | Default kernel command line parameters for bare metal systems. |
file.include/etc/kernel/cmdline.d/10-console.cfg (file.include) | Console parameters for physical servers (serial and virtual console). |
file.include/etc/kernel/postinst.d/00-kernel-cmdline (file.include) | Regenerates the kernel command line after kernel updates. |
file.include/etc/kernel/postinst.d/00-ucode (file.include) | Updates CPU microcode after kernel installs. |
file.include/etc/kernel/postinst.d/zz-update-syslinux (file.include) | Updates the syslinux bootloader after kernel installs. |
file.include/etc/kernel/postrm.d/zz-update-syslinux (file.include) | Updates the syslinux bootloader after kernel removal. |
file.include/etc/udev/rules.d/69-nostbyrot.rules (file.include) | udev rules for storage device naming. |
file.include/etc/udev/rules.d/71-intellldp.rules (file.include) | udev rules for the Intel LLDP agent. |
file.include/usr/sbin/update-usbids (file.include) | Script to update the USB device IDs database. |
Related features
Includes:
server— provides the server base layer._legacy— adds BIOS/legacy boot support for physical machines that may not support UEFI._fwcfg— providesfw_cfgsupport for QEMU/KVM metadata access.
Excludes (incompatible with):
cloud—cloudandmetalare mutually exclusive due to different kernels, networking, and hardware assumptions.openstackCloud—metalis incompatible with OpenStack cloud-specific configuration.