| 1 Jun 2025 |
musicmatze | Hi!
Does disko create systemd mount units for ZFS datasets that I do not automount?
And, even moreso: does the nixos/nixpkgs module system create attributes for these mount points?
Usecase: I want to make sure a service of mine only starts after I mounted the ZFS dataset (which is encrypted and I am mounting it by hand if necessary). | 16:48:32 |
musicmatze | The idea is to systemd.services.SomeService.after = [ "<zfs-dataset-name>.mount" ]; in my config, but I don't want to hard-code the <zfs-dataset-name> part and, if possible, use something like config.systemd.someMountAttribute.UnitName if there is something like this | 16:50:10 |
musicmatze | (because I don't know what actual name is generated) | 16:50:24 |
musicmatze | * (because I don't know what actual name is generated, and it doesn't matter really, does it) | 16:50:32 |
[0x4A6F] | systemd-fstab-generator create .mount units, that you could utilize. Not sure, if noauto inhibit creation of these units. | 17:45:24 |
| rocky ((λ💝.💝)💐) (she/they; ask before DM please) joined the room. | 23:33:12 |
rocky ((λ💝.💝)💐) (she/they; ask before DM please) | Hello! I’m Rocky, I was in here before but I lost access to my account | 23:33:35 |
rocky ((λ💝.💝)💐) (she/they; ask before DM please) | I have this Brtfs on LUKS setup for an older desktop that doesn’t support UEFI. I’m configuring Grub to only support LUKS 1 because Grub on MBR apparently only supports LUKS 1. Right now the machine boots into a perpetual blinking underscore.
https://github.com/nix-community/disko/issues/1038 for information about LUKS on MBR
I’m pasting my disko configuration and Nix OS configuration. I might try to see if a new hardware configuration would help. | 23:44:14 |
rocky ((λ💝.💝)💐) (she/they; ask before DM please) | ```nix
{
disko.devices = {
disk = {
main = {
type = "disk";
device = "/dev/sda";
content = {
type = "gpt";
partitions = {
MBR = {
size = "1M";
type = "EF02"; # for grub MBR, no UEFI on this system.
};
luks = {
# Partial NixOS for my side.
size = "300G";
content = {
type = "luks";
name = "crypted";
# disable settings.keyFile if you want to use interactive password entry
#passwordFile = "/tmp/secret.key"; # Interactive
settings = {
allowDiscards = true;
extraFormatArgs = [ "--type luks1" ];
# keyFile = "/tmp/secret.key";
};
# additionalKeyFiles = [ "/tmp/additionalSecret.key" ];
content = {
type = "btrfs";
extraArgs = [ "-f" ];
subvolumes = {
"/root" = {
mountpoint = "/";
mountOptions = [
"compress=zstd"
"noatime"
];
};
"/home" = {
mountpoint = "/home";
mountOptions = [
"compress=zstd"
"noatime"
];
};
"/nix" = {
mountpoint = "/nix";
mountOptions = [
"compress=zstd"
"noatime"
];
};
};
};
};
};
encryptedSwap = {
size = "16G";
content = {
type = "swap";
randomEncryption = true;
priority = 100;
};
};
};
};
};
};
};
}
``` | 23:44:15 |
rocky ((λ💝.💝)💐) (she/they; ask before DM please) | {
disko.devices = {
disk = {
main = {
type = "disk";
device = "/dev/sda";
content = {
type = "gpt";
partitions = {
MBR = {
size = "1M";
type = "EF02"; # for grub MBR, no UEFI on this system.
};
luks = {
# Partial NixOS for my side.
size = "300G";
content = {
type = "luks";
name = "crypted";
# disable settings.keyFile if you want to use interactive password entry
#passwordFile = "/tmp/secret.key"; # Interactive
settings = {
allowDiscards = true;
extraFormatArgs = [ "--type luks1" ];
# keyFile = "/tmp/secret.key";
};
# additionalKeyFiles = [ "/tmp/additionalSecret.key" ];
content = {
type = "btrfs";
extraArgs = [ "-f" ];
subvolumes = {
"/root" = {
mountpoint = "/";
mountOptions = [
"compress=zstd"
"noatime"
];
};
"/home" = {
mountpoint = "/home";
mountOptions = [
"compress=zstd"
"noatime"
];
};
"/nix" = {
mountpoint = "/nix";
mountOptions = [
"compress=zstd"
"noatime"
];
};
};
};
};
};
encryptedSwap = {
size = "16G";
content = {
type = "swap";
randomEncryption = true;
priority = 100;
};
};
};
};
};
};
};
}
| 23:44:27 |
rocky ((λ💝.💝)💐) (she/they; ask before DM please) | # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
"${builtins.fetchTarball "https://github.com/nix-community/disko/archive/master.tar.gz"}/module.nix"
./disk-config.nix
];
# Use the GRUB 2 boot loader.
boot.loader.grub.enable = true;
boot.loader.grub.efiSupport = false;
# boot.loader.grub.efiInstallAsRemovable = true;
# boot.loader.efi.efiSysMountPoint = "/boot/efi";
# Define on which hard drive you want to install Grub.
# boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only
boot.loader.grub.enableCryptodisk = true;
boot.initrd.luks.devices.cryptroot.device = "/dev/sda";
# networking.hostName = "nixos"; # Define your hostname.
# Pick only one of the below networking options.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
# Set your time zone.
# time.timeZone = "Europe/Amsterdam";
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Select internationalisation properties.
# i18n.defaultLocale = "en_US.UTF-8";
# console = {
# font = "Lat2-Terminus16";
# keyMap = "us";
# useXkbConfig = true; # use xkb.options in tty.
# };
# Enable the X11 windowing system.
# services.xserver.enable = true;
# Configure keymap in X11
# services.xserver.xkb.layout = "us";
# services.xserver.xkb.options = "eurosign:e,caps:escape";
# Enable CUPS to print documents.
# services.printing.enable = true;
# Enable sound.
# services.pulseaudio.enable = true;
# OR
# services.pipewire = {
# enable = true;
# pulse.enable = true;
# };
# Enable touchpad support (enabled default in most desktopManager).
# services.libinput.enable = true;
# Define a user account. Don't forget to set a password with ‘passwd’.
# users.users.alice = {
# isNormalUser = true;
# extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
# packages = with pkgs; [
# tree
# ];
# };
# programs.firefox.enable = true;
# List packages installed in system profile.
# You can use https://search.nixos.org/ to find more packages (and options).
# environment.systemPackages = with pkgs; [
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
# wget
# ];
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# Copy the NixOS configuration file and link it from the resulting system
# (/run/current-system/configuration.nix). This is useful in case you
# accidentally delete configuration.nix.
# system.copySystemConfiguration = true;
# This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
#
# Most users should NEVER change this value after the initial install, for any reason,
# even if you've upgraded your system to a new NixOS release.
#
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
# to actually do that.
#
# This value being lower than the current NixOS release does NOT mean your system is
# out of date, out of support, or vulnerable.
#
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
# and migrated your data accordingly.
#
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "25.05"; # Did you read the comment?
}
| 23:44:59 |
| 2 Jun 2025 |
| food style edible product changed their display name from SSBSD to Take the I-Whatever to Desolation. | 01:48:05 |
rocky ((λ💝.💝)💐) (she/they; ask before DM please) | Okay, now I can confirm that the hardware configuration wasn't a factor | 05:18:00 |
| @deeok:matrix.org joined the room. | 18:34:24 |
| 3 Jun 2025 |
rocky ((λ💝.💝)💐) (she/they; ask before DM please) | Okay, right now I’ve gotten it to error on the build with:
"Unable to read fragment cache entry"
"Unable to read page"
"unknown filesystem type 'btrfs'" | 08:55:32 |
rocky ((λ💝.💝)💐) (she/they; ask before DM please) | Attaching the files currently | 08:55:38 |
rocky ((λ💝.💝)💐) (she/they; ask before DM please) | Download configuration.nix | 08:58:22 |
rocky ((λ💝.💝)💐) (she/they; ask before DM please) | Download disk-config.nix | 08:58:23 |
| Sylkos changed their display name from sylk0s to Sylkos. | 16:10:19 |
| Sylkos set a profile picture. | 16:15:03 |
| 4 Jun 2025 |
| robsliwi changed their display name from Robert Sliwinski to robsliwi. | 18:30:13 |
| 5 Jun 2025 |
| shelvacu joined the room. | 21:48:38 |
shelvacu | https://github.com/nix-community/disko/blob/d74db625a5cf3f46cf8fa545d6ef10bd3463ea07/lib/types/gpt.nix#L259
if ! blkid "${config.device}" >&2; then
sgdisk --clear "${config.device}"
fi
I can't tell if I found a bug or if I'm just not understanding this; blkid exits with code 2 when run on a blank (all 00) block device, in which case it... clears the gpt label? that isn't there? | 21:55:56 |
shelvacu | In reply to @pink_rocky:tchncs.de Okay, right now I’ve gotten it to error on the build with: "Unable to read fragment cache entry" "Unable to read page" "unknown filesystem type 'btrfs'" what exactly are you building? Do you mean nixos-rebuild build? Could send the full output in a pastebin or smth? | 22:03:21 |
shelvacu | In reply to @pink_rocky:tchncs.de configuration.nix Separately, I highly recommend switching to a flake-based config in a git repo. That would make it possible to link to a specific commit and then everyone else can run the exact same build. | 22:05:09 |
shelvacu | Also I strongly recommend not using /dev/sdb as the device; the ordering can change between boots and when you add/remove thumb drives. Instead look for your drive in /dev/disk/by-id/ | 22:06:24 |
shelvacu | also I can't build your config because it's missing hardware-configuration.nix | 22:09:11 |
| 6 Jun 2025 |
| @creepinson:matrix.org left the room. | 00:18:44 |
| francesco joined the room. | 07:06:03 |
rocky ((λ💝.💝)💐) (she/they; ask before DM please) | @shelvacu Thank you for the help! I will give you that info later | 07:35:28 |