diff --git a/src/bin/mount.rs b/src/bin/mount.rs
index d91654110aac2d88fefb07e5fdef60df1543c6e6..3474a9e0c9b3964ba0b8f8ed71221607a2664db8 100644
--- a/src/bin/mount.rs
+++ b/src/bin/mount.rs
@@ -187,6 +187,18 @@ fn daemon(disk_id: &DiskId, mountpoint: &str, mut write: File) -> ! {
     process::exit(1);
 }
 
+fn print_uuid(path: &str) {
+    match DiskFile::open(&path).map(|image| DiskCache::new(image)) {
+        Ok(disk) => match redoxfs::FileSystem::open(disk) {
+            Ok(filesystem) => {
+                println!("{}", Uuid::from_bytes(&filesystem.header.1.uuid).unwrap().hyphenated());
+            },
+            Err(err) => println!("redoxfs: failed to open filesystem {}: {}", path, err)
+        },
+        Err(err) => println!("redoxfs: failed to open image {}: {}", path, err)
+    }
+}
+
 fn main() {
     let mut args = env::args().skip(1);
 
@@ -209,6 +221,18 @@ fn main() {
             };
 
             DiskId::Uuid(uuid)
+        } else if arg == "--get-uuid" {
+            match args.next() {
+                Some(arg) => {
+                    print_uuid(&arg);
+                    process::exit(1);
+                },
+                None => {
+                    println!("redoxfs: no disk provided");
+                    usage();
+                    process::exit(1);
+                },
+            };
         } else {
             DiskId::Path(arg)
         },