More manual fixes
This commit is contained in:
parent
d93ef24e8e
commit
37e818b3d1
|
|
@ -10,11 +10,12 @@ if archinstall.arguments.get('help'):
|
||||||
# For support reasons, we'll log the disk layout pre installation to match against post-installation layout
|
# For support reasons, we'll log the disk layout pre installation to match against post-installation layout
|
||||||
archinstall.log(f"Disk states before installing: {archinstall.disk_layouts()}", level=archinstall.LOG_LEVELS.Debug)
|
archinstall.log(f"Disk states before installing: {archinstall.disk_layouts()}", level=archinstall.LOG_LEVELS.Debug)
|
||||||
|
|
||||||
|
|
||||||
def ask_user_questions():
|
def ask_user_questions():
|
||||||
"""
|
"""
|
||||||
First, we'll ask the user for a bunch of user input.
|
First, we'll ask the user for a bunch of user input.
|
||||||
Not until we're satisfied with what we want to install
|
Not until we're satisfied with what we want to install
|
||||||
will we continue with the actual installation steps.
|
will we continue with the actual installation steps.
|
||||||
"""
|
"""
|
||||||
if not archinstall.arguments.get('keyboard-language', None):
|
if not archinstall.arguments.get('keyboard-language', None):
|
||||||
while True:
|
while True:
|
||||||
|
|
@ -41,7 +42,6 @@ def ask_user_questions():
|
||||||
selected_region = archinstall.arguments['mirror-region']
|
selected_region = archinstall.arguments['mirror-region']
|
||||||
archinstall.arguments['mirror-region'] = {selected_region : archinstall.list_mirrors()[selected_region]}
|
archinstall.arguments['mirror-region'] = {selected_region : archinstall.list_mirrors()[selected_region]}
|
||||||
|
|
||||||
|
|
||||||
# Ask which harddrive/block-device we will install to
|
# Ask which harddrive/block-device we will install to
|
||||||
if archinstall.arguments.get('harddrive', None):
|
if archinstall.arguments.get('harddrive', None):
|
||||||
archinstall.arguments['harddrive'] = archinstall.BlockDevice(archinstall.arguments['harddrive'])
|
archinstall.arguments['harddrive'] = archinstall.BlockDevice(archinstall.arguments['harddrive'])
|
||||||
|
|
@ -67,7 +67,6 @@ def ask_user_questions():
|
||||||
partition_mountpoints[partition] = None
|
partition_mountpoints[partition] = None
|
||||||
except archinstall.UnknownFilesystemFormat as err:
|
except archinstall.UnknownFilesystemFormat as err:
|
||||||
archinstall.log(f" {partition} (Filesystem not supported)", fg='red')
|
archinstall.log(f" {partition} (Filesystem not supported)", fg='red')
|
||||||
|
|
||||||
|
|
||||||
# We then ask what to do with the partitions.
|
# We then ask what to do with the partitions.
|
||||||
if (option := archinstall.ask_for_disk_layout()) == 'abort':
|
if (option := archinstall.ask_for_disk_layout()) == 'abort':
|
||||||
|
|
@ -122,8 +121,7 @@ def ask_user_questions():
|
||||||
archinstall.log(f"Until then, please enter another supported filesystem.")
|
archinstall.log(f"Until then, please enter another supported filesystem.")
|
||||||
continue
|
continue
|
||||||
except archinstall.SysCallError:
|
except archinstall.SysCallError:
|
||||||
pass # Expected exception since mkfs.<format> can not format /dev/null.
|
pass # Expected exception since mkfs.<format> can not format /dev/null. But that means our .format() function supported it.
|
||||||
# But that means our .format() function supported it.
|
|
||||||
break
|
break
|
||||||
|
|
||||||
# When we've selected all three criteria,
|
# When we've selected all three criteria,
|
||||||
|
|
@ -151,7 +149,7 @@ def ask_user_questions():
|
||||||
|
|
||||||
# Get disk encryption password (or skip if blank)
|
# Get disk encryption password (or skip if blank)
|
||||||
if archinstall.arguments['harddrive'] and archinstall.arguments.get('!encryption-password', None) is None:
|
if archinstall.arguments['harddrive'] and archinstall.arguments.get('!encryption-password', None) is None:
|
||||||
if (passwd := archinstall.get_password(prompt='Enter disk encryption password (leave blank for no encryption): ')):
|
if passwd := archinstall.get_password(prompt='Enter disk encryption password (leave blank for no encryption): '):
|
||||||
archinstall.arguments['!encryption-password'] = passwd
|
archinstall.arguments['!encryption-password'] = passwd
|
||||||
archinstall.arguments['harddrive'].encryption_password = archinstall.arguments['!encryption-password']
|
archinstall.arguments['harddrive'].encryption_password = archinstall.arguments['!encryption-password']
|
||||||
archinstall.arguments["bootloader"] = archinstall.ask_for_bootloader()
|
archinstall.arguments["bootloader"] = archinstall.ask_for_bootloader()
|
||||||
|
|
@ -191,7 +189,7 @@ def ask_user_questions():
|
||||||
|
|
||||||
# Ask about audio server selection if one is not already set
|
# Ask about audio server selection if one is not already set
|
||||||
if not archinstall.arguments.get('audio', None):
|
if not archinstall.arguments.get('audio', None):
|
||||||
# only ask for audio server selection on a desktop profile
|
# only ask for audio server selection on a desktop profile
|
||||||
if str(archinstall.arguments['profile']) == 'Profile(desktop)':
|
if str(archinstall.arguments['profile']) == 'Profile(desktop)':
|
||||||
archinstall.arguments['audio'] = archinstall.ask_for_audio_selection()
|
archinstall.arguments['audio'] = archinstall.ask_for_audio_selection()
|
||||||
else:
|
else:
|
||||||
|
|
@ -264,12 +262,12 @@ def perform_installation_steps():
|
||||||
# Wipe the entire drive if the disk flag `keep_partitions`is False.
|
# Wipe the entire drive if the disk flag `keep_partitions`is False.
|
||||||
if archinstall.arguments['harddrive'].keep_partitions is False:
|
if archinstall.arguments['harddrive'].keep_partitions is False:
|
||||||
fs.use_entire_disk(root_filesystem_type=archinstall.arguments.get('filesystem', 'btrfs'))
|
fs.use_entire_disk(root_filesystem_type=archinstall.arguments.get('filesystem', 'btrfs'))
|
||||||
|
|
||||||
# Check if encryption is desired and mark the root partition as encrypted.
|
# Check if encryption is desired and mark the root partition as encrypted.
|
||||||
if archinstall.arguments.get('!encryption-password', None):
|
if archinstall.arguments.get('!encryption-password', None):
|
||||||
root_partition = fs.find_partition('/')
|
root_partition = fs.find_partition('/')
|
||||||
root_partition.encrypted = True
|
root_partition.encrypted = True
|
||||||
|
|
||||||
# After the disk is ready, iterate the partitions and check
|
# After the disk is ready, iterate the partitions and check
|
||||||
# which ones are safe to format, and format those.
|
# which ones are safe to format, and format those.
|
||||||
for partition in archinstall.arguments['harddrive']:
|
for partition in archinstall.arguments['harddrive']:
|
||||||
|
|
@ -293,10 +291,10 @@ def perform_installation_steps():
|
||||||
unlocked_device.mount('/mnt')
|
unlocked_device.mount('/mnt')
|
||||||
else:
|
else:
|
||||||
fs.find_partition('/').mount('/mnt')
|
fs.find_partition('/').mount('/mnt')
|
||||||
|
|
||||||
if hasUEFI():
|
if hasUEFI():
|
||||||
fs.find_partition('/boot').mount('/mnt/boot')
|
fs.find_partition('/boot').mount('/mnt/boot')
|
||||||
|
|
||||||
perform_installation('/mnt')
|
perform_installation('/mnt')
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -307,7 +305,7 @@ def perform_installation(mountpoint):
|
||||||
formatted and setup prior to entering this function.
|
formatted and setup prior to entering this function.
|
||||||
"""
|
"""
|
||||||
with archinstall.Installer(mountpoint, kernels=archinstall.arguments.get('kernels', 'linux')) as installation:
|
with archinstall.Installer(mountpoint, kernels=archinstall.arguments.get('kernels', 'linux')) as installation:
|
||||||
## if len(mirrors):
|
# if len(mirrors):
|
||||||
# Certain services might be running that affects the system during installation.
|
# 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
|
# 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.
|
# We need to wait for it before we continue since we opted in to use a custom mirror/region.
|
||||||
|
|
@ -319,7 +317,7 @@ def perform_installation(mountpoint):
|
||||||
archinstall.use_mirrors(archinstall.arguments['mirror-region']) # Set the mirrors for the live medium
|
archinstall.use_mirrors(archinstall.arguments['mirror-region']) # Set the mirrors for the live medium
|
||||||
if installation.minimal_installation():
|
if installation.minimal_installation():
|
||||||
installation.set_hostname(archinstall.arguments['hostname'])
|
installation.set_hostname(archinstall.arguments['hostname'])
|
||||||
if archinstall.arguments['mirror-region'].get("mirrors",{})!= None:
|
if archinstall.arguments['mirror-region'].get("mirrors", {}) is not None:
|
||||||
installation.set_mirrors(archinstall.arguments['mirror-region']) # Set the mirrors in the installation medium
|
installation.set_mirrors(archinstall.arguments['mirror-region']) # Set the mirrors in the installation medium
|
||||||
if archinstall.arguments["bootloader"]=="grub-install" and hasUEFI()==True:
|
if archinstall.arguments["bootloader"]=="grub-install" and hasUEFI()==True:
|
||||||
installation.add_additional_packages("grub")
|
installation.add_additional_packages("grub")
|
||||||
|
|
@ -339,7 +337,7 @@ def perform_installation(mountpoint):
|
||||||
installation.enable_service('systemd-networkd')
|
installation.enable_service('systemd-networkd')
|
||||||
installation.enable_service('systemd-resolved')
|
installation.enable_service('systemd-resolved')
|
||||||
|
|
||||||
if archinstall.arguments.get('audio', None) != None:
|
if archinstall.arguments.get('audio', None) is not None:
|
||||||
installation.log(f"This audio server will be used: {archinstall.arguments.get('audio', None)}", level=logging.INFO)
|
installation.log(f"This audio server will be used: {archinstall.arguments.get('audio', None)}", level=logging.INFO)
|
||||||
if archinstall.arguments.get('audio', None) == 'pipewire':
|
if archinstall.arguments.get('audio', None) == 'pipewire':
|
||||||
print('Installing pipewire ...')
|
print('Installing pipewire ...')
|
||||||
|
|
@ -350,7 +348,7 @@ def perform_installation(mountpoint):
|
||||||
installation.add_additional_packages("pulseaudio")
|
installation.add_additional_packages("pulseaudio")
|
||||||
else:
|
else:
|
||||||
installation.log("No audio server will be installed.", level=logging.INFO)
|
installation.log("No audio server will be installed.", level=logging.INFO)
|
||||||
|
|
||||||
if archinstall.arguments.get('packages', None) and archinstall.arguments.get('packages', None)[0] != '':
|
if archinstall.arguments.get('packages', None) and archinstall.arguments.get('packages', None)[0] != '':
|
||||||
installation.add_additional_packages(archinstall.arguments.get('packages', None))
|
installation.add_additional_packages(archinstall.arguments.get('packages', None))
|
||||||
|
|
||||||
|
|
@ -363,7 +361,7 @@ def perform_installation(mountpoint):
|
||||||
for superuser, user_info in archinstall.arguments.get('superusers', {}).items():
|
for superuser, user_info in archinstall.arguments.get('superusers', {}).items():
|
||||||
installation.user_create(superuser, user_info["!password"], sudo=True)
|
installation.user_create(superuser, user_info["!password"], sudo=True)
|
||||||
|
|
||||||
if (timezone := archinstall.arguments.get('timezone', None)):
|
if timezone := archinstall.arguments.get('timezone', None):
|
||||||
installation.set_timezone(timezone)
|
installation.set_timezone(timezone)
|
||||||
|
|
||||||
if (root_pw := archinstall.arguments.get('!root-password', None)) and len(root_pw):
|
if (root_pw := archinstall.arguments.get('!root-password', None)) and len(root_pw):
|
||||||
|
|
@ -390,4 +388,4 @@ def perform_installation(mountpoint):
|
||||||
archinstall.log(f"Disk states after installing: {archinstall.disk_layouts()}", level=archinstall.LOG_LEVELS.Debug)
|
archinstall.log(f"Disk states after installing: {archinstall.disk_layouts()}", level=archinstall.LOG_LEVELS.Debug)
|
||||||
|
|
||||||
ask_user_questions()
|
ask_user_questions()
|
||||||
perform_installation_steps()
|
perform_installation_steps()
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,9 @@ if archinstall.arguments.get('help', None):
|
||||||
|
|
||||||
archinstall.arguments['harddrive'] = archinstall.select_disk(archinstall.all_disks())
|
archinstall.arguments['harddrive'] = archinstall.select_disk(archinstall.all_disks())
|
||||||
|
|
||||||
|
|
||||||
def install_on(mountpoint):
|
def install_on(mountpoint):
|
||||||
# We kick off the installer by telling it where the
|
# We kick off the installer by telling it where the
|
||||||
with archinstall.Installer(mountpoint) as installation:
|
with archinstall.Installer(mountpoint) as installation:
|
||||||
# Strap in the base system, add a boot loader and configure
|
# Strap in the base system, add a boot loader and configure
|
||||||
# some other minor details as specified by this profile and user.
|
# some other minor details as specified by this profile and user.
|
||||||
|
|
@ -36,9 +37,10 @@ def install_on(mountpoint):
|
||||||
archinstall.log(f" * root (password: airoot)")
|
archinstall.log(f" * root (password: airoot)")
|
||||||
archinstall.log(f" * devel (password: devel)")
|
archinstall.log(f" * devel (password: devel)")
|
||||||
|
|
||||||
|
|
||||||
if archinstall.arguments['harddrive']:
|
if archinstall.arguments['harddrive']:
|
||||||
archinstall.arguments['harddrive'].keep_partitions = False
|
archinstall.arguments['harddrive'].keep_partitions = False
|
||||||
|
|
||||||
print(f" ! Formatting {archinstall.arguments['harddrive']} in ", end='')
|
print(f" ! Formatting {archinstall.arguments['harddrive']} in ", end='')
|
||||||
archinstall.do_countdown()
|
archinstall.do_countdown()
|
||||||
|
|
||||||
|
|
@ -68,4 +70,4 @@ if archinstall.arguments['harddrive']:
|
||||||
|
|
||||||
boot.mount('/mnt/boot')
|
boot.mount('/mnt/boot')
|
||||||
|
|
||||||
install_on('/mnt')
|
install_on('/mnt')
|
||||||
|
|
|
||||||
|
|
@ -17,4 +17,4 @@ for name, info in archinstall.list_profiles().items():
|
||||||
|
|
||||||
profile = archinstall.Profile(None, info['path'])
|
profile = archinstall.Profile(None, info['path'])
|
||||||
profile.install()
|
profile.install()
|
||||||
break
|
break
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import archinstall
|
import archinstall
|
||||||
import json
|
# import json
|
||||||
import urllib.request
|
# import urllib.request
|
||||||
|
|
||||||
__packages__ = ['nano', 'wget', 'git']
|
__packages__ = ['nano', 'wget', 'git']
|
||||||
|
|
||||||
|
|
@ -27,7 +27,7 @@ with archinstall.Filesystem(harddrive) as fs:
|
||||||
|
|
||||||
with archinstall.luks2(harddrive.partition[1], 'luksloop', disk_password) as unlocked_device:
|
with archinstall.luks2(harddrive.partition[1], 'luksloop', disk_password) as unlocked_device:
|
||||||
unlocked_device.format('btrfs')
|
unlocked_device.format('btrfs')
|
||||||
|
|
||||||
with archinstall.Installer(
|
with archinstall.Installer(
|
||||||
unlocked_device,
|
unlocked_device,
|
||||||
boot_partition=harddrive.partition[0],
|
boot_partition=harddrive.partition[0],
|
||||||
|
|
|
||||||
|
|
@ -40,14 +40,14 @@ if __name__ == 'awesome':
|
||||||
with open(f"{archinstall.storage['installation_session'].target}/etc/xdg/awesome/rc.lua", 'r') as fh:
|
with open(f"{archinstall.storage['installation_session'].target}/etc/xdg/awesome/rc.lua", 'r') as fh:
|
||||||
awesome_lua = fh.read()
|
awesome_lua = fh.read()
|
||||||
|
|
||||||
## Replace xterm with alacritty for a smoother experience.
|
# Replace xterm with alacritty for a smoother experience.
|
||||||
awesome_lua = awesome_lua.replace('"xterm"', '"alacritty"')
|
awesome_lua = awesome_lua.replace('"xterm"', '"alacritty"')
|
||||||
|
|
||||||
with open(f"{archinstall.storage['installation_session'].target}/etc/xdg/awesome/rc.lua", 'w') as fh:
|
with open(f"{archinstall.storage['installation_session'].target}/etc/xdg/awesome/rc.lua", 'w') as fh:
|
||||||
fh.write(awesome_lua)
|
fh.write(awesome_lua)
|
||||||
|
|
||||||
## TODO: Configure the right-click-menu to contain the above packages that were installed. (as a user config)
|
# TODO: Configure the right-click-menu to contain the above packages that were installed. (as a user config)
|
||||||
|
|
||||||
## Remove some interfering nemo settings
|
# Remove some interfering nemo settings
|
||||||
archinstall.storage['installation_session'].arch_chroot("gsettings set org.nemo.desktop show-desktop-icons false")
|
archinstall.storage['installation_session'].arch_chroot("gsettings set org.nemo.desktop show-desktop-icons false")
|
||||||
archinstall.storage['installation_session'].arch_chroot("xdg-mime default nemo.desktop inode/directory application/x-gnome-saved-search")
|
archinstall.storage['installation_session'].arch_chroot("xdg-mime default nemo.desktop inode/directory application/x-gnome-saved-search")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue