Драйвер WinBtrfs 1.10 вышел 2026 года – спустя почти два с половиной года после версии 1.9. В новом выпуске появилась запись битовых карт свободного места и сжатых файлов внутри метаданных: прежде обе возможности работали только на чтение. Устранены порча дерева экстентов при записи в снимки, аварийное завершение при переносе файлов между подтомами и сбой, который воспроизводился в клиенте Steam при одновременном создании множества файлов. Одновременно из драйвера убрали поддержку RAID для съёмных накопителей.
Две операции записи, которых не было в версии 1.9
Btrfs хранит сведения о свободных блоках в отдельном дереве свободного места. Пока группа блоков заполнена ровно, свободные диапазоны описываются записями об экстентах; когда пространство дробится на множество мелких кусков, ядро Linux переводит группу на битовую карту, где каждый бит отвечает за один сектор. Чтение таких карт в WinBtrfs было реализовано и раньше, запись появилась только в 1.10.
Btrfs – файловая система Linux с копированием при записи, контрольными суммами данных и метаданных, встроенными снимками, прозрачным сжатием и собственными уровнями RAID.
Вторая новая операция – запись сжатых файлов, которые целиком помещаются в метаданные. По умолчанию так хранятся файлы до 2048 байт, порог задаётся параметром реестра MaxInline и сверху ограничен размером узла дерева. Чтение сжатых inline-экстентов появилось ещё в версии 0.10 от 2017 года, запись – спустя девять лет.
Inline-файл – файл, содержимое которого лежит не в отдельном экстенте на диске, а прямо в узле дерева метаданных. За счёт этого мелкие файлы не занимают целый блок данных.
Восемь исправлений: дерево экстентов, Корзина, Steam
Самая тяжёлая из закрытых ошибок повреждала дерево экстентов при записи в снимок. Именно по нему определяется, какие блоки на томе заняты и кем. Остальные семь исправлений:
- сбой при переносе файлов между подтомами, в том числе при удалении файла в Корзину;
- сбой при одновременном создании множества файлов, воспроизводившийся в клиенте Steam;
- ошибки предварительного выделения места, мешавшие работе утилиты rclone;
- взаимная блокировка при запросе списка жёстких ссылок;
- повреждение памяти при отслеживании изменений в реестре;
- неверная статистика занятого места на томах из нескольких устройств;
- обработка запроса FSCTL_DUPLICATE_EXTENTS_TO_FILE, присланного 32-разрядной программой.
Подтом (subvolume) – независимое пространство имён внутри одной файловой системы Btrfs, со своим корнем и собственным деревом файлов. Снимок – это подтом, созданный как копия другого подтома.
Обработка нехватки оперативной памяти и свободного места на томе усилена, работа со съёмными устройствами переработана, а внутренние структуры и константы приведены к тем же определениям, что используются в ядре Linux. Полный перечень изменений приведён в README проекта, сборки выложены на странице выпуска.
RAID на съёмных накопителях больше не поддерживается
Переработка съёмных устройств стоила одной возможности, и об этом сказано отдельным примечанием: массивы RAID на съёмных накопителях в версии 1.10 не работают. Раньше такая сборка была возможна, хотя в примечании она подана как редкий случай.
Тем, у кого том Btrfs собран из нескольких внешних дисков, обновляться нельзя: остаётся либо версия 1.9, либо перенос массива на стационарные накопители. Для однодисковых внешних томов ограничение не действует.
Помощь Claude в поиске ошибок и разборе кода
В записи об изменениях отдельно упомянута Anthropic. Бесплатная подписка Claude Max 20x, полученная по программе Claude for Open Source, по словам автора проекта, сильно помогла в поиске ошибок и разборе кода; там же оговорено, что весь код версии 1.10 написан вручную, без участия ИИ.
Программа Anthropic даёт сопровождающим открытых проектов, авторам библиотек и основным контрибьюторам шесть месяцев бесплатного доступа к старшему личному тарифу Claude Max 20x. Отбор идёт по заявкам: на официальной странице программы названы пороги в 500 зависимых репозиториев, 100 зависимых пакетов либо 200 000 суммарных загрузок в месяц по реестрам вроде npm, PyPI и crates.io.
Установка драйвера и ограничение безопасной загрузки
Выпуск собран для архитектур x86, amd64, arm и aarch64. Установка сводится к распаковке архива и запуску файла btrfs.inf через контекстное меню Проводника; драйвер подписан. Отдельно доступны пакеты в Chocolatey и Scoop.
При включённой безопасной загрузке в Windows 11 драйвер может не загрузиться. Обходной путь описан в README: в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI\Policy создаётся параметр DWORD с именем UpgradedSystem и значением 1, после чего требуется перезагрузка. Второй вариант – отключить безопасную загрузку в настройках UEFI.
Поддержка старых выпусков сохранена: WinBtrfs работает на Windows 10, Windows 8, Windows 7 и вплоть до Windows XP. На XP и Windows Server 2003 разделы Linux остаются невидимыми, поэтому тип раздела приходится менять с 83 на 7 средствами fdisk.
На этом же коде построена поддержка Btrfs в ReactOS – свободной операционной системе, совместимой с приложениями и драйверами Windows.
Заключение
Версия 1.10 закрывает два пробела в записи – битовые карты свободного места и сжатые файлы в метаданных – и устраняет восемь ошибок, включая порчу дерева экстентов при записи в снимки. Для тех, кто держит разделы Btrfs под Windows и обращается к ним из обеих систем, это первый выпуск с 2024 года.
Обновляться имеет смысл всем, кроме владельцев RAID-массивов на съёмных накопителях: для них переход на 1.10 означает потерю рабочей конфигурации. Перед установкой стоит сделать резервную копию – в README прямо сказано, что ответственности за возможное повреждение файловой системы автор проекта не несёт.