Windows Quickstart Guide


System Requirements

* Windows (10,8,7,XP,Vista,2003,2008,2012) Distribution. The application was tested and developed on Windows 10 (64bit)
* Dokany 8.0+. (Included in setup)
* 4 GB of Available RAM * Java 7 (32 bit) – included in package.

Getting Started

Step 1: Download and Install the SDFS package.

Step 2: Reboot the system

Step 3: Create an sdfs file system. Run the following command from cmd.exe as administrator.

mksdfs --volume-name=<volume-name> --volume-capacity=<capacity>      

e.g. mksdfs --volume-name=sdfs_vol1 --volume-capacity=100GB

Step 4: Mount the sdfs from cmd.exe as administrator.

To mount SDFS run the following command:

mountsdfs -v <volume-name> -m <mount-point>


mountsdfs -v sdfs_vol1 -m S

Step 5: Unmount volume To unmount the volume run sdfscli –shutdown

Step 6: Mount sdfs as a service To have sdfs run on boot you will need to use the sc tool to add each volume you want to mount as a service. The service will not show that it is running because mountsdfs is not yet built as a service, but the volume will be mounted. Below is how you add an sdfs volume as a service.

sc create sdfs<drive-letter> binPath="\"C:\Program Files\sdfs\mountsdfs.exe\" -v sdfs -m <drive-letter> -cp" DisplayName="SDFS <drive-letter> Drive" start=auto


sc create sdfss binPath="\"C:\Program Files\sdfs\mountsdfs.exe\" -v sdfs_vol1 -m s -cp" DisplayName="SDFS s Drive" start=auto

Tips and Tricks

There are plenty of options to create a file system and to see them run “mksdfs –help”.

File Placement

Deduplication is IO Intensive. SDFS, by default writes data to c:\program files\sdfs. SDFS does a lot of writes went persisting data and a lot of random io when reading data. For high IO intensive applications it is suggested that you split at least the chunk-store-data-location and chunk-store-hashdb-location onto fast and separate physical disks. From experience these are the most io intensive stores and could take advantage of faster IO.


SDFS provides snapshot functions for files and folders. The snapshot command is “sdfscli –snapshot –file-path=<path to file without drive letter> –snapshot-path=<destination>”. The destination path is relative to the mount point of the sdfs filesystem.

Other options and extended attributes

SDFS keeps deduplication rates and IO per file. To get IO statistics run “sdfscli –file-info –file-path=<path to file without drive letter>” within the mount point of the sdfs file system.


sdfscli --file-info --file-path=folder\test.vmdk

Command Line Interface (SDFSCli)

Since windows does not have a command line for getting and setting file attributes similiar to Linux, SDFS created a command line interface for managing the SDFS filesystem. SDFScli matches 1 for 1 with all commands available with the getattr and setattr command available within Linux, except it does not set extended file attributes. Below is the command structure for SDFSCli.


usage: sdfscli <options>

–dedup-file                      Deduplicates all file blocks if set to true, otherwise it will only dedup blocks that are already stored in the DSE.

e.g. –dedup-file=true –file-path=<file to flush>

–file-info                       Returns io file attributes such as dedup rate and file io statistics.

e.g. –file-info –file-path=<path to file or folder>

–file-path <RELATIVE PATH>       The relative path to the file or folder to take action on.

e.g. –file-path=readme.txt or –file-path=file\file.txt

–flush-all-buffers               Flushes all buffers within an SDFS file system.

e.g. –flush-file-buffers –file-path=<file to flush>

–flush-file-buffers              Flushes to buffer of a praticular file.

e.g. –flush-file-buffers –file-path=<file to flush>

–help                            Display these options.

–snapshot                        Creates a snapshot for a particular file or folder.

e.g. –snapshot –file-path=<source-file> –snapshot-path=<snapshot-destination>

–snapshot-path <RELATIVE PATH>   The relative path to the destination of the snapshot.

e.g. –snapshot-path=snap-readme.txt or –snapshot-path=file\snap-file.txt