Age | Commit message (Collapse) | Author |
|
|
|
* Fix paths used for steps in keyfile creation
* Simplify
|
|
* Cleanup imports and unused code
* Update build check
* Keep deprecation exception
* Simplify logging
---------
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
|
|
|
|
* Invert mypy files
* Add optional pre-commit hooks
* New profile structure
* Serialize profiles
* Use profile instead of classmethod
* Custom profile setup
* Separator between back
* Support profile import via url
* Move profiles module
* Refactor files
* Remove symlink
* Add user to docker group
* Update schema description
* Handle list services
* mypy fixes
* mypy fixes
* Rename profilesv2 to profiles
* flake8
* mypy again
* Support selecting DM
* Fix mypy
* Cleanup
* Update greeter setting
* Update schema
* Revert toml changes
* Poc external dependencies
* Dependency support
* New encryption menu
* flake8
* Mypy and flake8
* Unify lsblk command
* Update bootloader configuration
* Git hooks
* Fix import
* Pyparted
* Remove custom font setting
* flake8
* Remove default preview
* Manual partitioning menu
* Update structure
* Disk configuration
* Update filesystem
* luks2 encryption
* Everything works until installation
* Btrfsutil
* Btrfs handling
* Update btrfs
* Save encryption config
* Fix pipewire issue
* Update mypy version
* Update all pre-commit
* Update package versions
* Revert audio/pipewire
* Merge master PRs
* Add master changes
* Merge master changes
* Small renaming
* Pull master changes
* Reset disk enc after disk config change
* Generate locals
* Update naming
* Fix imports
* Fix broken sync
* Fix pre selection on table menu
* Profile menu
* Update profile
* Fix post_install
* Added python-pyparted to PKGBUILD, this requires [testing] to be enabled in order to run makepkg. Package still works via python -m build etc.
* Swaped around some setuptools logic in pyproject
Since we define `package-data` and `packages` there should be no need for:
```
[tool.setuptools.packages.find]
where = ["archinstall", "archinstall.*"]
```
* Removed pyproject collisions. Duplicate definitions.
* Made sure pyproject.toml includes languages
* Add example and update README
* Fix pyproject issues
* Generate locale
* Refactor imports
* Simplify imports
* Add profile description and package examples
* Align code
* Fix mypy
* Simplify imports
* Fix saving config
* Fix wrong luks merge
* Refactor installation
* Fix cdrom device loading
* Fix wrongly merged code
* Fix imports and greeter
* Don't terminate on partprobe error
* Use specific path on partprobe from luks
* Update archinstall/lib/disk/device_model.py
Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com>
* Update archinstall/lib/disk/device_model.py
Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com>
* Update github workflow to test archinstall installation
* Update sway merge
* Generate locales
* Update workflow
---------
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com>
|
|
|
|
* Cleanup partition
* Update
* Remove unused method
* Update partitioning
* Update
* Update
* Fix mypy
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
|
|
* Restructuring btrfs.py into lib/btrfs/*.py
* Reworking how BTRFS subvolumes get represented, and worked with. Subvolumes are now their own entity which can be used to access it's information, parents or mount location.
* Added BtrfsSubvolume.partition and other stuff.
* Reworking the way luks2().unlock and .format() returns device instances. They should now return BTRFSSubvolume where appropriate.
* Fixed a missing import
* Fixed an issue where mkfs.btrfs wouldn't trigger due to busy disk.
* Fixing subvol mounting without creating a fake instance.
* Added creation of mountpint for btrfs subvolume
* Fixed root detection
* Re-worked mounting into a queue system using frozen mounting calls using lambda
* Removed old mount_subvolume() function
* Removed get_subvolumes_from_findmnt()
* Fixed Partition().subvolumes iteration
* Adding .root to BtrfsSubvolume
* Fixed issue in SysCommandWorker where log output would break and crash execution due to cmd being a string vs list
* Changed return-value from MapperDev.mountpoint to pathlib.Path
|
|
technically not the true block device, as the mapper dev belongs to a partition, but in this context blockdev means the harddrive/medium that the partition (unlocked or otherwise) lives on. (#1100)
|
|
read-only issues and lets Partition().partprobe() deal with the error checks.
|
|
* Define an standard locale for all the commands executed inside the application
* Allow LC_ALL to be overriden during call
* flake8 corrections
|
|
* Added type annotations for 1/5 of the files.
There's bound to be some issues with type miss-match, will sort that out later.
* Added type hints for 4/5 of the code
* Added type hints for 4.7/5 of the code
* Added type hints for 5/5 of the code base
* Split the linters into individual files
This should help with more clearly show which runner is breaking since they don't share a single common name any longer. Also moved mypy settings into pyproject.toml
* Fixed some of the last flake8 issues
* Missing parameter
* Fixed invalid lookahead types
* __future__ had to be at the top
* Fixed last flake8 issues
|
|
* All the changes needed to make btrfs subvolumes work. It boils down to two points;
the handling of the addressing of subvolumes re. physical partitions, and the small changes at the bootloader level
* We added a new script only_hd for testing purposes. It only handles hadrd drive management
* restoring an escape hatch during subvolume processing
* hipercommented manage_btrfs_subvolumes
* Ready to be able to select and process options in subvolume mounting
* Separte nodatacow processing
* Solving a flake8 complain
* Use of bind names @ get_filesystem_type
* compress mount option bypass
* Preparations for encryption handling
* Compatibility to master version re. encrypted btrfs volumes
* Now we can create subvolumes and mountpoints inside an encrypted btrfs partition
* changes for entries file generation with systemd-bootctl
* flake8 corrections plus some comments
Co-authored-by: Anton Hvornum <anton@hvornum.se>
|
|
* 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.
|
|
|
|
mostly how we called things in guided.py but also some SysCommand calls
|
|
formatted when .format() is called on them. The safety now lay in the code parsing the declerative partition layouts. Also added the encrypt/mount logic for encrypted partitions, which by default will be unencrypted unless a password is specified.
|
|
|
|
|
|
|
|
|
|
* 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>
|
|
Closes #269
|
|
|
|
|
|
before trying to open it.
|
|
|
|
logic might be as well and correct those.
|
|
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.
|
|
This should fix #135
|
|
formatted. This is to avoid internal confusion of which partitions are encrypted or not when going from Encrypted -> Un-encrypted setups.
|
|
partition, we need do unmount anything that's mounted beneeth it to continue.
|
|
|
|
|
|
|
|
readable manner. Since it's useful as an indicator where calls might go wrong and for what reason.
|
|
is in use.
|
|
|
|
|
|
luks2() can override any auto-detection that revers back to the parent device of the mapped device, which would be crypto_LUKS instead of None for the inner partition.
|
|
|
|
|
|
|
|
(given a password)
|
|
utilizes luks2.encrypt() in extension.
|
|
flexability. Still some work to be done and features to be implemented, but the structure is taking place
|
|
the partition if it's locked/unlocked for partitioning. By defaults partitions will now be in a locked state - prohibiting formatting unless set or overridden in the formatting call. This allows us to selectively format partitions individually later on. There's also a target_mountpoint that is the desired relative mount point inside a installation. This can be pre-pended with the installation base directory during mount. These changes also function as indicators for the installation (and guided installation) for which partitions to use and/or wipe. If an entire drive is selected for wiping, these changes will have no affect in the decision making as all partitions will be new and have formatable set to true.
|
|
|
|
parameters which also affects the current ability to create multiple log files for multiple runs. This will be re-introduced when logging is made into a class object in a later version
|
|
* [Reintroduced](https://github.com/Torxed/archinstall/blob/f64a605449f59c677dff39962f1cb46616d893b7/archinstall.py#L57-L71) log levels
* Created a global log file definition
* Optional support for `python-systemd`'s journald handler.
* Optional file output that has a globally configurable definition, that archinstall will honor in `archinstall.storage['logfile']`.
|