Updated 28/06/2020: [ReFS v1 volumes which are created under Windows Server 2012/R2, can be mounted on Windows Server 2016 and 2019. ReFS is backward compatible, however, that volume will not be upgraded to ReFS v3 when you mount it on Windows Server 2016 and 2019].
In this article, we will show you how to recover data on ReFS volume between different Windows Server versions.
Table of Contents
Microsoft introduced the Resilient File System (ReFS) with Windows Server 2012. ReFS is designed to increase integrity, scalability, and Proactive Error Correction. In Windows Server 2012, ReFS was not much used because it was lacking some features compared to NTFS (No Disk Quotas, no compression, no EFS, and so on).
However, in Windows Server 2016, Microsoft is investing more and more in ReFS, one of the coolest features of ReFS is accelerated VHDX operations.
ReFS provides the file system in which the Hyper-V VM files are stored. ReFS is a premier file system for virtualized deployments and includes optimizations for Storage Spaces such as error detection, automatic correction, and protection against data corruption, so when a Cluster Shared Volume is formatted by using ReFS, you’ll no longer be warned to run a CHKDSK on CSV. In addition, ReFS provides accelerations for VHD(X) operations such as fixed VHD(X) creation, dynamic VHD(X) growth, and VHD(X) checkpoint merge. This is amazingly powerful stuff!
Recently, I have been upgrading my last Hyper-V host from Windows Server 2016 Technical Preview 3 to Technical Preview 4.
The issue that I hit during this upgrade is, that I did not take a backup of my virtual machines/data which resides on ReFS volume.
What I ended up with is having a RAW disk that is inaccessible.
If you try to access the disk from file explorer, you will receive a nice message: You need to format the disk and lose all your data!!!
You might ask, why we cannot access ReFS volumes using different Windows Server 2016 Technical Preview versions as we used to do with NTFS?
First, the product is still in the development phase, and Microsoft is working on enhancing ReFS in each technical preview build.
Second, my fellow MVP, Didier Van Hoye discovered using fsutil that ReFS has been upgraded from version 2.0 in Windows Server 2016 TPv3 to version 3.0 in TPv4.
Windows Server 2016 Technical Preview 3:
Windows Server 2016 Technical Preview 4:
It’s a major upgrade done by Microsoft!
For this reason, the disk is showing RAW in Windows Server 2016 TPv4. The same will actually go for a ReFS version 3.0 on Windows Server 2016 TPv3, it’s RAW and unusable.
Recover Data on ReFS Volume
How to recuperate data in this situation, we have actually two options besides formatting the drive and losing the data.
Reinstall Windows Server 2016 Technical Preview 3 on that host, recover the data and then upgrade again to Windows Server 2016 Technical Preview 4 which is a long process.
The easiest and fastest way is to create Windows Server 2016 Technical Preview 3 Virtual Machine on Windows Server 2016 Technical Preview 4 Hyper-V host, and then pass through the Physical ReFS disk into the guest, mount the volume, and copy all your data.
The latter is my favorite option.
Step 1 – Put the Physical disk in offline mode on the host
Get-Disk -Number 1 | Set-Disk -IsOffline $true –Verbose
Step 2 – Pass-Through the offline disk into the VM
Add-VMHardDiskDrive -VMName "WS16-HVTPv3" -ControllerType SCSI –ControllerNumber 1 -ControllerLocation 0 -DiskNumber 1 -Verbose
Step 3 – Connect to the VM, mount the volume and access your data
ReFS is a promising technology and will be the primary file system supported by Microsoft for Storage Spaces Direct (Azure Stack HCI).
As for now, please do not use ReFS in production. Play with it, but not in production.
So be careful when moving between different Technical Preview builds. Keep that in mind when upgrading.
Hope this helps.