diff --git a/fs/vfs/main.cc b/fs/vfs/main.cc
index e6f1873608f354ed4f622034ce7e33ebbd8055c0..2499f387fe510e26444aeb9f1a7687e75a4cd60b 100644
--- a/fs/vfs/main.cc
+++ b/fs/vfs/main.cc
@@ -1592,6 +1592,12 @@ extern "C" void unmount_rootfs(void)
 
     sys_umount("/dev");
 
+    ret = sys_umount("/proc");
+    if (ret) {
+        kprintf("Warning: unmount_rootfs: failed to unmount /proc, "
+            "error = %s\n", strerror(ret));
+    }
+
     ret = sys_umount2("/", MNT_FORCE);
     if (ret) {
         kprintf("Warning: unmount_rootfs: failed to unmount /, "