!oNSIfazDqEcwhcOjSL:matrix.org

disko

367 Members
disko - declarative disk partitioning - https://github.com/nix-community/disko94 Servers

Load older messages


SenderMessageTime
14 Apr 2024
@sigmasquadron:matrix.orgSigmaSquadron The paths will be more complicated, since they also include the hashes of the package, but the general gist of it is defined in the manual: https://www.gnu.org/software/grub/manual/grub/grub.html#GNU_002fLinux 15:33:47
@sigmasquadron:matrix.orgSigmaSquadron search for your root, set your kernel, use the initrd command to boot. 15:34:22
@sigmasquadron:matrix.orgSigmaSquadron Though this might be very difficult if you aren’t already used to the GRUB CLI. The NixOS wiki has a nice walkthrough on how to do this from a NixOS installation image: https://nixos.wiki/wiki/Bootloader#Re-installing_the_bootloader 15:35:33
@sigmasquadron:matrix.orgSigmaSquadron * Though this might be very difficult if you aren’t already used to the GRUB CLI. The NixOS wiki has a nice walkthrough on how to skip this and reinstall the bootloader from a NixOS installation image: https://nixos.wiki/wiki/Bootloader#Re-installing_the_bootloader 15:36:28
@zonnebloem:matrix.orgzonnebloemthank you17:06:52
@zonnebloem:matrix.orgzonnebloemI couldn't get it to work, I'm backing up and reinstalling17:07:18
@sigmasquadron:matrix.orgSigmaSquadron There probably isn’t a need to reinstall the entire system, just mounting and rebuilding should work. 18:09:20
17 Apr 2024
@JoelMcCracken:matrix.orgJoelMcCracken joined the room.16:29:40
@lychee:lefishe.club@lychee:lefishe.club changed their display name from kay to kaylee.17:10:15
19 Apr 2024
@lychee:lefishe.club@lychee:lefishe.club changed their profile picture.12:19:28
23 Apr 2024
@vartroc:matrix.org@vartroc:matrix.org joined the room.13:51:35
@min:min.rip@min:min.rip joined the room.23:36:08
25 Apr 2024
@me:indeednotjames.com@me:indeednotjames.com left the room.14:43:59
@vartroc:matrix.org@vartroc:matrix.org

Hi everyone, I would ask you to please just take a look at my config, answer some questions and maybe give some recommendation.

First, my questions:

  • extraArgs = ["-f"]` What does this do?
  • if I first specify 25%FREE for root at the lvm-lvs and then specify 100%FREE for games, 25% of the file is for root and 75% is for games, right?

Here my config:

15:19:35
@vartroc:matrix.org@vartroc:matrix.org *

Hi everyone, I would ask you to please just take a look at my config, answer some questions and maybe give some recommendation.

First, my questions:

  • extraArgs = ["-f"]` What does this do?
  • if I first specify 25%FREE for root at the lvm-lvs and then specify 100%FREE for games, 25% of the file is for root and 75% is for games, right?

Here my config:

