diff --git a/recipes/initfs/init.rc b/recipes/initfs/init.rc
new file mode 100644
index 0000000000000000000000000000000000000000..bfbcad7a612088a452e841702d983d66e0b54fd0
--- /dev/null
+++ b/recipes/initfs/init.rc
@@ -0,0 +1,16 @@
+export PATH /bin
+export TMPDIR /tmp
+nulld
+zerod
+randd
+vesad T T G
+logd debug: display:1
+stdio log:
+ps2d us
+ramfs logging
+acpid
+pcid /etc/pcid/initfs.toml
+redoxfs --uuid $REDOXFS_UUID file $REDOXFS_BLOCK
+cd file:
+export PATH file:/bin
+run.d /etc/init.d
diff --git a/recipes/initfs/recipe.toml b/recipes/initfs/recipe.toml
new file mode 100644
index 0000000000000000000000000000000000000000..a5b602a9c6d892e24d7f50c60837ef3f60c83ed2
--- /dev/null
+++ b/recipes/initfs/recipe.toml
@@ -0,0 +1,33 @@
+[source]
+git = "https://gitlab.redox-os.org/redox-os/redox-initfs.git"
+
+[build]
+template = "custom"
+dependencies = [
+  "drivers-initfs",
+  "init",
+  "logd",
+  "nulld",
+  "ramfs",
+  "randd",
+  "redoxfs",
+  "zerod",
+]
+script = """
+INITFS_RM_BINS='redoxfs-ar redoxfs-mkfs'
+
+mkdir -p $COOKBOOK_BUILD/initfs/etc
+
+cp -r $COOKBOOK_SYSROOT/* $COOKBOOK_BUILD/initfs
+
+# TODO: Move init.rc to another recipe, perhaps initfs-misc? Then it can be installed as a regular dependency.
+cp $COOKBOOK_RECIPE/init.rc $COOKBOOK_BUILD/initfs/etc/init.rc
+
+for bin in $INITFS_RM_BINS; do
+  rm -f $COOKBOOK_BUILD/initfs/bin/$bin
+done
+
+env -u CARGO cargo run --manifest-path $COOKBOOK_SOURCE/tools/Cargo.toml --bin redox-initfs-ar -- $COOKBOOK_BUILD/initfs -o $COOKBOOK_BUILD/initfs.img
+
+cp $COOKBOOK_BUILD/initfs.img $COOKBOOK_STAGE/initfs
+"""