WinBtrfs v0.1 ------------- WinBtrfs is a Windows driver for the next-generation Linux filesystem Btrfs. The ultimate aim is for it be to feature-complete, but most of the basics are there already. It is a reimplementation from scratch, and contains no code from the Linux kernel. First, a disclaimer: This software is in active development - YOU USE IT AT YOUR OWN RISK. I take NO RESPONSIBILITY for any damage it may do to your filesystem. DO NOT USE THIS DRIVER UNLESS YOU HAVE FULL AND UP-TO-DATE BACKUPS OF ALL YOUR DATA. Do not rely on Btrfs' internal mechanisms: SNAPSHOTS ARE NOT BACKUPS, AND DO NOT RULE OUT THE POSSIBILITY OF SILENT CORRUPTION. In other words, assume that the driver is going to corrupt your entire filesystem, and you'll be pleasantly surprised when it doesn't. Everything here is released under the GNU Lesser General Public Licence (LGPL); see the file LICENCE for more info. You are encouraged to play about with the source code as you will, and I'd appreciate a note (mark@harmstone.com) if you come up with anything nifty. On top of that, I'm open to relicensing the code if you've a burning desire to use it on a GPL or commercial project, or what have you - drop me a line and we'll talk. FEATURES: -------- * Reading and writing of Btrfs filesystems * Caching * Discovery of Btrfs partitions, even if Windows would normally ignore them * Getting and setting of Access Control Lists (ACLs), using the xattr security.NTACL * Alternate Data Streams (e.g. :Zone.Identifier is stored as the xattr user.Zone.Identifier) * Supported incompat flags: mixed_backref, default_subvol, big_metadata, extended_iref, skinny_metadata. * Mappings from Linux users to Windows ones (see below) * Symlinks TODO: ---- * Basic RAID: RAID0, RAID1, and RAID10 * RAID5 and RAID6 (incompat flag raid56) * Zlib compression * LZO compression (incompat flag compress_lzo) * Old free space cache * New (Linux 4.5) free space cache (compat_ro flag free_space_cache) * Preallocation * Misc incompat flags: mixed_groups, no_holes * Userspace helper to create new subvolumes, etc. * Asynchronous reading and writing * Actually obeying security (ACLs and ACCESS_MASK) * Get all of Wine's ntdll tests to pass * Allow creation of hard links * Arbitrary reparse points * Probably a bunch of other bugs
https://github.com/maharmstone/btrfs