#include "libdevmapper.h"
 #include "devmapper.h"
+#include "platform.h"
 
 #define MERGE_INTERVAL_US      200000
 
 {
        struct ramdisk_device *ramdisk;
 
+       if (config_get()->disable_snapshots)
+               return 0;
+
        ramdisk = device_handler_get_ramdisk(handler);
        if (!ramdisk) {
                pb_log("No ramdisk available for snapshot %s\n",
 
        "petitboot,language",
        "petitboot,debug?",
        "petitboot,write?",
+       "petitboot,snapshots?",
        NULL,
 };
 
        val = get_param(platform, "petitboot,write?");
        if (val)
                config->allow_writes = !strcmp(val, "true");
+
+       val = get_param(platform, "petitboot,snapshots?");
+       if (val)
+               config->disable_snapshots = !strcmp(val, "false");
 }
 
 static char *iface_config_str(void *ctx, struct interface_config *config)
 
        if (config->safe_mode)
                pb_log(" safe mode: active\n");
 
+       if (config->disable_snapshots)
+               pb_log(" dm-snapshots disabled\n");
+
        for (i = 0; i < config->network.n_interfaces; i++) {
                struct interface_config *ifconf =
                        config->network.interfaces[i];
        config->safe_mode = false;
        config->lang = NULL;
        config->allow_writes = true;
+       config->disable_snapshots = false;
 
        config->n_autoboot_opts = 2;
        config->autoboot_opts = talloc_array(config, struct autoboot_option,
 
        char                    *lang;
 
        /* not user-settable */
+       bool                    disable_snapshots;
        bool                    safe_mode;
        bool                    debug;
 };
 
                        config->safe_mode ? "enabled" : "disabled");
        print_one_config(ctx, var, "debug", "%s",
                        config->debug ? "enabled" : "disabled");
+       print_one_config(ctx, var, "dm-snapshots", "%s",
+                       config->disable_snapshots ? "disabled" : "enabled");
 }
 
 int main(int argc, char **argv)