Commit Graph

1075 Commits

Author SHA1 Message Date
Werner Llácer 2058e61dc7
Issue #764 Modify inclusion of self.BINARIES entry due to a mistype (#765)
* Modify inclusion of self.BINARIES entry due to a mistype
2021-11-24 20:29:20 +01:00
Anton Hvornum e729457b6c
Support encrypting multiple partitions (#759)
* 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.
2021-11-24 00:09:33 +01:00
Dylan Taylor 04c2b19dbe Fix error at end of installation from missing method import 2021-11-23 15:27:02 -05:00
Dylan M. Taylor 72d02a391d
Add accessibility packages to installed system if using the on the live ISO (#760)
* Add group of accesibility tools
* Conditionally extend base packages
* Enable it if accessibility in use in guided
* Fix circular import
2021-11-23 21:10:21 +01:00
Anton Hvornum 6b6c9c84be
Adding a warning when /boot is reasonably too small (#738)
* Moved convert_size_to_gb() into disk/helpers.py, Added a Partition().size property meta function. Using the .size value to check if /boot is too small which will raise an exception. The only drawback is that it's done post-formatting. This in order to catch scenarios where formatting isn't used.
* Changed /boot warning from 0.15GB to 0.25GB
* Changed the wording in the warning when /boot is too small.
2021-11-23 11:37:51 +00:00
Anton Hvornum e156971191
Merge pull request #756 from Firminator/patch-1
Update filesystem.py
2021-11-23 06:46:11 +00:00
Firminator 7774165b96
Update filesystem.py
just a few typos
* label instead of labling
* make UUID consistent
2021-11-22 20:51:26 -05:00
Dylan Taylor 45ba4a3f1b Rewrite bootloader selection to allow efistub if advanced flag is set 2021-11-22 20:25:43 -05:00
Dylan M. Taylor e532b76158
Make NTFS an advanced option (#753)
* Make NTFS an advanced option
2021-11-22 21:08:41 +01:00
Dylan M. Taylor 0c96ae049d
NTFS Root Filesystem Support (#748)
* For fun, allow NTFS as a root filesystem type
Add ability to format a filesystem as NTFS
Try to force filesystem type
Fix FAT mounting
* Split out mount fs type method
* Handle rootfstype on non-GRUB bootloaders
* Add -Q to mkfs.ntfs command line for quick formatting
* I believe this will fix GRUB with NTFS root
* Remove the fsck hook if NTFS is used as the root partition
* Looks like the string is ntfs3 not ntfs so this logic wasn't running
2021-11-22 17:22:51 +01:00
Anton Hvornum 29d0b3d155
Simplified size definition in dict. (#752)
* Simplified size definition in dict. Also changed from MiB to MB and GiB to GB on places where they were used, as BlockDevice().size now returns GB by default, so no math operations needed
* Appended the /boot offset to /root when specifying /home start.
2021-11-22 11:27:49 +00:00
Anton Hvornum c264fd466a
Fix #746 - Can't create a filesystem on a new partition during the manual partitioning (#751)
* Changed default value of info in largest_free_space()
* Fixing bad assumption that a disk always contain a minimum of two partitions.
2021-11-22 09:33:00 +00:00
Steven Lee 91d030a09c
source code improvement 2021-11-19 14:09:47 +11:00
Anton Hvornum 5ec690da93
Adding a cmd_history.txt log under /var/log/archinstall/ (#737)
* Adding a cmd_history.txt log under /var/log/archinstall/ to get a clear picture of which commands was executed.
2021-11-18 22:18:41 +01:00
Anton Hvornum 08468dc1cc Fixed spelling error on variables 2021-11-18 16:09:25 +00:00
Anton Hvornum caa83221a7 Added an exception if configuration cannot be loaded, to avoid confusion 2021-11-18 15:56:38 +00:00
Anton Hvornum 96332670c3 Added docstring 2021-11-18 15:33:21 +00:00
Anton Hvornum ee2eba6baf Reworked _safe_uuid() to be it's own function without timeouts. 2021-11-18 15:32:47 +00:00
Anton Hvornum 61bc59f5bf Reworked the last uuid fix, and introduced _safe_uuid which does the same thing but handles the DisKerror. This way we can use it in more places. 2021-11-18 15:29:59 +00:00
Anton Hvornum c90fe07055 Error handling when PARTUUID is missing during __repr__ 2021-11-18 15:21:57 +00:00
Anton Hvornum b3d4155114 Swapped .get() statement for a verification. This ensures Partition().uuid doesn't immediately return None 2021-11-18 13:45:21 +00:00
Anton Hvornum 776823adfb
Increased disk delays by 100% (for unsuccessful operations), successful should still be quick. (#730)
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
2021-11-18 13:07:28 +00:00
Anton Hvornum 7d991ecb9f
Fixing broken encryption support in GRUB (#724)
* 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.
2021-11-17 19:02:20 +01:00
Anton Hvornum 5cc88a74ab
Merge PR #716 - Support for efistub-bootloader (API only)
Add EFISTUB bootloader support through config/api calls using:

```json
{
  "bootloader": "efistub",
  "kernels": [
    "linux",
    "linux-lts"
  ]
}
```
2021-11-17 15:38:32 +00:00
Anton Hvornum ad7d25fa92 Clarification on boot entries when using multiple kernels 2021-11-16 15:45:06 +00:00
Anton Hvornum 2891265409 Safe dictionary retrieval 2021-11-16 15:17:42 +00:00
Anton Hvornum c16872531e
Merge PR #714 - Fix empty drives causing issues
* Removed the GPT vs MBR lookup on __enter__
* Removed redundant `boot_partition` lookup during GRUB configuration
2021-11-16 15:15:21 +00:00
Anton Hvornum 4adb75c34b Accidental stdout redirect into 1 2021-11-16 15:06:54 +00:00
Anton Hvornum 8619dcc579 removed redundant import 2021-11-16 14:55:56 +00:00
Anton Hvornum c70b360879 Removed redundant boot-partition retrieval. 2021-11-16 14:41:00 +00:00
Anton Hvornum af514cf65e Linting issues 2021-11-16 14:14:13 +00:00
Anton Hvornum ba88e0a353 Added more logging for debugging purposes 2021-11-16 14:07:58 +00:00
Anton Hvornum 29aa991ab5 Improved error message when failing to detect mount information. 2021-11-16 14:06:02 +00:00
Ettore Forigo 436cabb8d0
Fix unknown-ucode message for EFISTUB bootloader 2021-11-16 02:13:34 +01:00
Ettore Forigo 44109b851a
Fix boot partition detection for EFISTUB bootloader 2021-11-15 01:58:06 +01:00
Ettore Forigo 34cd2c18d3 Add EFISTUB bootloader support 2021-11-14 15:19:54 +01:00
Anton Hvornum 1bc4e114fe Adding in --mount-point argument, which overrides storage['MOUNT_POINT'] 2021-11-13 10:46:11 +01:00
Anton Hvornum 1168efb01e Removed the GPT vs MBR lookup on __enter__ as it's no longer necessary to validate this on instance creation. load_layout() Uses this only to detect what partition table format it should use when wiping the drive. Other than that we only check if MBR and part numbers are > 3, that's the only use of this variable at this moment. 2021-11-12 11:22:30 +00:00
Anton Hvornum c0bf44e0ae Converted partprobe call into a function. 2021-11-11 18:40:41 +01:00
Anton Hvornum 6d2126a597 Dealt with exception in partition 2021-11-11 15:31:51 +00:00
Anton Hvornum 6f8b064ec5 Added a hard exception for when mount information can't be detected 2021-11-11 15:26:07 +00:00
Anton Hvornum 91887bf0b3 Added more partprobe's 2021-11-11 15:14:06 +00:00
Anton Hvornum 960c4e6a3d Added more debug output for get_mount_info() 2021-11-11 15:11:42 +00:00
Anton Hvornum fd904ca787 Improved partition.uuid handling of lsblk information 2021-11-11 14:51:57 +00:00
Anton Hvornum e0782f234b Tweaked partitions usage in blockdevice 2021-11-11 14:30:52 +00:00
Anton Hvornum c2bfc4e340 Tweaked partitions usage in blockdevice 2021-11-11 14:29:41 +00:00
Anton Hvornum 4ea7feb04e Added more debugging (some duplicate, but that's fine) 2021-11-11 14:16:14 +00:00
Anton Hvornum 15e569d0bd Adding in debugging 2021-11-11 14:07:08 +00:00
Anton Hvornum 5809953440 elif -> if 2021-11-11 11:37:23 +00:00
Anton Hvornum 610e161d44 Removed legacy code related to disk wiping. Also added in partprobe in strategic places (not sure this is enough, will have to test) 2021-11-11 10:10:12 +00:00