Adding source for rootdev utility.
diff --git a/files/rootdev.c b/files/rootdev.c
new file mode 100644
index 0000000..053745d
--- /dev/null
+++ b/files/rootdev.c
@@ -0,0 +1,69 @@
+/* Taken from util-linux source. GPLv2.
+ * Emits the current rootfs device.
+ * Works by searching /dev recursively for a BLK device with the same device
+ * number as '/'.
+ */
+
+#include <stdio.h>
+#include <err.h>
+#include <sys/types.h>
+#include <dirent.h>
+#include <sys/stat.h>
+#include <string.h>
+
+
+static int
+find_dev_recursive(char *dirnamebuf, int number) {
+        DIR *dp;
+        struct dirent *dir;
+        struct stat s;
+        int dirnamelen = 0;
+
+        if ((dp = opendir(dirnamebuf)) == NULL)
+                err(1, "can't read directory %s", dirnamebuf);
+        dirnamelen = strlen(dirnamebuf);
+        while ((dir = readdir(dp)) != NULL) {
+                if (!strcmp(dir->d_name, ".") || !strcmp(dir->d_name, ".."))
+                        continue;
+                if (dirnamelen + 1 + strlen(dir->d_name) > PATH_MAX)
+                        continue;
+                dirnamebuf[dirnamelen] = '/';
+                strcpy(dirnamebuf+dirnamelen+1, dir->d_name);
+                if (lstat(dirnamebuf, &s) < 0)
+                        continue;
+                if ((s.st_mode & S_IFMT) == S_IFBLK && s.st_rdev == number)
+                        return 1;
+                if ((s.st_mode & S_IFMT) == S_IFDIR &&
+                    find_dev_recursive(dirnamebuf, number))
+                        return 1;
+        }
+        dirnamebuf[dirnamelen] = 0;
+        closedir(dp);
+        return 0;
+}
+
+int main(int argc, char *argv[]) {
+        struct stat s;
+        char *file = "/";
+        static char name[PATH_MAX+1];
+        
+        if (argc > 1)
+                file = argv[1];
+
+        if (stat(file, &s) < 0)
+                err(1, "unable to stat %s", file);
+            
+        if (!s.st_dev)
+                err(1, "unknown device number 0");
+
+        strcpy(name, "/dev");
+
+        if (!find_dev_recursive(name, s.st_dev)) {
+                fprintf(stderr, "unable to find match\n");
+                return 1;
+        }
+
+        printf("%s\n", name);
+    
+        return 0;
+}