Age | Commit message (Collapse) | Author |
|
* Fixed some mypy issues regarding SysCommand* and logging
* Fixed imports and undefined variable
|
|
* Added support for storing disk encryption keyfiles and add them to a keyslot.
* Added a luks2().add_key() function in order to inject a keyfile into a keyslot on a encrypted volume.
* Simplified 'missing encryption password' logic in Filesystem(). Added a call to luks2().add_key() after the root-password is set on the volume, to add the keyfile in slot 2
* Adding in password handling in luks2().add_key(). It's required to enter a previous passphrase to unlock the volume and add a new keyslot. Also simplified the handling of partition in Installer().mount_ordered_layout()
* Adding in encryption on all partitions except /boot when encryption is opted in
* Removed setting size on Partition() as it's a read only value. No idea how Partition().size = size hasn't caused an issue before. Removed size=X argument to Partition()
* Added a uniqueness to the loopdevice name. This should ensure that multiple encrypted volumes can be opened at the same time, except for Partition().detect_inner_filesystem() operations which can only happen one at a time since they share namespace. This should never be an issue since archinstall is single threaded and no concurrent operations can/should happen.
* Added partprobe() as part of disk/helpers.py, added a /dev/ -> UUID mapper function called convert_device_to_uuid(path). Added a luks2().crypttab() function that sets up a /etc/crypttab entry.
* Moved the responsability for telling archinstall to generate a keyfile from Filesystem() to user_interaction.py. This should in the future be a user-input based value, and not something the Filesystem() automatically dictates.
* Added a retry mechanism to luks2().encrypt() to avoid having to re-start the installation when a device simply wasn't up yet.
* Swapping UUID= lookup from loopdev to physdev.
|
|
|
|
* Adding a cmd_history.txt log under /var/log/archinstall/ to get a clear picture of which commands was executed.
|
|
* Added multiple `partprobe` calls and added a `.partprobe()` function on partitions, filesystem and blockdevice.
* Adding retry attempts to all UUID related operations tied to the boot process
* Tweaked logging for mounting and disk related operations
* Removed potential SysCall exception disruptor causing exceptions to go by unnoticed
* Increased the start position from 1MiB to 5MiB of /boot partition
* Optimized the GRUB installation & config code
* Improved Partition().uuid to never return None. Instead it will raise an exception if it can't get a PARTUUID within X retries with Y delay per attempt.
* Increased sleep timer for partition uuid retrieval, because even with a 3 second sleep it wasn't long enough even on fast devices.
* Make GRUB install to /dev/sda instead of /dev/sda1.
* Added 10 retries for retreiving PARTUUID with a one second sleep. Instead of increasing the sleep simply add more retries until we find a good balance on slower disks.
|
|
|
|
from user_configuration.json into user_credentials.json. As well as the JSON serializer will omit the credentials from the user_configuration.json by detecting ! in the dictionary keys (which is why they are important). UNSAFE_JSON will leave those keys in there, good for storing credentials in a separate file."
|
|
mostly how we called things in guided.py but also some SysCommand calls
|
|
|
|
|
|
|
|
positions of partitions to 1MiB in.
|
|
|
|
Introduces the use of HTTP mirrors additionally
|
|
Attempt to fix issue regarding broken output
|
|
the size creation so that they don't overlap
|
|
|
|
|
|
Since pacman and some other commands these days write multiple lines and goes back and fourth, it's not reliable to say the "peaked" line is a single line. And if it's not, it will make the output look like garbage.
So instead, we'll write any output - as is - and let the command deal with fancy printing.
|
|
This fix introduces changes so that development can be done (and tested) on other platforms than Linux. This is a convenience fix and shouldn't break anything (simply a few Linux-specific imports that have moved into the functions where they are used).
This commit also introduces sorting based on a list of priorities (where the default will be last if not matched).
|
|
contexts, we have to flush the output manually here to avoid newlines not being before the next output.
|
|
|
|
|
|
|
|
* added support for ingesting config
* fixed condition to check key in dictionary
* Removed redundant code, profile and desktop keys are now optional
* Added base-config.json and support for pulling credentials from .env
* added base config file and env file for users credentials
* added silent install switch
* added python-dotenv as a dependency
* Updated Readme to include argparse changes as well as config ingestion
* Updated Readme to include argparse changes as well as config ingestion
* fixed typo in pyproject.toml
* Replaced the magic __builtin__ global variable. This should fix mypy complaints while still retaining the same functionality, kinda. It's less automatic but it's also less of dark magic, which makes sense for anyone but me.
* Fixes string index error.
* Quotation error.
* fixed initializing --script argument
* added python-dotenv as a dependency
* Installation can't be silent if config is not passed
* fixed silent install help
* fixed condition for ask_user_questions
* reverted to creating profile object properly
* Cleaned up and incorporated suggestions
* added Profile import
* added condition if Profile is null
* fixed condition
* updated parsing vars from argparse
* removed loading users from .env
* Reworking SysCommand & Moving to localectl for locale related activities (#4)
* Moving to `localectl` rather than local file manipulation *(both for listing locales and setting them)*.
* Swapped `loadkeys` for localectl.
* Renamed `main` to `maim` in awesome profile.
* Created `archinstall.Boot(<installation>)` which spawns a `systemd-nspawn` container against the installation target.
* Exposing systemd.py's internals to archinstall global scope.
* Re-worked `SysCommand` completely, it's now a wrapper for `SysCommandWorker` which supports interacting with the process in a different way. `SysCommand` should behave just like the old one, for backwards compatibility reasons. This fixes #68 and #69.
* `SysCommand()` now has a `.decode()` function that defaults to `UTF-8`.
* Adding back peak_output=True to pacstrap.
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
Co-authored-by: Dylan Taylor <dylan@dylanmtaylor.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
* fixed indent
* removed redundant import
* removed duplicate import
* removed duplicate import
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
Co-authored-by: Dylan M. Taylor <dylan@dylanmtaylor.com>
|
|
* Moving to `localectl` rather than local file manipulation *(both for listing locales and setting them)*.
* Swapped `loadkeys` for localectl.
* Renamed `main` to `maim` in awesome profile.
* Created `archinstall.Boot(<installation>)` which spawns a `systemd-nspawn` container against the installation target.
* Exposing systemd.py's internals to archinstall global scope.
* Re-worked `SysCommand` completely, it's now a wrapper for `SysCommandWorker` which supports interacting with the process in a different way. `SysCommand` should behave just like the old one, for backwards compatibility reasons. This fixes #68 and #69.
* `SysCommand()` now has a `.decode()` function that defaults to `UTF-8`.
* Adding back peak_output=True to pacstrap.
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
Co-authored-by: Dylan Taylor <dylan@dylanmtaylor.com>
|
|
|
|
https://docs.python-guide.org/writing/gotchas/#mutable-default-arguments
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Moving away from custom log levels, to something that's well defined.
* Added backward compability to log() as well.
* Added an option to force log messages out on screen even if the level is below the log level threashold.
* Added force log messages when wrong notation is used.
* Added some more length to the deprecated message
* Swapped all log levels to use logging.<level> instead.
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
|
|
|
|
required to disable systemd coloring and paging when querying for service states. Otherwise it returns unreliable data that can cause hanging.
|
|
|
|
the peak again. Added this to any pacstrap call.
|
|
|
|
|
|
|
|
|
|
will show the last line outputted by commands enabling peaking of the ongoing process.
|
|
|
|
Which makes the trace.log to end up in the workdir as well.
|
|
executing. The sys_command() is working pretty well for this very specific need, but this is an attempt to making it a bit more generic. A more general overhaul of the command should be done at some point.
|
|
readable manner. Since it's useful as an indicator where calls might go wrong and for what reason.
|
|
dumping dictionaries and replacing keys also replaces the original value.
|