From cf4745bbb68b123aad953295a079c9dd27dedffd Mon Sep 17 00:00:00 2001 From: Pyfisch Date: Fri, 2 Apr 2021 18:14:17 +0200 Subject: Join cryptsetup args using shlex Ensure that all arguments are properly quoted. Improve readability by using long-form arguments only. Use identical arguments for both cryptsetup calls, to prevent them from accidentally diverging in future commits. --- archinstall/lib/luks.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/archinstall/lib/luks.py b/archinstall/lib/luks.py index 57163e35..f36a25ab 100644 --- a/archinstall/lib/luks.py +++ b/archinstall/lib/luks.py @@ -1,4 +1,5 @@ import os +import shlex from .exceptions import * from .general import * from .disk import Partition @@ -64,9 +65,23 @@ class luks2(): with open(key_file, 'wb') as fh: fh.write(password) + cryptsetup_args = shlex.join([ + '/usr/bin/cryptsetup', + '--batch-mode', + '--verbose', + '--type', 'luks2', + '--pbkdf', 'argon2i', + '--hash', hash_type, + '--key-size', str(key_size), + '--iter-time', str(iter_time), + '--key-file', os.path.abspath(key_file), + '--use-urandom', + 'luksFormat', partition.path, + ]) + try: # Try to setup the crypt-device - cmd_handle = sys_command(f'/usr/bin/cryptsetup -q -v --type luks2 --pbkdf argon2i --hash {hash_type} --key-size {key_size} --iter-time {iter_time} --key-file {os.path.abspath(key_file)} --use-urandom luksFormat {partition.path}') + cmd_handle = sys_command(cryptsetup_args) except SysCallError as err: if err.exit_code == 256: log(f'{partition} is being used, trying to unmount and crypt-close the device and running one more attempt at encrypting the device.', level=LOG_LEVELS.Debug) @@ -90,7 +105,7 @@ class luks2(): sys_command(f"cryptsetup close {child['name']}") # Then try again to set up the crypt-device - cmd_handle = sys_command(f'/usr/bin/cryptsetup -q -v --type luks2 --pbkdf argon2i --hash {hash_type} --key-size {key_size} --iter-time {iter_time} --key-file {os.path.abspath(key_file)} --use-urandom luksFormat {partition.path}') + cmd_handle = sys_command(cryptsetup_args) else: raise err -- cgit v1.2.3-54-g00ecf From fa90f4118de1e2a8c4bc0e2d23004c3931ba4ba2 Mon Sep 17 00:00:00 2001 From: Anton Hvornum Date: Fri, 2 Apr 2021 20:06:08 +0200 Subject: Removed legacy link called workstation.json #142 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a65e92fa..c1ec746e 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ with archinstall.Filesystem(harddrive, archinstall.GPT) as fs: installation.add_bootloader(harddrive.partition[0]) installation.add_additional_packages(['nano', 'wget', 'git']) - installation.install_profile('workstation') + installation.install_profile('awesome') installation.user_create('anton', 'test') installation.user_set_pw('root', 'toor') @@ -62,7 +62,7 @@ This installer will perform the following: * Installs a basic instance of Arch Linux *(base base-devel linux linux-firmware btrfs-progs efibootmgr)* * Installs and configures a bootloader to partition 0. * Install additional packages *(nano, wget, git)* - * Installs a network-profile called [workstation](https://github.com/Torxed/archinstall/blob/master/profiles/workstation.json) *(more on network profiles in the docs)* + * Installs a network-profile called [awesome](https://github.com/Torxed/archinstall/blob/master/profiles/awesome.py) *(more on network profiles in the documentation)* > **Creating your own ISO with this script on it:** Follow [ArchISO](https://wiki.archlinux.org/index.php/archiso)'s guide on how to create your own ISO or use a pre-built [guided ISO](https://hvornum.se/archiso/) to skip the python installation step, or to create auto-installing ISO templates. Further down are examples and cheat sheets on how to create different live ISO's. -- cgit v1.2.3-54-g00ecf