{
disko.devices = {
        disk = {
                disk0 = {
                        type = "disk";
                        device = "/dev/nvme1n1";
                        content = {
                                type = "gpt";
                                partitions = {
                                        esp = {
                                                name = "ESP";
                                                size = "500M";
                                                type = "EF00";
                                                content = {
                                                        type = "filesystem";
                                                        format = "vfat";
                                                        mountpoint = "/boot";
                                                        };
                                                };
                                        root = {
                                                name = "root0";
                                                size = "100%";
                                                content = {
                                                        type = "lvm_pv";
                                                        vg = "root_vg";
                                                };
                                        };
                                };
                        };
                };
                disk1 = {
                        type = "disk";
                        device = "/dev/nvme0n1";
                        content = {
                                type = "gpt";
                                partitions = {
                                        root = {
                                                name = "root1";
                                                size = 100%;
                                                content = {
                                                        type = "lvm_pv";
                                                        vg = "root_vg";
                                                };
                                        };
                                };
                        };
                };

                lvm_vg = {
                        root_vg = {
                                type = "lvm_vg";
                                lvs = {
                                        root = {
                                                size = "25%FREE";
                                                content = {
                                                        type = "btrfs";
                                                        extraArgs = ["-f"];
                                                        subvolumes = {
                                                                "/root" = {
                                                                 mountpoint = "/";
                                                                };

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

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

                                        games = {
                                                size = "100%FREE";
                                                content = {
                                                        type = "btrfs";
                                                        extraArgs = ["-f"];
                                                        subvolumes = {
                                                                "/games" = {
                                                                mountOptions = ["noatime"];
                                                                mountpoint = "/games";
                                                                };
                                                        };
                                                };
                                        };
                                };
                        };
                };
        };
}



15:20:47
@vartroc:matrix.org@vartroc:matrix.org *

Hi everyone, I would ask you to please just take a look at my config, answer some questions and maybe give some recommendation.

First, my questions:

  • extraArgs = ["-f"]` What does this do?
  • if I first specify 25%FREE for root at the lvm-lvs and then specify 100%FREE for games, 25% of the file is for root and 75% is for games, right?
  • does the mountOptions = ["subvol=games" "noatime"] sense? I coudnt find anything about thesubvol=games` part

Here my config:

{
disko.devices = {
        disk = {
                disk0 = {
                        type = "disk";
                        device = "/dev/nvme1n1";
                        content = {
                                type = "gpt";
                                partitions = {
                                        esp = {
                                                name = "ESP";
                                                size = "500M";
                                                type = "EF00";
                                                content = {
                                                        type = "filesystem";
                                                        format = "vfat";
                                                        mountpoint = "/boot";
                                                        };
                                                };
                                        root = {
                                                name = "root0";
                                                size = "100%";
                                                content = {
                                                        type = "lvm_pv";
                                                        vg = "root_vg";
                                                };
                                        };
                                };
                        };
                };
                disk1 = {
                        type = "disk";
                        device = "/dev/nvme0n1";
                        content = {
                                type = "gpt";
                                partitions = {
                                        root = {
                                                name = "root1";
                                                size = 100%;
                                                content = {
                                                        type = "lvm_pv";
                                                        vg = "root_vg";
                                                };
                                        };
                                };
                        };
                };

                lvm_vg = {
                        root_vg = {
                                type = "lvm_vg";
                                lvs = {
                                        root = {
                                                size = "25%FREE";
                                                content = {
                                                        type = "btrfs";
                                                        extraArgs = ["-f"];
                                                        subvolumes = {
                                                                "/root" = {
                                                                 mountpoint = "/";
                                                                };

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

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

                                        games = {
                                                size = "100%FREE";
                                                content = {
                                                        type = "btrfs";
                                                        extraArgs = ["-f"];
                                                        subvolumes = {
                                                                "/games" = {
                                                                mountOptions = ["subvol=games" "noatime"];
                                                                mountpoint = "/games";
                                                                };
                                                        };
                                                };
                                        };
                                };
                        };
                };
        };
}



15:23:54
@vartroc:matrix.org@vartroc:matrix.org *

Hi everyone, I would ask you to please just take a look at my config, answer some questions and maybe give some recommendation.

First, my questions:

  • extraArgs = ["-f"]` What does this do?
  • if I first specify 25%FREE for root at the lvm-lvs and then specify 100%FREE for games, 25% of the file is for root and 75% is for games, right?
  • does the mountOptions = ["subvol=games" "noatime"] sense? I coudnt find anything about thesubvol=games` part

Here my config:

{
disko.devices = {
        disk = {
                disk0 = {
                        type = "disk";
                        device = "/dev/nvme1n1";
                        content = {
                                type = "gpt";
                                partitions = {
                                        esp = {
                                                name = "ESP";
                                                size = "500M";
                                                type = "EF00";
                                                content = {
                                                        type = "filesystem";
                                                        format = "vfat";
                                                        mountpoint = "/boot";
                                                        };
                                                };
                                        root = {
                                                name = "root0";
                                                size = "100%";
                                                content = {
                                                        type = "lvm_pv";
                                                        vg = "root_vg";
                                                };
                                        };
                                };
                        };
                };
                disk1 = {
                        type = "disk";
                        device = "/dev/nvme0n1";
                        content = {
                                type = "gpt";
                                partitions = {
                                        root = {
                                                name = "root1";
                                                size = 100%;
                                                content = {
                                                        type = "lvm_pv";
                                                        vg = "root_vg";
                                                };
                                        };
                                };
                        };
                };

                lvm_vg = {
                        root_vg = {
                                type = "lvm_vg";
                                lvs = {
                                        root = {
                                                size = "25%FREE";
                                                content = {
                                                        type = "btrfs";
                                                        extraArgs = ["-f"];
                                                        subvolumes = {
                                                                "/root" = {
                                                                 mountpoint = "/";
                                                                };

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

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

                                        games = {
                                                size = "100%FREE";
                                                content = {
                                                        type = "btrfs";
                                                        extraArgs = ["-f"];
                                                        subvolumes = {
                                                                "/games" = {
                                                                mountOptions = ["subvol=games" "noatime"];
                                                                mountpoint = "/games";
                                                                };
                                                        };
                                                };
                                        };
                                };
                        };
                };
        };
}
15:24:19
@adam:robins.wtf@adam:robins.wtf left the room.19:30:50
@jtojnar:matrix.orgJan Tojnar joined the room.20:07:10
@zraexy:nixos.devDavid Mell (zraexy) joined the room.23:38:25
@zraexy:nixos.devDavid Mell (zraexy) changed their display name from David Mell to David Mell (zraexy).23:51:57
26 Apr 2024
@raj-magesh:matrix.orgRaj

Couple of questions about NixOS live USBs:

I want to partition my 64 GB USB flash drive into two partitions (FAT32 live USB + ext4 storage), so I used the following disko config:

let
  usb = "/dev/disk/by-id/usb-USB_SanDisk_3.2Gen1_0401a943ae4197a38a6f9070194e9ea2b3fb8dbb7997e05ed1b197c0e28946be4b8f000000000000000000001cf4be6800926418a955810751ab6336-0:0";
in {
  disko.devices = {
    disk = {
      live = {
        type = "disk";
        device = usb;
        content = {
          type = "gpt";
          partitions = {
            ESP = {
              type = "EF00";
              device = "${usb}-part1";
              priority = 0;
              size = "8192M";
              content = {
                type = "filesystem";
                format = "vfat";
              };
            };
            storage = {
              device = "${usb}-part2";
              priority = 1;
              size = "100%";
              content = {
                type = "filesystem";
                format = "ext4";
              };
            };
          };
        };
      };
    };
  };
}

I then copied over the files from the (minimal, non-graphical) NixOS live ISO into partition 1, hoping that the instructions on the Arch wiki would generalize to NixOS, but then my live ISO gets stuck with the following error message:

[...]
Timed out waiting for device /dev/root, trying to mount anyway
mounting /dev/root on /iso...
mount: mounting /dev/root on /mnt-root/iso failed: No such file or directory

An error occurred [...]

How can I use my USB flash drive as both a live USB and as a storage device? I found this relevant Discourse link but there was no resolution to the problem there.

I realize this might not be the best place to ask this, but I figured that folks here would have expertise configuring boot partitions correctly.

02:02:16
@raj-magesh:matrix.orgRaj *

Couple of questions about NixOS live USBs:

I want to partition my 64 GB USB flash drive into two partitions (FAT32 live USB + ext4 storage), so I used the following disko config:

let
  usb = "/dev/disk/by-id/usb-USB_SanDisk_3.2Gen1_0401a943ae4197a38a6f9070194e9ea2b3fb8dbb7997e05ed1b197c0e28946be4b8f000000000000000000001cf4be6800926418a955810751ab6336-0:0";
in {
  disko.devices = {
    disk = {
      live = {
        type = "disk";
        device = usb;
        content = {
          type = "gpt";
          partitions = {
            ESP = {
              type = "EF00";
              device = "${usb}-part1";
              priority = 0;
              size = "8192M";
              content = {
                type = "filesystem";
                format = "vfat";
              };
            };
            storage = {
              device = "${usb}-part2";
              priority = 1;
              size = "100%";
              content = {
                type = "filesystem";
                format = "ext4";
              };
            };
          };
        };
      };
    };
  };
}

I then copied over the files from the (minimal, non-graphical) NixOS live ISO into partition 1, hoping that the instructions on the Arch wiki would generalize to NixOS, but then my live ISO gets stuck with the following error message:

[...]
Timed out waiting for device /dev/root, trying to mount anyway
mounting /dev/root on /iso...
mount: mounting /dev/root on /mnt-root/iso failed: No such file or directory

An error occurred [...]

How can I use my USB flash drive as both a live USB and as a storage device? I found this relevant Discourse link but there was no resolution to the problem there.

I realize this might not be the best place to ask this, but I figured that folks here would have expertise configuring boot partitions correctly.

For reference, the NixOS manual says I should dd the ISO to the disk directly: sudo dd if=<path-to-image> of=/dev/sdX bs=4M conv=fsync

02:12:28
@tim92:matrix.orgtimI don't think that this will work since you need to unmount the live USB to format it as storage device07:16:00
@raj-magesh:matrix.orgRaj
In reply to @tim92:matrix.org
I don't think that this will work since you need to unmount the live USB to format it as storage device
Not sure what you mean, exactly. To clarify, I'm not trying to format the USB while it's live; I'm running this from an existing NixOS install.

If the"live USB" bit uses only ~1 GiB, there should be some way to make use of the remaining space, hopefully.
07:57:47
@perchun:matrix.orgPerchun Pak left the room.07:57:54
@lassulus:lassul.uslassulus changed their profile picture.08:25:00
@vartroc:matrix.org@vartroc:matrix.org

Soooo,
I have decided to just try it.
After debugging some syntax issues, I have encountered this bug:

error:
       … while evaluating the attribute 'diskoScript'

         at /nix/store/3mlzsgflq3z4wsk2arffhd999h1hj17g-disko/share/disko/lib/default.nix:418:15:

          417|
          418|               diskoScript = (diskoLib.writeCheckedBash { inherit pkgs checked; }) "disko" ''
             |               ^
          419|                 export PATH=${lib.makeBinPath ((cfg.config._packages pkgs) ++ [ pkgs.bash ])}:$PATH

       … in the condition of the assert statement

         at /nix/store/y11h0vfmjaf8j1796x0n2454hqldnbbr-0vyi8f8l8cya10dmgfrj0df2iqxlhiyi-source/pkgs/build-support/writers/scripts.nix:32:5:

           31|     assert (types.path.check nameOrPath) || (builtins.match "([0-9A-Za-z._])[0-9A-Za-z._-]*" nameOrPath != null);
           32|     assert (types.path.check content) || (types.str.check content);
             |     ^
           33|     let

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

       error: The option `disko.devices.disk.lvm_vg.root_vg' does not exist. Definition values:
       - In `<unknown-file>':
           {
             lvs = {
               games = {
                 content = {
                   extraArgs = [
           ...

Does anybody have any idea how I can fix this?

Here's my disko.nix:

{
disko.devices = {
	disk = {
		disk0 = {
			type = "disk";
			device = "/dev/nvme1n1";
			content = {
				type = "gpt";
				partitions = {
					esp = {
						name = "ESP";
						size = "500M";
						type = "EF00";
						content = {
							type = "filesystem";
							format = "vfat";
							mountpoint = "/boot";
						};
					};

					root = {
						name = "root0";
						size = "100%";
						content = {
							type = "lvm_pv";
							vg = "root_vg";
						};
					};
				};
			};
		};
		disk1 = {
			type = "disk";
			device = "/dev/nvme0n1";
			content = {
				type = "gpt";
				partitions = {
					root = {
						name = "root1";
						size = "100%";
						content = {
							type = "lvm_pv";
							vg = "root_vg";
						};
					};
				};
			};
		};

		lvm_vg = {
			root_vg = {
				type = "lvm_vg";
				lvs = {
					root = {
						size = "25%FREE";
						content = {
							type = "btrfs";
							extraArgs = ["-f"];
							subvolumes = {
								"/root" = {
							 	 mountpoint = "/";
								};

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

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

					games = {
						size = "100%FREE";
						content = {
							type = "btrfs";
							extraArgs = ["-f"];
							subvolumes = {
								"/games" = {
								mountOptions = ["subvol=games" "noatime"];
								mountpoint = "/games";
								};
							};
						};
					};
				};
			};
		};
	};
};
}
15:33:36
@vartroc:matrix.org@vartroc:matrix.orgI couldn't find anything remotely connected with this bug15:34:34
@vartroc:matrix.org@vartroc:matrix.orgIf you need anything else from me, please ask18:58:57

Show newer messages


Back to Room ListRoom Version: 10