Commit Graph

2580 Commits

Author SHA1 Message Date
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 a18a652bb0
Merge pull request #723 from archlinux/torxed-fix-boot-entries
Clarification on boot entries when using multiple kernels
2021-11-16 15:47:18 +00:00
Anton Hvornum ad7d25fa92 Clarification on boot entries when using multiple kernels 2021-11-16 15:45:06 +00:00
Anton Hvornum 8799973895
Merge PR #722 - Fixes #721
Safe dictionary retrieval
2021-11-16 15:18:17 +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
Anton Hvornum fd2eb74203
Merge pull request #715 from archlinux/torxed-add-mntpoint-arg
Adding in --mount-point argument, which overrides storage['MOUNT_POINT']
2021-11-15 18:49:39 +00: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 ca52c796a5
Merged PR #711 - Fixing disk "ghosting" issues using partprobe
* Adding partprobe at strategic places.
* Swapped `for partition in blockdevice` to `for uuid, partition in blockdevice.partitions.items()` instead as `__iter__` for debugging purposes.
* `get_mount_info()` now causes a exception rather than returning nothing if there is nothing to be shown. This to avoid issues where in places this is crucial information and it went by unnoticeable. Using exception handlers where it doesn't matter if there's any information or not.
2021-11-11 18:11:38 +00:00
Anton Hvornum 9b944b90b1
Merged PR #713 - Fixes #712
Removed assumptions that !user and !super-users exists.
2021-11-11 18:00:37 +00:00
Anton Hvornum b22500babd Removed assumptions that !user and !super-users exists. 2021-11-11 18:59:53 +01: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
Anton Hvornum e3e62039f9
Merged PR #707 - Fixes password leakage to terminal
Created a new JSON serializer called `UNSAFE_JSON` that will serialize everything, including sensitive information. And `JSON` which is the default up to this point now safely ignores any sensitive information in dictionaries marked with `!`, for instance `{"!password" : "mypassword"}` will be omitted from any output.
2021-11-11 09:59:42 +00:00
Anton Hvornum ad09c8cfa2 Bad copy paste of code prohibited credentials from being stored. 2021-11-11 09:59:22 +00:00
Anton Hvornum 813afa1507 Only adding disk encryption to user_credentials.json when supplied. 2021-11-11 09:43:06 +00:00
Anton Hvornum 9fe4dbc50e Modified last few places where password gets set. 2021-11-11 09:39:56 +00:00
Anton Hvornum 273b7aaa99
Merge pull request #709 from wllacer/master
Solves issue #689. Attribute Error.'None type' has no attribute 'form…
2021-11-11 07:55:16 +00:00
Anton Hvornum faadc2b968
Fixed linting issue 2021-11-10 11:40:47 +00:00
Werner Llácer 671c7b3854 Solves issue #689. Attribute Error.'None type' has no attribute 'format' ...
It seems the system does not syncronus update its internal information after a partitioning.
Two places are affected. Directly on filesystem.add_partition (the uuid of the new partition isn't available after the parted command)
and blockdevice.get_partition, where the list of partitions for the iterator might not be available in the query.
The patch places both sections under controlled loops, giving the system the chance to update the information.
Should be more controlled via application parameters
2021-11-10 11:20:38 +01:00
Anton Hvornum df59809206 Changed partition password to !password
And also added a check to grab !encryption-password if no partition-specific password was given.
2021-11-09 22:19:40 +01:00
Anton Hvornum 4b4c66caa1 Forgot to change the cls=JSON inside the recursive call of UNSAFE_JSON 2021-11-09 19:23:29 +01:00
Anton Hvornum b7fcbf13bc
Merge pull request #706 from archlinux/torxed-add-credentials
Adding in storage of user supplied credentials in a separate file.
2021-11-09 18:04:11 +00:00
Anton Hvornum 71a86f65aa Forgot the disk encryption password, also escaped with ! 2021-11-09 19:01:48 +01:00
Anton Hvornum 389aa1080b Adding in storage of user supplied credentials. This separates credentials 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." 2021-11-09 17:43:28 +01:00
Anton Hvornum d1716eeeef Revert default automatic hostname in user_config.json, I realized it's better to use --silent than forcing something in there. Some users might want to get poked on every machine. 2021-11-09 17:20:48 +01:00
Anton Hvornum 07255391cc Automatically fill the hostname in user_config.json 2021-11-09 17:16:25 +01:00
Anton Hvornum cd07dafaac
Merge pull request #704 from archlinux/torxed-fix-689
Fix #689 by adding a exception to filesystem.parted() on failure
2021-11-09 14:46:57 +00:00
Anton Hvornum 75604a906d Adding a exception to filesystem.parted() if it fails. We can't let these go by unoticed 2021-11-09 14:11:22 +00:00