В ReactOS обеспечена возможность загрузки с Btrfs

good-penguin.png

Разработчики свободной операционной системы 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 также поддерживает несколько других файловых систем:

  1. только «на чтение» — NTFS, ReiserFS, FFS/UFS, UDFS, CDFS;
  2. на «чтение-запись» — FAT12/16/32, Ext2/¾, и NFS

>>> еженедельный блог-пост студента GSOC 2018

©  Linux.org.ru