diff --git a/src/install/drives.rs b/src/install/drives.rs index 2d4160a..deb8019 100644 --- a/src/install/drives.rs +++ b/src/install/drives.rs @@ -1,6 +1,10 @@ use yansi::{Color, Paint}; -use crate::{config::DriveConfig, linux::run_command, print_status}; +use crate::{ + config::DriveConfig, + linux::{run_command, systemd_service_enable}, + print_status, +}; // TODO : Add support for using entire block device @@ -111,3 +115,8 @@ pub fn has_filesystem(dev: &str) -> Option { None } + +pub fn setup_fstrim() { + print_status("Setting up FsTrim"); + systemd_service_enable("fstrim.service"); +} diff --git a/src/install/kernel.rs b/src/install/kernel.rs index 539006b..5372233 100644 --- a/src/install/kernel.rs +++ b/src/install/kernel.rs @@ -20,8 +20,8 @@ pub fn setup_mkinitcpio(conf: &DriveConfig) { if conf.encryption.is_some() { let block_uuid = find_uuid_by_dev(&conf.root).unwrap(); - std::fs::write("/mnt/etc/kernel/cmdline", - format!("rd.luks.options=timeout=30s rd.luks.name={block_uuid}=root root=/dev/mapper/root rw") + std::fs::write("/mnt/etc/kernel/cmdline", + format!("rd.luks.options=timeout=30s,discard rd.luks.name={block_uuid}=root root=/dev/mapper/root rw") ).unwrap(); } else { std::fs::write("/mnt/etc/kernel/cmdline", format!("root={}", conf.root)).unwrap(); diff --git a/src/install/mod.rs b/src/install/mod.rs index 58a8650..d85a94c 100644 --- a/src/install/mod.rs +++ b/src/install/mod.rs @@ -10,7 +10,7 @@ use bluetooth::setup_bluetooth; use boot::setup_bootloader; use desktop::setup_desktop; use docker::setup_docker; -use drives::{format_drives, mount_drives}; +use drives::{format_drives, mount_drives, setup_fstrim}; use firewall::setup_firewall; use firmware::{setup_fwupd, setup_microcode}; use first_boot::{first_boot_values, genfstab}; @@ -180,6 +180,7 @@ pub fn install(conf: InstallConfig) { } setup_fwupd(); setup_microcode(); + setup_fstrim(); setup_bootloader(); setup_mkinitcpio(&conf.drive); setup_secure_boot();