Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 13 additions & 6 deletions archinstall/lib/installer.py
Original file line number Diff line number Diff line change
Expand Up @@ -1754,6 +1754,7 @@ def _config_uki(
self,
root: PartitionModification | LvmVolume,
efi_partition: PartitionModification | None,
keep_initramfs: bool = False,
) -> None:
if not efi_partition or not efi_partition.mountpoint:
raise ValueError(f'Could not detect ESP at mountpoint {self.target}')
Expand All @@ -1777,11 +1778,11 @@ def _config_uki(
config = preset.read_text().splitlines(True)

for index, line in enumerate(config):
# Avoid storing redundant image file
if m := image_re.match(line):
image = self.target / m.group(2)
image.unlink(missing_ok=True)
config[index] = '#' + m.group(1)
if not keep_initramfs:
image = self.target / m.group(2)
image.unlink(missing_ok=True)
config[index] = '#' + m.group(1)
elif m := uki_re.match(line):
if diff_mountpoint:
config[index] = m.group(2) + diff_mountpoint + m.group(3)
Expand All @@ -1800,7 +1801,13 @@ def _config_uki(
if not self.mkinitcpio(['-P']):
error('Error generating initramfs (continuing anyway)')

def add_bootloader(self, bootloader: Bootloader, uki_enabled: bool = False, bootloader_removable: bool = False) -> None:
def add_bootloader(
self,
bootloader: Bootloader,
uki_enabled: bool = False,
bootloader_removable: bool = False,
keep_initramfs: bool = False,
) -> None:
"""
Adds a bootloader to the installation instance.
Archinstall supports one of five types:
Expand Down Expand Up @@ -1849,7 +1856,7 @@ def add_bootloader(self, bootloader: Bootloader, uki_enabled: bool = False, boot
bootloader_removable = False

if uki_enabled:
self._config_uki(root, efi_partition)
self._config_uki(root, efi_partition, keep_initramfs)

match bootloader:
case Bootloader.Systemd:
Expand Down
17 changes: 16 additions & 1 deletion archinstall/scripts/guided.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,22 @@ def perform_installation(
installation.setup_swap(algo=config.swap.algorithm)

if config.bootloader_config and config.bootloader_config.bootloader != Bootloader.NO_BOOTLOADER:
installation.add_bootloader(config.bootloader_config.bootloader, config.bootloader_config.uki, config.bootloader_config.removable)
keep_initramfs = False
if (
config.bootloader_config.uki
and config.bootloader_config.bootloader == Bootloader.Grub
and disk_config.has_default_btrfs_vols()
and disk_config.btrfs_options
and disk_config.btrfs_options.snapshot_config
):
keep_initramfs = True

installation.add_bootloader(
config.bootloader_config.bootloader,
config.bootloader_config.uki,
config.bootloader_config.removable,
keep_initramfs,
)

if config.network_config:
install_network_config(
Expand Down