Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/archinstall/lib/disk
AgeCommit message (Collapse)Author
2023-07-17Enable separate /boot and /boot/esp via XBOOTLDR in systemd-boot (#1859)Anton Hvornum
* Disabled /boot check for now * Making '/boot' more dynamic * str() on boot_partition didn't work * _pacstrap -> pacman.strap() * Added 'finding' the EFI partition logic * f-string qotations * Locked down so get_boot_partition() looks for /boot and get_efi_partition() looks for /boot/efi - essentially hardcoding it for now, as there's no easy way to distinguish between the EFI partition or BOOT partition if they are both FAT32 for some reason. * Added some debugging output * Fixed some mypy complaints * Fixed PosixPath() vs str comparison * Changed FAT32 comparitor, should be FilesystemType.Fat32 now * Fixed PosixPath() vs str comparison * Re-ordered _add_systemd_bootloader() argument order, to match the other functions. This will cause the function to break on scripts that call this explicitly. * is_boot() now returns True if any type of valid boot flags are set, not just the 'Boot' flag. This allows us to check for XBOOTLDR flag as well. * Converted static INT to _ped.PARTITION_<flag> definition. This matches the way pyparted checks for flags on partitions. * /boot/efi -> /boot/EFI (while the recommendation from bootctl is to mount it to /efi, I want to test it with custom paths first) * Removed _ped from mypy checks * flake8 fix * Added ESP flag to partitions * Added more docs in the docstring * Renamed *efi_partition to *xbootldr_partition within this PR changes * Naming collision, PartitionType -> PartitionGUIDs to avoid overwriting existing PartitionType * Check for XBOOTLDR instead of fixed EFI mountpoint in get_xbootldr_partition() * Mixed up XBOOTLDR and EFI partitions a bit, brought back get_efi_partition() which now filters out XBOOTLDR partitions and only returns a partition when there is a boot partition found by get_boot_partition() * Fixed symbiosis between get_boot() and get_efi() so that they don't report the same potential partition * Removed debugging code * Improved comments surrounding why /loader/ rather than /loader/ - this may change
2023-06-29Skip rom devices (#1906)codefiles
2023-06-28Fix 1875 (#1880)Daniel Girtler
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-23fix: define ret as Optional[str] before reassignment in get_fido2_devices ↵Himadri Bhattacharjee
(#1894)
2023-06-22Fix crash when libfido2 is not installed (#1893)ArtikusHG
Co-authored-by: ArtikusHG <artiomoleynic@gmail.com>
2023-06-21Rename encryption method (#1888)Daniel Girtler
* Rename encryption method * Update --------- Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-06-21Fix 1862 (#1884)Daniel Girtler
* Fix 1862 * Update --------- Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-11Cleanup imports and unused code (#1801)Daniel Girtler
* Cleanup imports and unused code * Update build check * Keep deprecation exception * Simplify logging --------- Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-07Fix 1793 (#1794)Daniel Girtler
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-05-05Fix `LsblkInfo` size field (#1787)Daemon Coder
2023-05-04Update `SysCommand()` calls in remaining files (#1707)Daemon Coder
2023-05-04Fix logic errors in `_fetch_lsblk_info()` (#1754)Daemon Coder
2023-05-03Full mypy compliance and small fixes (#1777)Daniel Girtler
* Fix mypy compliance --------- Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-04-28Attempt to fetch partuuid multiple times (#1770)Daniel Girtler
* Attempt to fetch partuuid multiple times * Update --------- Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2023-04-19PyParted and a large rewrite of the underlying partitioning (#1604)Daniel Girtler
* 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>
2023-03-29Save encryption configuration (#1672)Daniel Girtler
* Save encryption configuration * Fix deserialization problem * Added .part_uuid to MapperDev --------- 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>
2023-03-27Added .part_uuid to MapperDev (#1691)Anton Hvornum
2023-03-26Change exit status indications to exit codes (#1685)codefiles
2023-03-10Add sector unit (#1668)Murphy
2023-02-27Patch for 1557 (#1645)Anton Hvornum
* Attempting a retry-attempt on the broken part of lsblk * Improved logging * Adding a retry to Partition._call_lsblk() * Added error checks if lsblk returns nothing, also handles empty Partition().info instance. * Added missing check of disk encryption is None or not. * Added tweak to catching output from lsblk.stderr * Added missing check of disk encryption is None or not. * Fixed a logic test for empty lsblk info * Fixed instances of None being interated * Added some errro handling for weird block devices * Fixed flake8 * Added /etc/vconsole.conf generation in Installer.mkinitcpio() as it's a dependency for it to generate properly without errors. Otherwise we'll get ==> ERRROR: file not found: '/etc/vconsole.conf' * Prep for tagging RC1 of 2.5.3 * Corrected helpers.py get_blockdevice_info() to deal with empty lsblk results
2022-11-11New encryption menu (#1520)Daniel Girtler
* New encryption menu Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com> Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-10-12Removed debug outputAnton Hvornum
2022-10-12Muted a log outputAnton Hvornum
2022-10-12Muted a log outputAnton Hvornum
2022-10-12Updating Partition() information after mount and unmount. (#1508)Anton Hvornum
* Updating Partition() information after mount and unmount. * Cleaned up raw_parted() to gracefully output relevant partition error information. * Adding timestmap to cmd_history.txt as it's impossible to debug properly otherwise * Adding more verbose debugging information * Reinstating the lsblk retry code for PARTUUID and UUID on Partition()'s information * Added error handling for JSON parsing
2022-10-03Exclude archiso devices from selectable blockdevices (#1481)Daniel Girtler
* Exclude liveusb from disk selection * Exclude arch iso from being an option * Update * Update * Update * Mypy Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-09-21On certain hardware where virtual and physical harddrives share the same ↵Anton Hvornum
common name, a smart mapping is done and block devices will show up under /sys/class/block/ but not always under /dev/* and thus breaking the all_blockdevices() logic. This should fix that. (#1475)
2022-09-19Add compression to /etc/fstab for btrfs subvolumes (#1473)Anton Hvornum
* Adding a btrfs compression plugin to genfstab * Allowing the genfstab plugin to break on success
2022-08-30Fixing issue where blkid causes SysCallException (#1445)Anton Hvornum
* Moving a partprobe() call to better allow for cache updates * Trying to improve Partition()._fetch_information() * Removed a sleep() for debugging purposes * Tweaked a sleep
2022-08-09Converted paths to pathlib.Path and mount points to detect properly (#1412)Anton Hvornum
* Converted a path to pathlib.Path * Using Partition.mountpoints instead of Partition.mountpoint * Update mapperdev.py * Added .mountpoints to MapperDev * Spelling error
2022-08-01fix `valid_parted_position()` (#1382)Samaoo
* fix `valid_parted_position()` * make lines shorter * change `pos` to `pos.lower()` * revert changing `if not len(pos):` to `if not pos:` * `b` can not have decimal places * add `.lower()`
2022-08-01Solves issue 1343. Could not locate partition after creation (#1355)Werner Llácer
* Solves issue 1343. Could not locate partition after creation * Added some flake fixes. Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-07-26Cleanup partition (#1333)Daniel Girtler
* Cleanup partition * Update * Remove unused method * Update partitioning * Update * Update * Fix mypy Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-06-14Update list manager (#1331)Daniel Girtler
* Rework partition management * Update * Update list manager * Update * Update Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-06-07Update blockdevice (#1289)Daniel Girtler
* Update blockdevice class Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-06-06Update the subvolume menu - fix for #1278 (#1297)Daniel Girtler
* Update subvolume * Add mypy compliance Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com> Co-authored-by: Anton Hvornum <anton@hvornum.se>
2022-05-29Cleanup and version changes in prep for releaseAnton Hvornum
2022-05-29Fix "Unknown device" error when using erofs (#1232) (#1275)demostanis
2022-05-29Fix typos (#1265)Kian-Meng Ang
2022-05-28Removes btrfs subvolume warnings on incorrect subvolume locations (#1267)Anton Hvornum
* Adding debug information * Adding debug information * Adding debug information * Removed a 'already-a-subvolume' check as it requires more information. * Adding debug information * Adding debug information * Made sure Partition().subvolumes() only attempts to retrieve btrfs subvolume information if fstype==btrfs. * Removed debug information
2022-05-28Fixes additional encryption prompt even tho partitions was marked for ↵Anton Hvornum
encryption (#1264) Corrected the check for partitions marked with `encrypt: true`
2022-05-27Fix mixup of mount options and fstype during mount (#1258)Anton Hvornum
Fixed issue where `options` wasn't passed as `options=options` and got mixed up as fs-type.
2022-05-27Removed debug informationAnton Hvornum
2022-05-27Creates partition label on drives with zero partitions before adding ↵Anton Hvornum
partitions (#1256) * If BlockDevice.partitions is zero, we set a new partition label to ensure new drives are setup correctly * Added a sleep after mklabel. * Removed redundant log message. * Tweaked log message from print() to log(). * Trying PARTUUID in reusage of partitions. * Debugging.
2022-05-27Fix dual-booting (#1250)Anton Hvornum
# Fixes * Optimized partition lookups * Fixed re-use of partition UUID's * `BlockDevice().get_partition()` now supports looking up both `PARTUUID` and `UUID` for a partition under itself * Partitions listed in `--disk-layout` that doesn't have a PARTUUID/UUID should no longer cause an exception, but instead logs a warning and they will simply be ignored * `Filesystem().add_partition()` now handles `DiskError` raised by `partition.part_uuid` * Fixed issue on normal partitions where the device was not properly frozen in `lambda` calls, meaning two or more mount-points shared the same `device_instance`. * Lowered global `DISK_RETRY_ATTEMPTS` to 5, as the timeouts are linear *(`range(DISK_RETRY_ATTEMPTS) * DISK_TIMEOUTS`)*
2022-05-26Fix MapperDev.subvolumes (#1249)Anton Hvornum
* Fixed a silent try/except, and MapperDev.subvolumes should now work. * MapperDev.subvolumes now properly sends a pathlib.Path.
2022-05-26Rework btrfs handling (#1234)Anton Hvornum
* 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
2022-05-18Enhance view (#1210)Daniel Girtler
* Add preview for menu entries * Fix mypy * Update * Update * Fix mypy Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
2022-05-18Added a HSM menu entry (#1196)Anton Hvornum
* Added a HSM menu entry, but also a safety check to make sure a FIDO device is connected * flake8 complaints * Adding FIDO lookup using cryptenroll listing * Added systemd-cryptenroll --fido2-device=list * Removed old _select_hsm call * Fixed flake8 complaints * Added support for locking and unlocking with a HSM * Removed hardcoded paths in favor of PR merge * Removed hardcoded paths in favor of PR merge * Fixed mypy complaint * Flake8 issue * Added sd-encrypt for HSM and revert back to encrypt when HSM is not used (stability reason) * Added /etc/vconsole.conf and tweaked fido2_enroll() to use the proper paths * Spelling error * Using UUID instead of PARTUUID when using HSM. I can't figure out how to get sd-encrypt to use PARTUUID instead. Added a Partition().part_uuid function. Actually renamed .uuid to .part_uuid and created a .uuid instead. * Adding missing package libfido2 and removed tpm2-device=auto as it overrides everything and forces password prompt to be used over FIDO2, no matter the order of the options. * Added some notes to clarify some choices. * Had to move libfido2 package install to later in the chain, as there's not even a base during mounting :P
2022-05-17Fix #1162 (#1204)Daniel Girtler
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>