diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py index 50b5e05944..241c7a0e4b 100644 --- a/archinstall/lib/installer.py +++ b/archinstall/lib/installer.py @@ -880,6 +880,7 @@ def minimal_installation( mkinitcpio: bool = True, hostname: str | None = None, locale_config: LocaleConfiguration | None = LocaleConfiguration.default(), + timezone: str | None = None, ) -> None: if self._disk_config.lvm_config: lvm = 'lvm2' @@ -936,10 +937,6 @@ def minimal_installation( if not self._disable_fstrim: self.enable_periodic_trim() - # TODO: Support locale and timezone - # os.remove(f'{self.target}/etc/localtime') - # sys_command(f'arch-chroot {self.target} ln -s /usr/share/zoneinfo/{localtime} /etc/localtime') - # sys_command('arch-chroot /mnt hwclock --hctosys --localtime') if hostname: self.set_hostname(hostname) @@ -947,8 +944,15 @@ def minimal_installation( self.set_locale(locale_config) self.set_keyboard_language(locale_config.kb_layout) - # TODO: Use python functions for this - self.arch_chroot('chmod 700 /root') + if timezone: + if not self.set_timezone(timezone): + warn(f'Failed to set timezone: {timezone}') + + root_dir = self.target / 'root' + if root_dir.exists(): + root_dir.chmod(0o700) + else: + debug(f'Root directory not found at {root_dir}, skipping chmod') if mkinitcpio and not self.mkinitcpio(['-P']): error('Error generating initramfs (continuing anyway)') diff --git a/archinstall/scripts/guided.py b/archinstall/scripts/guided.py index b9b73c01ec..091eb56a65 100644 --- a/archinstall/scripts/guided.py +++ b/archinstall/scripts/guided.py @@ -97,6 +97,7 @@ def perform_installation( mkinitcpio=run_mkinitcpio, hostname=arch_config_handler.config.hostname, locale_config=locale_config, + timezone=config.timezone, ) if mirror_config := config.mirror_config: @@ -132,9 +133,6 @@ def perform_installation( if config.packages and config.packages[0] != '': installation.add_additional_packages(config.packages) - if timezone := config.timezone: - installation.set_timezone(timezone) - if config.ntp: installation.activate_time_synchronization()