From 27e5e986696fdc4c0731be1a6d1927b983e3707a Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 24 Apr 2025 17:24:39 -0600 Subject: [PATCH] start work on encrypt feature --- src/main.rs | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 372549f..74bee4d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -47,6 +47,42 @@ fn format_drive(drive_name: &str) -> rsfdisk::Result<()> { Ok(()) } +fn format_drive_encrypt(drive_name: &str) -> rsfdisk::Result<()> { + let mut disk = Fdisk::builder() + .assign_device(drive_name) + .enable_read_write() + .wipe_device_metadata() + .build()?; + + disk.partition_table_create(PartitionTableKind::GPT)?; + + let partition_type = PartitionKind::builder().guid(Guid::EfiSystem).build()?; + + let boot = Partition::builder() + .partition_type(partition_type) + .name("EFI") + //Assuming 512 bytes per sector, 2_097_152 sectors <=> 1 GiB. + .size_in_sectors(2_097_152) + .build()?; + + let _ = disk.partition_add(boot)?; + + let partition_type = PartitionKind::builder() + .guid(Guid::LinuxRootx86_64) + .build()?; + + let root = Partition::builder() + .partition_type(partition_type) + .name("Root") + .build()?; + + let _ = disk.partition_add(root)?; + + disk.partition_table_write_to_disk()?; + + Ok(()) +} + fn format_partitions(drive_name: &str) { let efi_path = format!("{}p1", drive_name); let root_path = format!("{}p2", drive_name); @@ -228,7 +264,9 @@ fn main() { grab_gnome(); // Partitioning the selected drive - let _ = format_drive(drive_name); + //let _ = format_drive(drive_name); + + let _ = format_drive_encrypt(drive_name); // Formatting the partitions format_partitions(drive_name);