After more than two years of development, the release of WinBtrfs 1.10 has been published, advancing the driver for using the Btrfs filesystem on the Windows platform. WinBtrfs is not based on the Btrfs code from the Linux kernel but is a completely rewritten alternative implementation. It supports operation with Windows XP and newer releases. The driver is included in the ReactOS operating system and can be used to boot Windows from a partition with Btrfs. The code is written in C/C++ and is distributed under the LGPLv3 license.
WinBtrfs supports most features of the Linux version of Btrfs, including asynchronous read and write, RAID 0/1/10/5/6 support, caching, auto-discovery of partitions, ACLs, symbolic links, subvolumes, snapshots, hard links, sparse files, preallocated space, compression, balancing, data integrity checking, remove and add devices, sending and receiving subvolumes, resizing partitions, and advanced checksums (xhash, sha256, blake2). Notable driver-specific features include the implementation of alternative data streams and mapping of Linux and Windows user IDs. It is also possible to convert existing NTFS partitions to Btrfs.
Among the changes in the new version:
- Support for writing bitmap data with information about free space has been added.
- The ability to save small files in metadata blocks (inline) in a compressed form has been implemented.
- Improved handling of removable drives. Support for creating RAID arrays on removable drives has been discontinued.
- Reliability of recovery after errors caused by out-of-memory (OOM) conditions or exhaustion of free space on the storage (ENOSPC) has been enhanced.
- Crashes occurring during file moves between subvolumes and while simultaneously creating a large number of files have been fixed.
- A bug that led to corruption of the extent tree when writing snapshots has been resolved.
- Deadlock issues when working with hard links have been fixed.
- Refactoring of internal structures and constants has been performed to align them with the variants used in Linux.
- During the review of changes and debugging, the AI assistant Claude was utilized, but the code is still created exclusively by hand.
Source: opennet.ru
