!oNSIfazDqEcwhcOjSL:matrix.org

disko

357 Members
disko - declarative disk partitioning - https://github.com/nix-community/disko89 Servers

Load older messages


SenderMessageTime
26 Apr 2024
@lassulus:lassul.uslassuluslvm_vg is under disk instead of of being under lvm_vg in the toplevel21:39:15
@lassulus:lassul.uslassulusso the stuff from line 50 onwards needs to go one lever higher21:39:38
@lassulus:lassul.uslassulussorry for it being so complicated21:40:02
@pxc:matrix.orgpxc changed their display name from pxc to pxc (why).23:32:11
@pxc:matrix.orgpxc changed their display name from pxc (why) to pxc.23:32:18
27 Apr 2024
@pxc:matrix.orgpxc set a profile picture.00:46:07
@pxc:matrix.orgpxc removed their profile picture.00:48:07
@io:meat.computerio joined the room.02:17:24
@lychee:lefishe.club@lychee:lefishe.club left the room.14:36:52
@ygt:matrix.orgnadir joined the room.18:24:47
28 Apr 2024
@vartroc:matrix.org@vartroc:matrix.org
In reply to @lassulus:lassul.us
so the stuff from line 50 onwards needs to go one lever higher
That solved, thanks a lot
13:09:03
@waterturkey:matrix.orgwaterturkey set a profile picture.13:19:38
@vartroc:matrix.org@vartroc:matrix.org* That solved it, thanks a lot13:26:13
@adzuki:matrix.orgadzuki joined the room.15:07:43
@adzuki:matrix.orgadzuki

I'm having problems getting disko and impermanence to work after moving some functionality into separate modules. Here is the output of nixos-rebuild boot --flake /persist/nixos#amstrad:

trace: warning: The legacy table is outdated and should not be used. We recommend using the gpt type instead.
Please note that certain features, such as the test framework, may not function properly with the legacy table type.
If you encounter errors similar to:
"error: The option `disko.devices.disk.disk1.content.partitions."[definition 1-entry 1]".content._config` is read-only, but it's set multiple times,"
this is likely due to the use of the legacy table type.

trace: the create output is deprecated, use format instead
trace: warning: The legacy table is outdated and should not be used. We recommend using the gpt type instead.
Please note that certain features, such as the test framework, may not function properly with the legacy table type.
If you encounter errors similar to:
"error: The option `disko.devices.disk.disk1.content.partitions."[definition 1-entry 1]".content._config` is read-only, but it's set multiple times,"
this is likely due to the use of the legacy table type.

trace: warning: The legacy table is outdated and should not be used. We recommend using the gpt type instead.
Please note that certain features, such as the test framework, may not function properly with the legacy table type.
If you encounter errors similar to:
"error: The option `disko.devices.disk.disk1.content.partitions."[definition 1-entry 1]".content._config` is read-only, but it's set multiple times,"
this is likely due to the use of the legacy table type.

error:
       … while calling the 'seq' builtin

         at /nix/store/370qy3d3wg9zhbn5a3dcv6k1q1iigfh4-source/lib/modules.nix:322:18:

          321|         options = checked options;
          322|         config = checked (removeAttrs config [ "_module" ]);
             |                  ^
          323|         _module = checked (config._module);

       … while calling the 'throw' builtin

         at /nix/store/370qy3d3wg9zhbn5a3dcv6k1q1iigfh4-source/lib/modules.nix:298:18:

          297|                     ''
          298|             else throw baseMsg
             |                  ^
          299|         else null;

       (stack trace truncated; use '--show-trace' to show the full trace)

       error: attribute 'currentSystem' missing

       at /nix/store/370qy3d3wg9zhbn5a3dcv6k1q1iigfh4-source/pkgs/top-level/impure.nix:17:43:

           16|   # (build, in GNU Autotools parlance) platform.
           17|   localSystem ? { system = args.system or builtins.currentSystem; }
             |                                           ^
           18|

