diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index b6d223378b27e029337f86d453b8aa107edff9ea..ec700a6980ab16a4da6e9c25a0ca9dd2117d0d4d 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -2052,7 +2052,8 @@ class LUQueryInstances(NoHooksLU):
     self.dynamic_fields = frozenset(["oper_state", "oper_ram"])
     _CheckOutputFields(static=["name", "os", "pnode", "snodes",
                                "admin_state", "admin_ram",
-                               "disk_template", "ip", "mac", "bridge"],
+                               "disk_template", "ip", "mac", "bridge",
+                               "sda_size", "sdb_size"],
                        dynamic=self.dynamic_fields,
                        selected=self.op.output_fields)
 
@@ -2126,6 +2127,12 @@ class LUQueryInstances(NoHooksLU):
           val = instance.nics[0].bridge
         elif field == "mac":
           val = instance.nics[0].mac
+        elif field == "sda_size" or field == "sdb_size":
+          disk = instance.FindDisk(field[:3])
+          if disk is None:
+            val = "N/A"
+          else:
+            val = disk.size
         else:
           raise errors.ParameterError(field)
         val = str(val)
diff --git a/lib/objects.py b/lib/objects.py
index 23167fc1056f76744c6e6f27ccb8745674239879..de33eb8eb69c9578e3e4639152f3faf03deaf31a 100644
--- a/lib/objects.py
+++ b/lib/objects.py
@@ -379,6 +379,18 @@ class Instance(ConfigObject, TaggableObject):
 
     return ret
 
+  def FindDisk(self, name):
+    """Find a disk given having a specified name.
+
+    This will return the disk which has the given iv_name.
+
+    """
+    for disk in self.disks:
+      if disk.iv_name == name:
+        return disk
+
+    return None
+
 
 class OS(ConfigObject):
   """Config object representing an operating system."""
diff --git a/scripts/gnt-instance b/scripts/gnt-instance
index 6c46b37ce1efd99367062f8c0bb2b648a35e4391..d0dc22c55d25b195a9ca7f220396b4de90681fa2 100755
--- a/scripts/gnt-instance
+++ b/scripts/gnt-instance
@@ -50,16 +50,17 @@ def ListInstances(opts, args):
                "oper_state": "Status", "admin_ram": "Configured_memory",
                "oper_ram": "Memory", "disk_template": "Disk_template",
                "ip": "IP Address", "mac": "MAC Address",
-               "bridge": "Bridge"}
+               "bridge": "Bridge",
+               "sda_size": "Disk/0", "sdb_size": "Disk/1"}
   else:
     headers = None
 
   if opts.human_readable:
-    unitfields = ["admin_ram", "oper_ram"]
+    unitfields = ["admin_ram", "oper_ram", "sda_size", "sdb_size"]
   else:
     unitfields = None
 
-  numfields = ["admin_ram", "oper_ram"]
+  numfields = ["admin_ram", "oper_ram", "sda_size", "sdb_size"]
 
   data = GenerateTable(separator=opts.separator, headers=headers,
                        fields=selected_fields, unitfields=unitfields,