diff --git a/weed/storage/volume_create.go b/weed/storage/volume_create.go
index 6b3a17439..76231c533 100644
--- a/weed/storage/volume_create.go
+++ b/weed/storage/volume_create.go
@@ -9,7 +9,7 @@ import (
 )
 
 func createVolumeFile(fileName string, preallocate int64) (file *os.File, e error) {
-	file, e = os.OpenFile(fileName, os.O_RDWR|os.O_CREATE, 0644)
+	file, e = os.OpenFile(fileName, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644)
 	if preallocate > 0 {
 		glog.V(0).Infof("Preallocated disk space for %s is not supported", fileName)
 	}
diff --git a/weed/storage/volume_create_linux.go b/weed/storage/volume_create_linux.go
index 8f6bab2fe..355392c88 100644
--- a/weed/storage/volume_create_linux.go
+++ b/weed/storage/volume_create_linux.go
@@ -10,7 +10,7 @@ import (
 )
 
 func createVolumeFile(fileName string, preallocate int64) (file *os.File, e error) {
-	file, e = os.OpenFile(fileName, os.O_RDWR|os.O_CREATE, 0644)
+	file, e = os.OpenFile(fileName, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644)
 	if preallocate != 0 {
 		syscall.Fallocate(int(file.Fd()), 1, 0, preallocate)
 		glog.V(0).Infof("Preallocated %d bytes disk space for %s", preallocate, fileName)