From 3fa70722a9ef52cee670439ccc2afd22d598da78 Mon Sep 17 00:00:00 2001 From: Vasiliy Stelmachenok <92667539+ventureoo@users.noreply.github.com> Date: Mon, 26 Aug 2024 10:57:45 +0000 Subject: [PATCH] Do not overwrite the contents of mkinitcpio.conf (#2532) --- archinstall/lib/installer.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py index c9d4ba7d..401667c1 100644 --- a/archinstall/lib/installer.py +++ b/archinstall/lib/installer.py @@ -707,10 +707,11 @@ class Installer: if plugin.on_mkinitcpio(self): return True - with open(f'{self.target}/etc/mkinitcpio.conf', 'w') as mkinit: - mkinit.write(f"MODULES=({' '.join(self._modules)})\n") - mkinit.write(f"BINARIES=({' '.join(self._binaries)})\n") - mkinit.write(f"FILES=({' '.join(self._files)})\n") + with open(f'{self.target}/etc/mkinitcpio.conf', 'r+') as mkinit: + content = mkinit.read() + content = re.sub("\nMODULES=(.*)", f"\nMODULES=({' '.join(self._modules)})", content) + content = re.sub("\nBINARIES=(.*)", f"\nBINARIES=({' '.join(self._binaries)})", content) + content = re.sub("\nFILES=(.*)", f"\nFILES=({' '.join(self._files)})", content) if not self._disk_encryption.hsm_device: # For now, if we don't use HSM we revert to the old @@ -720,7 +721,9 @@ class Installer: # * sd-vconsole -> keymap self._hooks = [hook.replace('systemd', 'udev').replace('sd-vconsole', 'keymap consolefont') for hook in self._hooks] - mkinit.write(f"HOOKS=({' '.join(self._hooks)})\n") + content = re.sub("\nHOOKS=(.*)", f"\nHOOKS=({' '.join(self._hooks)})", content) + mkinit.seek(0) + mkinit.write(content) try: SysCommand(f'/usr/bin/arch-chroot {self.target} mkinitcpio {" ".join(flags)}', peek_output=True)