Skip to content

Commit 2068ab8

Browse files
committed
Install mkinitcpio explicitly in base packages
Prevents pacstrap from picking a different initramfs provider (dracut, booster) when running from a non-Arch host. Fixes #4368
1 parent d836ab0 commit 2068ab8

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

archinstall/lib/installer.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,12 @@
6060
from archinstall.lib.translationhandler import tr
6161

6262
# Any package that the Installer() is responsible for (optional and the default ones)
63-
__packages__ = ['base', 'sudo', 'linux-firmware', 'linux', 'linux-lts', 'linux-zen', 'linux-hardened']
63+
# https://github.com/archlinux/archinstall/issues/4368
64+
# mkinitcpio is listed explicitly so pacstrap installs it deterministically. Otherwise
65+
# pacman picks the first initramfs provider from the host's pacman.conf, which on non-Arch
66+
# hosts (EndeavourOS prefers dracut, etc.) breaks the installer's mkinitcpio() and
67+
# _config_uki() methods that assume mkinitcpio is present in the chroot.
68+
__packages__ = ['base', 'sudo', 'linux-firmware', 'mkinitcpio', 'linux', 'linux-lts', 'linux-zen', 'linux-hardened']
6469

6570
# Additional packages that are installed if the user is running the Live ISO with accessibility tools enabled
6671
__accessibility_packages__ = ['brltty', 'espeakup', 'alsa-utils']
@@ -79,7 +84,7 @@ def __init__(
7984
`Installer()` is the wrapper for most basic installation steps.
8085
It also wraps :py:func:`~archinstall.Installer.pacstrap` among other things.
8186
"""
82-
self._base_packages = base_packages or __packages__[:3]
87+
self._base_packages = base_packages or __packages__[:4]
8388
self.kernels = kernels or ['linux']
8489
self._disk_config = disk_config
8590

0 commit comments

Comments
 (0)