{
  pkgs,
  stdenvNoCC,
  patosPkgs,
  version,
  ...
}:
let
  pname = "patos-image";
in
stdenvNoCC.mkDerivation (finalAttrs: {
  inherit version;
  inherit pname;

  buildInputs = with pkgs; [
    erofs-utils
    dosfstools
    mtools
    e2fsprogs
  ];

  env = {
    # vfat options won't efi won't find the fs otherwise.
    SYSTEMD_REPART_MKFS_OPTIONS_VFAT = "-S 512 -c";
  };

  systemd = patosPkgs.systemd.out;
  kernel = patosPkgs.kernel.kernel;
  initrd = patosPkgs.initrd.out;
  rootfs = patosPkgs.rootfs.out;

  #FIXME: use roothash instead of device.
  kernelCmdLine = "root=/dev/sda2 console=ttyS0";

  builder = ./mkimage.sh;
})