diff --git a/.gitignore b/.gitignore
index 08acf41..6833589 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,8 @@
 .task
 /result
 /target
+/out
+/initrd.gz
 .*.swp
 .*.swo
 .nixos-test-history
diff --git a/flake.nix b/flake.nix
index fcb6233..b8d7461 100644
--- a/flake.nix
+++ b/flake.nix
@@ -32,6 +32,8 @@
 
           kernel = pkgs.callPackage ./kernel { };
           glibc = pkgs.callPackage ./glibc { };
+          systemd = pkgs.callPackage ./systemd { };
+
           mkinitrd = pkgs.writeShellScriptBin "mkinitrd" ''
             echo "make initrd..."
             mkdir -p out
@@ -113,7 +115,7 @@
             chmod 644 ./etc/group
 
             # get shared libs
-            find . -type f -executable | xargs ldd | awk '{print $3}' | grep -v systemd | sort -u | xargs cp -t usr/lib
+            find . -type f -executable | xargs ldd 2> /dev/null | awk '{print $3}' | grep -v systemd | sort -u | xargs cp -t usr/lib
             find . -type f -executable | xargs chmod 755
 
             # FIXME: hacky patch elf patching. Is there a better way????????
@@ -125,7 +127,6 @@
             # gen initrd
             find . -print0 | ${pkgs.lib.getExe pkgs.cpio} --null --owner=root:root -o --format=newc | ${pkgs.lib.getExe pkgs.gzip} -9 > ../initrd.gz
           '';
-          systemd = pkgs.callPackage ./systemd { };
         };
 
         checks = {