mixed up the mount of /boot, now correctly mounts /boot before running pacstrap
This commit is contained in:
parent
bc8f6ce448
commit
5ab238569d
|
|
@ -7,15 +7,18 @@ from .user_interaction import *
|
||||||
from .profiles import Profile
|
from .profiles import Profile
|
||||||
|
|
||||||
class Installer():
|
class Installer():
|
||||||
def __init__(self, partition, *, profile=None, mountpoint='/mnt', hostname='ArchInstalled'):
|
def __init__(self, partition, boot_partition, *, profile=None, mountpoint='/mnt', hostname='ArchInstalled'):
|
||||||
self.profile = profile
|
self.profile = profile
|
||||||
self.hostname = hostname
|
self.hostname = hostname
|
||||||
self.mountpoint = mountpoint
|
self.mountpoint = mountpoint
|
||||||
|
|
||||||
self.partition = partition
|
self.partition = partition
|
||||||
|
self.boot_partition = boot_partition
|
||||||
|
|
||||||
def __enter__(self, *args, **kwargs):
|
def __enter__(self, *args, **kwargs):
|
||||||
self.partition.mount(self.mountpoint)
|
self.partition.mount(self.mountpoint)
|
||||||
|
os.makedirs(f'{self.mountpoint}/boot', exist_ok=True)
|
||||||
|
self.boot_partition.mount(f'{self.mountpoint}/boot')
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def __exit__(self, *args, **kwargs):
|
def __exit__(self, *args, **kwargs):
|
||||||
|
|
@ -39,16 +42,13 @@ class Installer():
|
||||||
log(f'Could not sync mirrors: {sync_mirrors.exit_code}')
|
log(f'Could not sync mirrors: {sync_mirrors.exit_code}')
|
||||||
|
|
||||||
def minimal_installation(self):
|
def minimal_installation(self):
|
||||||
self.pacstrap('base base-devel linux linux-firmware btrfs-progs efibootmgr nano wpa_supplicant dialog'.split(' '), debug=True)
|
if (x := self.pacstrap('base base-devel linux linux-firmware btrfs-progs efibootmgr nano wpa_supplicant dialog'.split(' '))):
|
||||||
|
print(list(os.walk(f'{self.mountpoint}/boot')))
|
||||||
|
return x
|
||||||
|
|
||||||
def add_bootloader(self, boot_partition):
|
def add_bootloader(self):
|
||||||
log(f'Adding bootloader to {boot_partition}')
|
log(f'Adding bootloader to {self.boot_partition}')
|
||||||
import time
|
|
||||||
time.sleep(10000)
|
|
||||||
os.makedirs(f'{self.mountpoint}/boot', exist_ok=True)
|
|
||||||
boot_partition.mount(f'{self.mountpoint}/boot')
|
|
||||||
o = b''.join(sys_command(f'/usr/bin/arch-chroot {self.mountpoint} bootctl --no-variables --path=/boot install'))
|
o = b''.join(sys_command(f'/usr/bin/arch-chroot {self.mountpoint} bootctl --no-variables --path=/boot install'))
|
||||||
|
|
||||||
with open(f'{self.mountpoint}/boot/loader/loader.conf', 'w') as loader:
|
with open(f'{self.mountpoint}/boot/loader/loader.conf', 'w') as loader:
|
||||||
loader.write('default arch\n')
|
loader.write('default arch\n')
|
||||||
loader.write('timeout 5\n')
|
loader.write('timeout 5\n')
|
||||||
|
|
@ -72,6 +72,7 @@ class Installer():
|
||||||
if not os.path.basename(real_path) == os.path.basename(self.partition.real_device): continue
|
if not os.path.basename(real_path) == os.path.basename(self.partition.real_device): continue
|
||||||
|
|
||||||
entry.write(f'options cryptdevice=PARTUUID={uid}:luksdev root=/dev/mapper/luksdev rw intel_pstate=no_hwp\n')
|
entry.write(f'options cryptdevice=PARTUUID={uid}:luksdev root=/dev/mapper/luksdev rw intel_pstate=no_hwp\n')
|
||||||
|
print(list(os.walk(f'{self.mountpoint}/boot')))
|
||||||
return True
|
return True
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
|
|
@ -82,6 +83,7 @@ class Installer():
|
||||||
if not os.path.basename(real_path) == os.path.basename(self.partition.path): continue
|
if not os.path.basename(real_path) == os.path.basename(self.partition.path): continue
|
||||||
|
|
||||||
entry.write(f'options root=PARTUUID={uid} rw intel_pstate=no_hwp\n')
|
entry.write(f'options root=PARTUUID={uid} rw intel_pstate=no_hwp\n')
|
||||||
|
print(list(os.walk(f'{self.mountpoint}/boot')))
|
||||||
return True
|
return True
|
||||||
break
|
break
|
||||||
raise RequirementError(f'Could not identify the UUID of {self.partition}, there for {self.mountpoint}/boot/loader/entries/arch.conf will be broken until fixed.')
|
raise RequirementError(f'Could not identify the UUID of {self.partition}, there for {self.mountpoint}/boot/loader/entries/arch.conf will be broken until fixed.')
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,9 @@ while (disk_password := getpass.getpass(prompt='Enter disk encryption password (
|
||||||
|
|
||||||
def perform_installation(device, boot_partition):
|
def perform_installation(device, boot_partition):
|
||||||
hostname = input('Desired hostname for the installation: ')
|
hostname = input('Desired hostname for the installation: ')
|
||||||
with archinstall.Installer(device, hostname=hostname) as installation:
|
with archinstall.Installer(device, boot_partition=boot_partition, hostname=hostname) as installation:
|
||||||
if installation.minimal_installation():
|
if installation.minimal_installation():
|
||||||
installation.add_bootloader(boot_partition)
|
installation.add_bootloader()
|
||||||
|
|
||||||
packages = input('Additional packages aside from base (space separated): ').split(' ')
|
packages = input('Additional packages aside from base (space separated): ').split(' ')
|
||||||
if len(packages) and packages[0] != '':
|
if len(packages) and packages[0] != '':
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue