Разработчики свободной операционной системы ReactOS, нацеленной на обеспечение совместимости с программами и драйверами Microsoft Windows, сообщили о внедрении возможности загрузки с дискового раздела с файловой системой Btrfs. Поддержка монтирования разделов Btrfs в ReactOS ОС на базе свободного драйвера WinBtrfs была добавлена ещё год назад. Однако, теперь был создан загрузочный сектор для раздела с BTRFS и мини-драйвер для загрузчика FreeLoader, позволяющий в read-only режиме читать файлы с раздела BTRFS.
Внедрение поддержки установки и загрузки ReactOS с BTRFS ведет Виктор Переверткин в рамках программы Google Summer of Code 2018.
Потребовалось решения ряда всплывших в процессе разработки сложностей:
- обход ошибки в VirtualBox, мешавшей загрузке. Как выяснилось, в реализации прерывания INT 13h AH=42h есть какие-то проблемы, из-за которых эта функция не может читать более 8 секторов за раз.
- В драйвере WinBtrfs закрался баг, связанный с обработкой масок, начинающихся на звездочку. Winsxs часто использует функцию NtQueryDirectoryFile для поиска манифестов по маске, что приводило к ошибке и прерыванию процесса запуска.
После преодоления указанных сложностей загрузка ReactOS с использованием Btrfs смогла работать относительно стабильно.
Оставшееся время в рамках GSOC 2018 Виктор планирует потратить на решение других проблем в драйвере для Btrfs, таких как:
- использование файла подкачки на Btrfs-разделах,
- утечки памяти при некоторых операциях записи (до сих пор не удаётся установить Git на раздел с Btrfs)
- падение системы в процессе завершения работы.
Слияние наработок по BTRFS в рамках GSOC 2018 с основной веткой проекта должно предположительно произойти во время очередного ежегодного ReactOS-хакфеста в августе 2018. В дальнейшем, проект планирует перейти с FAT на BTRFS, как на основную файловую систему, до момента пока не будет доработан драйвер для NTFS. Включение загрузки с BTRFS внесено в предварительный план ближайшего релиза ReactOS под номером 0.4.10
Проект заинтересован в переходе на именно BTRFS из-за того, что WinBtrfs является наиболее продвинутым свободным драйвером альтернативной FS под Windows, возможностей FAT уже начинает не хватать, а собственный свободный драйвер NTFS еще не готов.
Кроме BTRFS ReactOS также поддерживает несколько других файловых систем:
- только «на чтение» - NTFS, ReiserFS, FFS/UFS, UDFS, CDFS;
- на «чтение-запись» - FAT12/16/32, Ext2/3/4, и NFS