diff --git a/cryptohome/mock_platform.h b/cryptohome/mock_platform.h
index f374988..ed134b8 100644
--- a/cryptohome/mock_platform.h
+++ b/cryptohome/mock_platform.h
@@ -374,6 +374,10 @@
                uint64_t),
               (override));
   MOCK_METHOD(bool,
+              Tune2Fs,
+              (const base::FilePath&, const std::vector<std::string>&),
+              (override));
+  MOCK_METHOD(bool,
               ResizeFilesystem,
               (const base::FilePath&, uint64_t),
               (override));
diff --git a/cryptohome/platform.cc b/cryptohome/platform.cc
index 9299842..a8c78b7 100644
--- a/cryptohome/platform.cc
+++ b/cryptohome/platform.cc
@@ -1365,14 +1365,19 @@
     return false;
   }
 
+  // Tune the formatted filesystem:
+  // -c 0: Disable max mount count checking.
+  // -i 0: Disable filesystem checking.
+  return Tune2Fs(file, {"-c", "0", "-i", "0"});
+}
+
+bool Platform::Tune2Fs(const base::FilePath& file,
+                       const std::vector<std::string>& opts) {
   brillo::ProcessImpl tune_process;
   tune_process.AddArg("/sbin/tune2fs");
-  // Disable max mount count checking.
-  tune_process.AddArg("-c");
-  tune_process.AddArg("0");
-  // Disable filesystem checking.
-  tune_process.AddArg("-i");
-  tune_process.AddArg("0");
+  for (const auto& arg : opts)
+    tune_process.AddArg(arg);
+
   tune_process.AddArg(file.value());
 
   // Close unused file descriptors in child process.
@@ -1381,7 +1386,7 @@
   // Avoid polluting the parent process' stdout.
   tune_process.RedirectOutput("/dev/null");
 
-  rc = tune_process.Run();
+  int rc = tune_process.Run();
   if (rc != 0) {
     LOG(ERROR) << "Can't tune ext4: " << file.value() << ", error: " << rc;
     return false;
diff --git a/cryptohome/platform.h b/cryptohome/platform.h
index 5b54cd2..787891a 100644
--- a/cryptohome/platform.h
+++ b/cryptohome/platform.h
@@ -872,6 +872,15 @@
                           const std::vector<std::string>& opts,
                           uint64_t blocks);
 
+  // Tunes ext4 filesystem, adding features if needed.
+  // Returns true if formatting succeeded.
+  //
+  // Paratemers
+  //   file - Path to the file or device to be formatted.
+  //   opts - format opts.
+  virtual bool Tune2Fs(const base::FilePath& file,
+                       const std::vector<std::string>& opts);
+
   // Resizes the file to blocks.
   // Returns true if resize succeeded.
   //
