Co-Authored-By: edef <edef@edef.eu> Co-Authored-by: Ryan Lahfa <raito@lix.systems> Change-Id: Ica1cda177a236814de900f50a8a61d288f58f519
		
			
				
	
	
		
			84 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
let
 | 
						|
  disk = "/dev/sda";
 | 
						|
  targetFsType = "xfs";
 | 
						|
  swapSizeInGb = 16;
 | 
						|
in
 | 
						|
{
 | 
						|
  disko.devices = {
 | 
						|
    disk = {
 | 
						|
      ${disk} = {
 | 
						|
        device = "${disk}";
 | 
						|
        type = "disk";
 | 
						|
        content = {
 | 
						|
          type = "gpt";
 | 
						|
          partitions = {
 | 
						|
            ESP = {
 | 
						|
              size = "1G";
 | 
						|
              type = "EF00";
 | 
						|
              priority = 100;
 | 
						|
              content = {
 | 
						|
                type = "filesystem";
 | 
						|
                format = "vfat";
 | 
						|
                mountpoint = "/boot";
 | 
						|
                mountOptions = [ "umask=0077" ];
 | 
						|
              };
 | 
						|
            };
 | 
						|
            PRIMARY = {
 | 
						|
              # Take the next available range.
 | 
						|
              start = "0";
 | 
						|
              end = "-${toString swapSizeInGb}G";
 | 
						|
              content = {
 | 
						|
                type = "lvm_pv";
 | 
						|
                vg = "vg_${targetFsType}";
 | 
						|
              };
 | 
						|
            };
 | 
						|
            SWAP = {
 | 
						|
              # Start from the SWAP area.
 | 
						|
              start = "-${toString swapSizeInGb}G";
 | 
						|
              size = "100%";
 | 
						|
              content = {
 | 
						|
                type = "swap";
 | 
						|
              };
 | 
						|
            };
 | 
						|
          };
 | 
						|
        };
 | 
						|
      };
 | 
						|
    };
 | 
						|
    lvm_vg = {
 | 
						|
      "vg_${targetFsType}" = {
 | 
						|
        type = "lvm_vg";
 | 
						|
        lvs = {
 | 
						|
          ROOT = {
 | 
						|
            name = "ROOT";
 | 
						|
            size = "2G";
 | 
						|
            content = {
 | 
						|
              type = "filesystem";
 | 
						|
              format = targetFsType;
 | 
						|
              mountpoint = "/";
 | 
						|
            };
 | 
						|
          };
 | 
						|
          NIX = {
 | 
						|
            name = "NIX";
 | 
						|
            size = "40%FREE";
 | 
						|
            content = {
 | 
						|
              type = "filesystem";
 | 
						|
              format = targetFsType;
 | 
						|
              mountpoint = "/nix";
 | 
						|
              mountOptions = [ "noatime" ];
 | 
						|
            };
 | 
						|
          };
 | 
						|
          VAR = {
 | 
						|
            name = "VAR";
 | 
						|
            size = "100%FREE";
 | 
						|
            content = {
 | 
						|
              type = "filesystem";
 | 
						|
              format = targetFsType;
 | 
						|
              mountpoint = "/var";
 | 
						|
              mountOptions = [ "noatime" ];
 | 
						|
            };
 | 
						|
          };
 | 
						|
        };
 | 
						|
      };
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |