diff --git a/lib/mcpu.py b/lib/mcpu.py
index 26512bc88c3d842e21b747012b1b78536fbc101a..4ba5926b9a4c2848c57a5eba42e11313af58f5fe 100644
--- a/lib/mcpu.py
+++ b/lib/mcpu.py
@@ -51,6 +51,7 @@ class Processor(object):
     opcodes.OpMasterFailover: cmdlib.LUMasterFailover,
     opcodes.OpDumpClusterConfig: cmdlib.LUDumpClusterConfig,
     opcodes.OpRenameCluster: cmdlib.LURenameCluster,
+    opcodes.OpVerifyDisks: cmdlib.LUVerifyDisks,
     # node lu
     opcodes.OpAddNode: cmdlib.LUAddNode,
     opcodes.OpQueryNodes: cmdlib.LUQueryNodes,
diff --git a/scripts/gnt-cluster b/scripts/gnt-cluster
index d96f58c694dde6391a2bbe73d797391631e71ab1..424b239d77fc64920db8c994999c4318daf49b48 100755
--- a/scripts/gnt-cluster
+++ b/scripts/gnt-cluster
@@ -26,6 +26,7 @@ import pprint
 from ganeti.cli import *
 from ganeti import opcodes
 from ganeti import constants
+from ganeti import errors
 
 
 def InitCluster(opts, args):
@@ -181,6 +182,39 @@ def VerifyCluster(opts, args):
   return result
 
 
+def VerifyDisks(opts, args):
+  """Verify integrity of cluster disks.
+
+  Args:
+    opts - class with options as members
+
+  """
+  op = opcodes.OpVerifyDisks()
+  result = SubmitOpCode(op)
+  if not isinstance(result, tuple) or len(result) != 2:
+    raise errors.ProgrammerError("Unknown result type for OpVerifyDisks")
+
+  nodes, instances = result
+  if nodes:
+    print "Nodes unreachable or with bad data:"
+    for name in nodes:
+      print "\t%s" % name
+  retcode = constants.EXIT_SUCCESS
+  if instances:
+    for iname in instances:
+      op = opcodes.OpActivateInstanceDisks(instance_name=iname)
+      try:
+        print "Activating disks for instance '%s'" % iname
+        SubmitOpCode(op)
+      except errors.GenericError, err:
+        nret, msg = FormatError(err)
+        retcode |= nret
+        print >>sys.stderr, ("Error activating disks for instance %s: %s" %
+                             (iname, msg))
+
+  return retcode
+
+
 def MasterFailover(opts, args):
   """Failover the master node.
 
@@ -263,6 +297,8 @@ commands = {
                "Renames the cluster"),
   'verify': (VerifyCluster, ARGS_NONE, [DEBUG_OPT],
              "", "Does a check on the cluster configuration"),
+  'verify-disks': (VerifyDisks, ARGS_NONE, [DEBUG_OPT],
+                   "", "Does a check on the cluster disk status"),
   'masterfailover': (MasterFailover, ARGS_NONE, [DEBUG_OPT],
                      "", "Makes the current node the master"),
   'version': (ShowClusterVersion, ARGS_NONE, [DEBUG_OPT],