Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archinstall/lib/disk/user_guides.py10
-rw-r--r--archinstall/lib/user_interaction.py20
-rw-r--r--examples/guided.py2
3 files changed, 19 insertions, 13 deletions
diff --git a/archinstall/lib/disk/user_guides.py b/archinstall/lib/disk/user_guides.py
index a7d9a6e5..b1a81ded 100644
--- a/archinstall/lib/disk/user_guides.py
+++ b/archinstall/lib/disk/user_guides.py
@@ -2,11 +2,11 @@ import logging
from .helpers import sort_block_devices_based_on_performance, select_largest_device, select_disk_larger_than_or_close_to
from ..output import log
-def suggest_single_disk_layout(block_device, default_filesystem=None):
+def suggest_single_disk_layout(block_device, default_filesystem=None, advanced_options=False):
if not default_filesystem:
from ..user_interaction import ask_for_main_filesystem_format
- default_filesystem = ask_for_main_filesystem_format()
-
+ default_filesystem = ask_for_main_filesystem_format(advanced_options)
+
MIN_SIZE_TO_ALLOW_HOME_PART = 40 # Gb
using_subvolumes = False
@@ -89,10 +89,10 @@ def suggest_single_disk_layout(block_device, default_filesystem=None):
return layout
-def suggest_multi_disk_layout(block_devices, default_filesystem=None):
+def suggest_multi_disk_layout(block_devices, default_filesystem=None, advanced_options=False):
if not default_filesystem:
from ..user_interaction import ask_for_main_filesystem_format
- default_filesystem = ask_for_main_filesystem_format()
+ default_filesystem = ask_for_main_filesystem_format(advanced_options)
# Not really a rock solid foundation of information to stand on, but it's a start:
# https://www.reddit.com/r/btrfs/comments/m287gp/partition_strategy_for_two_physical_disks/
diff --git a/archinstall/lib/user_interaction.py b/archinstall/lib/user_interaction.py
index 82113ba0..844f40a4 100644
--- a/archinstall/lib/user_interaction.py
+++ b/archinstall/lib/user_interaction.py
@@ -481,15 +481,21 @@ def ask_for_disk_layout():
return next((key for key, val in options.items() if val == value), None)
-def ask_for_main_filesystem_format():
+def ask_for_main_filesystem_format(advanced_options=False):
options = {
'btrfs': 'btrfs',
'ext4': 'ext4',
'xfs': 'xfs',
- 'f2fs': 'f2fs',
+ 'f2fs': 'f2fs'
+ }
+
+ advanced = {
'ntfs': 'ntfs'
}
+ if advanced_options:
+ options.update(advanced)
+
value = generic_select(options, "Select which filesystem your main partition should use (by number or name): ", allow_empty_input=False)
return next((key for key, val in options.items() if val == value), None)
@@ -562,11 +568,11 @@ def partition_overlap(partitions :list, start :str, end :str) -> bool:
# TODO: Implement sanity check
return False
-def get_default_partition_layout(block_devices):
+def get_default_partition_layout(block_devices, advanced_options=False):
if len(block_devices) == 1:
- return suggest_single_disk_layout(block_devices[0])
+ return suggest_single_disk_layout(block_devices[0], advanced_options=advanced_options)
else:
- return suggest_multi_disk_layout(block_devices)
+ return suggest_multi_disk_layout(block_devices, advanced_options=advanced_options)
# TODO: Implement sane generic layout for 2+ drives
@@ -762,7 +768,7 @@ def select_individual_blockdevice_usage(block_devices :list):
return result
-def select_disk_layout(block_devices :list):
+def select_disk_layout(block_devices :list, advanced_options=False):
modes = [
"Wipe all selected drives and use a best-effort default partition layout",
"Select what to do with each individual drive (followed by partition usage)"
@@ -771,7 +777,7 @@ def select_disk_layout(block_devices :list):
mode = generic_select(modes, input_text=f"Select what you wish to do with the selected block devices: ")
if mode == 'Wipe all selected drives and use a best-effort default partition layout':
- return get_default_partition_layout(block_devices)
+ return get_default_partition_layout(block_devices, advanced_options)
else:
return select_individual_blockdevice_usage(block_devices)
diff --git a/examples/guided.py b/examples/guided.py
index a86aafd2..3b2f87b8 100644
--- a/examples/guided.py
+++ b/examples/guided.py
@@ -109,7 +109,7 @@ def ask_user_questions():
allow_empty=True)
if archinstall.arguments.get('harddrives', None) is not None and archinstall.storage.get('disk_layouts', None) is None:
- archinstall.storage['disk_layouts'] = archinstall.select_disk_layout(archinstall.arguments['harddrives'])
+ archinstall.storage['disk_layouts'] = archinstall.select_disk_layout(archinstall.arguments['harddrives'], archinstall.arguments.get('advanced', False))
# Get disk encryption password (or skip if blank)
if archinstall.arguments['harddrives'] and archinstall.arguments.get('!encryption-password', None) is None: