diff -Naur toybox-0.4.0.orig/toys/mount.c toybox-0.4.0/toys/mount.c
--- toybox-0.4.0.orig/toys/mount.c	1970-01-01 05:30:00.000000000 +0530
+++ toybox-0.4.0/toys/mount.c	2012-10-31 01:04:10.945065856 +0530
@@ -0,0 +1,112 @@
+/* vi: set sw=4 ts=4:
+ *
+ * mount.c - mount implementation for toybox
+ *
+ * Copyright 2012 Gaurang Shastri <gmshastri@gmail.com>
+ *
+ * Not in SUSv4.
+
+USE_MOUNT(NEWTOY(mount, "a", TOYFLAG_USR|TOYFLAG_BIN))
+
+config MOUNT
+	bool "mount"
+	default y
+	help
+	  usage: mount [-a]
+	  Mount a file system
+
+	  What to show:
+	  -a	Try to mount all the filesystem from /etc/fstab
+*/
+
+#include "toys.h"
+#ifndef _PATH_MNTTAB
+#define _PATH_MNTTAB   "/etc/fstab"
+#endif
+
+#define TT this.mount
+
+#define FLAG_a	(1 << 0)
+static int hasopt(const char *, const char *);
+
+int hasopt(const char *mntopts, const char *option)
+{
+	int negative, found;
+	char *opt, *optbuf;
+
+	if (option[0] == 'n' && option[1] == 'o') {
+		negative = 1;
+		option += 2;
+	} else
+		negative = 0;
+		optbuf = strdup(mntopts);
+		found = 0;
+		for (opt = optbuf; (opt = strtok(opt, ",")) != NULL; opt = NULL) {
+			if (opt[0] == 'n' && opt[1] == 'o') {
+				if (!strcasecmp(opt + 2, option))
+					found = negative;
+				} else if (!strcasecmp(opt, option))
+					found = !negative;
+		}
+	free(optbuf);
+	return (found);
+}
+
+
+static int mount_it(const char *source,const char *target,const char *fstype,
+					unsigned long mountflags, const void *data)
+{
+	int rval;
+	rval = mount(source, target, fstype, mountflags, data);
+	if (rval < 0)
+		perror_msg("Mounting %s on %s failed",source,target);
+	return rval;
+}
+
+void mount_main(void)
+{
+    FILE *fp = NULL;
+	uid_t myuid;
+    struct stat buffer;
+   	struct mntent *mt = NULL;
+
+
+	//Only root user can do mount -a    
+	myuid = getuid();
+	if((myuid != 0) && (toys.optflags & (FLAG_a)))
+		error_exit("You need to be root to do these actions\n");
+
+	//If none of the flags passed
+	if(!(toys.optflags & (FLAG_a))) {
+    	char *filename="/etc/mtab";
+    	int status = lstat(filename, &buffer);
+    	if (status != 0) {
+			perror_msg("WARNING:%s not found. Now mount will read entry from /proc/mounts",filename);
+			filename="/proc/mounts";
+		}
+    	if (( fp = setmntent (filename, "r") ) != NULL) {
+			while (( mt = getmntent(fp)) != NULL) {
+	    		printf("%s is mounted on %s type %s (%s) ",mt->mnt_fsname,mt->mnt_dir,mt->mnt_type,mt->mnt_opts);
+            	printf("\n");
+			}
+		}    
+    	endmntent(fp);	 
+	}
+	if(toys.optflags & FLAG_a) {
+		fp = setmntent(_PATH_MNTTAB, "r");
+		if (!fp)
+			perror_exit("cannot read %s",_PATH_MNTTAB);
+		while ((mt = getmntent(fp)) != NULL) {
+			if (hasopt(mt->mnt_opts, "noauto")) 
+				continue;
+			if (strcmp(mt->mnt_dir, "swap") == 0) {
+				continue;
+			}
+			if(strcmp(mt->mnt_dir, "/") == 0) {
+				continue;
+			}
+			mount_it(mt->mnt_fsname,mt->mnt_dir,mt->mnt_type,0,0); 
+		}
+		endmntent(fp);
+	}
+}
diff -Naur toybox-0.4.0.orig/toys.h toybox-0.4.0/toys.h
--- toybox-0.4.0.orig/toys.h	2012-10-31 00:54:23.581082467 +0530
+++ toybox-0.4.0/toys.h	2012-10-31 01:04:05.165065323 +0530
@@ -46,6 +46,7 @@
 #include <unistd.h>
 #include <utime.h>
 #include <utmpx.h>
+#include <mntent.h>
 
 #include "lib/lib.h"
 #include "toys/e2fs.h"
