* 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.
* 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
* 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.
* 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.
* 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.