# Cannot import ZFS pool at boot

**URL:** https://discourse.nixos.org/t/cannot-import-zfs-pool-at-boot/4805
**Category:** Help
**Created:** [November 15, 2019, 12:10pm UTC](https://discourse.nixos.org/t/cannot-import-zfs-pool-at-boot/4805 "2019-11-15T12:10:10Z")
**Posts on this page:** 1
**Showing post:** 3

<div class="post-metadata">

### Author: ![koolean](https://discourse.nixos.org/letter_avatar_proxy/v4/letter/k/ccd318/32.png) [@koolean](https://discourse.nixos.org/u/koolean)
#### Post date: [November 15, 2019, 1:29pm UTC](https://discourse.nixos.org/t/cannot-import-zfs-pool-at-boot/4805/3 "2019-11-15T13:29:55Z")

</div>

I followed precisely the [How to install NixOS on a ZFS root filesystem](https://nixos.wiki/wiki/NixOS_on_ZFS#Single-disk) guide.

I ran the following commands:

```auto
zfs create -o mountpoint=legacy rpool/root/nixos
zfs create -o mountpoint=legacy rpool/home

```

and added `boot.supportedFilesystems = ["zfs"];` to `configuration.nix`.

The only thing I did not follow in the guide was referring to the disk with `/dev/disk/by-id/…`. Instead I referred directly to `/dev/sda` because the only file in `/dev/disk/by-id/` was `ata-VMware_Virtual_IDE_CDROM_Drive_10000000000000000001` which is the virtual CD containing the NixOS ISO used to make the install.

Here is my full `hardware-configuration.nix`:

```auto
# Do not modify this file! It was generated by ‘nixos-generate-config’
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, ... }:

{
  imports = [];

  boot.initrd.availableKernelModules = ["ata_piix" "mptspi" "uhci_hcd" "ehci_pci" "xhci_pci" "sd_mod" "sr_mod"];
  boot.initrd.kernelModules = [];
  boot.kernelModules = [];
  boot.extraModulePackages = [];

  fileSystems."/" =
    { device = "rpool/root/nixos";
      fsType = "zfs";
    };

  fileSystems."/home" =
    { device = "rpool/home";
      fsType = "zfs";
    };

  fileSystems."/boot" =
    { device = "/dev/disk/by-uuid/2C1A-9868";
      fsType = "vfat";
    };

  swapDevices = [];

  nix.maxJobs = lib.mkDefault 6;
}

```

and my `configuration.nix`:

```auto
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).

{ config, pkgs, ... }:

{
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
    ];

  boot.supportedFilesystems = ["zfs"];

  # Use the systemd-boot EFI boot loader.
  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;

  networking.hostId = "8453be09";
  # networking.hostName = "nixos"; # Define your hostname.
  # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.

  # The global useDHCP flag is deprecated, therefore explicitly set to false here.
  # Per-interface useDHCP will be mandatory in the future, so this generated config
  # replicates the default behaviour.
  networking.useDHCP = false;
  networking.interfaces.ens33.useDHCP = true;

  # 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 = {
  # consoleFont = "Lat2-Terminus16";
  # consoleKeyMap = "us";
  # defaultLocale = "en_US.UTF-8";
  # };

  # Set your time zone.
  # time.timeZone = "Europe/Amsterdam";

  # List packages installed in system profile. To search, run:
  # $ nix search wget
  # environment.systemPackages = with pkgs; [
  # wget vim
  # ];

  # 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;

  # Enable CUPS to print documents.
  # services.printing.enable = true;

  # Enable sound.
  # sound.enable = true;
  # hardware.pulseaudio.enable = true;

  # Enable the X11 windowing system.
  # services.xserver.enable = true;
  # services.xserver.layout = "us";
  # services.xserver.xkbOptions = "eurosign:e";

  # Enable touchpad support.
  # services.xserver.libinput.enable = true;

  # Enable the KDE Desktop Environment.
  # services.xserver.displayManager.sddm.enable = true;
  # services.xserver.desktopManager.plasma5.enable = true;

  # Define a user account. Don't forget to set a password with ‘passwd’.
  # users.users.jane = {
  # isNormalUser = true;
  # extraGroups = ["wheel"]; # Enable ‘sudo’ for the user.
  # };

  # This value determines the NixOS release with which your system is to be
  # compatible, in order to avoid breaking some software such as database
  # servers. You should change this only after NixOS release notes say you
  # should.
  system.stateVersion = "19.09"; # Did you read the comment?

}

```

---

_[View the full topic](https://discourse.nixos.org/t/cannot-import-zfs-pool-at-boot/4805)._