This is my disko.nix (located at modules/nixos/system/disko.nix in the nixos config directory:

{
  device ? throw "Set this to your disk device, e.g. /dev/sda",
  ...
}: {
  disko.devices = {
    disk.main = {
      inherit device;
      type = "disk";
      content = {
        type = "gpt";
        partitions = {
          boot = {
            name = "boot";
            size = "1M";
            type = "EF02";
          };
          esp = {
            name = "ESP";
            size = "500M";
            type = "EF00";
            content = {
              type = "filesystem";
              format = "vfat";
              mountpoint = "/boot";
            };
          };
          swap = {
            size = "4G";
            content = {
              type = "swap";
              resumeDevice = true;
            };
          };
          root = {
            name = "root";
            size = "100%";
            content = {
              type = "lvm_pv";
              vg = "root_vg";
            };
          };
        };
      };
    };
    lvm_vg = {
      root_vg = {
        type = "lvm_vg";
        lvs = {
          root = {
            size = "100%FREE";
            content = {
              type = "btrfs";
              extraArgs = ["-f"];

              subvolumes = {
                "/root" = {
                  mountpoint = "/";
                };

                "/persist" = {
                  mountOptions = ["subvol=persist" "noatime"];
                  mountpoint = "/persist";
                };

                "/nix" = {
                  mountOptions = ["subvol=nix" "noatime"];
                  mountpoint = "/nix";
                };
              };
            };
          };
        };
      };
    };
  };
}

And this is the flake.nix used for building:

{
  description = "Nixos config flake";
     
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";

    disko = {
      url = "github:nix-community/disko";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    impermanence = {
      url = "github:nix-community/impermanence";
    };

    home-manager = {
      url = "github:nix-community/home-manager";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = {nixpkgs, ...} @ inputs:
  {
    homeManagerModules.default = ./modules/home-manager;
    nixosConfigurations = {
      amstrad = nixpkgs.lib.nixosSystem {
        specialArgs = { inherit inputs; };
        modules = [
          inputs.disko.nixosModules.default
          (import ./modules/nixos/system/disko.nix { device = "/dev/sda"; })

          ./hosts/amstrad/configuration.nix
	 ./modules/nixos
              
          inputs.impermanence.nixosModules.impermanence
          inputs.home-manager.nixosModules.default
        ];
      };
    };
  };
}

Any help would be greatly appreciated, I'm really stumped by this as it was working before I tried to use impermanence as a module.

15:17:48
29 Apr 2024
@perchun:matrix.orgPerchun Pak joined the room.11:46:45
@perchun:matrix.orgPerchun Pakjust a quick probably stupid question, will disko ignore these 2mb of unallocated space? gparted doesn't want to include them into first partition, the only way would be to move 600gb partition two times (second time on 2mb back)11:49:56
@perchun:matrix.orgPerchun Pakimage.png
Download image.png
11:49:58
@lassulus:lassul.uslassulusNot sure what you mean by ignore. If they are there and you use the format script disko generates it will be gone. If you use disko just to configure your filesystem it has no effect if not specified11:56:43
@perchun:matrix.orgPerchun Pak

I mean in this example, will disko try to overwrite 2mb of free space with partition with random_windows_partition_1, or it will skip it?

partitions = {                                                                                              
  esp = { ... };
  # 2mb of free space
  random_windows_partition_1 = { };                                                                          
  windows_main_partition = { };                                                                             
  # etc...
};

and for context, yes I am again trying to partially format my disk using script without backups

12:01:51
@lassulus:lassul.uslassulusWell you can create a partition without content. So that it alligns correctly. But you can also leave some space by using start12:06:58
@lassulus:lassul.uslassulusI guess start would be the right thing to do here12:07:24
@lassulus:lassul.uslassulusSince an empty partition is a bit different than no partition12:07:45
@perchun:matrix.orgPerchun Paki just realized this will break my windows partition because it (windows) doesn't like when you move its partitions12:09:27
@perchun:matrix.orgPerchun Pakso i will just hard format my drive probably12:09:39
@perchun:matrix.orgPerchun Pak

i accidentally nuked my entire drive and now trying to add space for windows before Linux. is this a bug?

esp = { ... };
swap = {
  start = "500G";
  # ...
};
luks = {
  size = "100%";
  # ...
};
13:03:20
@perchun:matrix.orgPerchun Pakimage.png
Download image.png
13:03:22
@perchun:matrix.orgPerchun Pak(swap partition is after the luks partition)13:03:34
@matthewcroughan:defenestrate.itmatthewcroughan changed their profile picture.13:04:12
@perchun:matrix.orgPerchun Pak

if I add start = "500G"; to luks, it fails with

+ sgdisk --align-end --new=3:500G:-0 --change-name=3:disk-main-luks --typecode=3:8300 /dev/nvme0n1
Could not create partition 3 from 1048576000 to 1048575999
Unable to set partition 3's name to 'disk-main-luks'!
Could not change partition 3's type code to 8300!
Error encountered; not saving changes.
+ sgdisk --change-name=3:disk-main-luks --typecode=3:8300 /dev/nvme0n1
Unable to set partition 3's name to 'disk-main-luks'!
Could not change partition 3's type code to 8300!
Error encountered; not saving changes.
+ rm -rf /tmp/tmp.STzH236qNq

[nixos@nixos:~/nixos-dotfiles]$ 

(same error if I set 520gb instead of 500 in luks partition)

13:09:23

Show newer messages


Back to Room ListRoom Version: 10