diff --git a/configure.ac b/configure.ac
index deaf110..f768d45 100755
--- a/configure.ac
+++ b/configure.ac
@@ -87,10 +87,6 @@
     [The common file path interface])
 AC_DEFINE(OS_RELEASE_FILE, "/etc/os-release",
     [The name of the BMC table of contents file])
-AC_DEFINE(MEDIA_DIR, "/media/",
-    [The base dir where all RO partitions are mounted])
-AC_DEFINE(BMC_ROFS_PREFIX, "/media/rofs-",
-    [The prefix path for the versioned read-only bmc partitions])
 AC_DEFINE(ALT_RWFS, "/media/alt/var/persist",
     [The path of the alt rwfs overlay])
 AC_DEFINE(PERSIST_DIR, "/var/lib/obmc/phosphor-bmc-code-mgmt/",
@@ -102,6 +98,13 @@
 AC_DEFINE(SYSTEMD_INTERFACE, "org.freedesktop.systemd1.Manager",
     [The systemd interface])
 
+AC_ARG_VAR(MEDIA_DIR, [The base dir where all RO partitions are mounted])
+AS_IF([test "x$MEDIA_DIR" == "x"], [MEDIA_DIR="/media"])
+AC_DEFINE_UNQUOTED([MEDIA_DIR], ["$MEDIA_DIR"], [The base dir where all RO partitions are mounted])
+
+AC_DEFINE_UNQUOTED(BMC_ROFS_PREFIX, "$MEDIA_DIR/rofs-",
+    [The prefix path for the versioned read-only bmc partitions])
+
 AC_ARG_VAR(IMG_UPLOAD_DIR, [Directory where downloaded software images are placed])
 AS_IF([test "x$IMG_UPLOAD_DIR" == "x"], [IMG_UPLOAD_DIR="/tmp/images"])
 AC_DEFINE_UNQUOTED([IMG_UPLOAD_DIR], ["$IMG_UPLOAD_DIR"], [Directory where downloaded software images are placed])
diff --git a/item_updater.cpp b/item_updater.cpp
index e2d0f94..014757d 100644
--- a/item_updater.cpp
+++ b/item_updater.cpp
@@ -134,6 +134,21 @@
 void ItemUpdater::processBMCImage()
 {
     using VersionClass = phosphor::software::manager::Version;
+
+    // Check MEDIA_DIR and create if it does not exist
+    try
+    {
+        if (!fs::is_directory(MEDIA_DIR))
+        {
+            fs::create_directory(MEDIA_DIR);
+        }
+    }
+    catch (const fs::filesystem_error& e)
+    {
+        log<level::ERR>("Failed to prepare dir", entry("ERR=%s", e.what()));
+        return;
+    }
+
     // Read os-release from /etc/ to get the functional BMC version
     auto functionalVersion = VersionClass::getBMCVersion(OS_RELEASE_FILE);
 
@@ -172,7 +187,8 @@
             auto purpose = server::Version::VersionPurpose::BMC;
             auto path = fs::path(SOFTWARE_OBJPATH) / id;
 
-            // Create functional association if this is the functional version
+            // Create functional association if this is the functional
+            // version
             if (version.compare(functionalVersion) == 0)
             {
                 createFunctionalAssociation(path);
@@ -209,7 +225,8 @@
                 id, std::make_unique<Activation>(
                         bus, path, *this, id, activationState, associations)));
 
-            // If Active, create RedundancyPriority instance for this version.
+            // If Active, create RedundancyPriority instance for this
+            // version.
             if (activationState == server::Activation::Activations::Active)
             {
                 uint8_t priority = std::numeric_limits<uint8_t>::max();
