From 50d20f0b809758d067bc23f6c8bf2a36f61cc738 Mon Sep 17 00:00:00 2001 From: Anton Hvornum Date: Mon, 27 Feb 2023 09:43:26 +0100 Subject: Added more services that we need to wait for. (#1647) * Added more services that we need to wait for. * Fixed small issue with previous commit not checking if disk_encryption is None or not. --- examples/guided.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/examples/guided.py b/examples/guided.py index e242138e..e0753834 100644 --- a/examples/guided.py +++ b/examples/guided.py @@ -146,14 +146,6 @@ def perform_installation(mountpoint): if partition.size < 0.19: # ~200 MiB in GiB raise archinstall.DiskError(f"The selected /boot partition in use is not large enough to properly install a boot loader. Please resize it to at least 200MiB and re-run the installation.") - # if len(mirrors): - # Certain services might be running that affects the system during installation. - # Currently, only one such service is "reflector.service" which updates /etc/pacman.d/mirrorlist - # We need to wait for it before we continue since we opted in to use a custom mirror/region. - installation.log('Waiting for automatic mirror selection (reflector) to complete.', level=logging.INFO) - while archinstall.service_state('reflector') not in ('dead', 'failed'): - time.sleep(1) - # If we've activated NTP, make sure it's active in the ISO too and # make sure at least one time-sync finishes before we continue with the installation if archinstall.arguments.get('ntp', False): @@ -175,6 +167,22 @@ def perform_installation(mountpoint): installation.log(f"Waiting for timedatectl timesync-status to report a timesync against a server", level=logging.INFO) logged = True time.sleep(1) + + # if len(mirrors): + # Certain services might be running that affects the system during installation. + # Currently, only one such service is "reflector.service" which updates /etc/pacman.d/mirrorlist + # We need to wait for it before we continue since we opted in to use a custom mirror/region. + installation.log('Waiting for automatic mirror selection (reflector) to complete.', level=logging.INFO) + while archinstall.service_state('reflector') not in ('dead', 'failed'): + time.sleep(1) + + installation.log('Waiting pacman-init.service to complete.', level=logging.INFO) + while archinstall.service_state('pacman-init') not in ('dead', 'failed'): + time.sleep(1) + + installation.log('Waiting Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete.', level=logging.INFO) + while archinstall.service_state('archlinux-keyring-wkd-sync') not in ('dead', 'failed'): + time.sleep(1) # Set mirrors used by pacstrap (outside of installation) if archinstall.arguments.get('mirror-region', None): -- cgit v1.2.3-54-g00ecf