Файловые системы в мультизагрузке

На основной рабочей машине у меня всегда установлено больше одной операционной системы. Так сложилось. Такая манера пользования компьютера приводит к необходимости решать проблемы общего доступа к файлам. Был наработан некоторый опыт в решении этой проблемы, опыт которым я хочу поделиться. Сразу оговорюсь в основном речь пойдет про домашнее использование без рейдов, LVM и тому подобного.

Мультизагрузка это не только про линухи, было дело я держал в мультизагрузке Windows 98 на FAT32 и XP на NTFS (для 98 недоступную) используя 98 для игр и в роли песочницы наивно рассчитывая, что в случае чего данные на NTFS не пострадает и вторая ось продолжит работать (Win9x.CIH подтверждает). Обратно тогда про NTFS ходили разного рода страшилки и часть информации я дублировал на FAT32 разделах на тот случай если NTFS сломается. А может и не страшилки — в Windows 10 однострочная команда повреждает NTFS.

Самый универсальный, но не самый быстрый способ подключить любую файловую систему воспользоваться виртуальной машиной умеющей подключать физические разделы, например, VirtualBox. Устанавливаем операционную систему поддерживающую требуемую файловую систему, подключаем нужный раздел диска, организовываем доступ к разделу. В Windows, раньше для этого использовался coLinux, сейчас для Windows 10 есть Windows Subsystem for Linux (WSL) и она активна развивается (WSL2).

wmic diskdrive list brief -- вывести список доступных дисков.
wsl --mount путь/до/диска -- монтировать диск.
wsl --unmount путь/до/диска -- отмонтировать диск.

По умолчанию монтируются как ext4, для указания типа ФС используем ключ --type.

Куда более предпочтительным выглядит использование для подключения ФС специализированных драйверов. Это проще и быстрее работает. Стандартных проблем несколько, первая отсутствие или ограниченная поддержка ФС на уровне ОС, обычно, из коробки, операционные системы работают только со своими ФС. Впрочем, для некоторых ФС уже можно говорить о поддержке на уровне родной. Вторая трудность это, то как операционная система работает с ФС как реализованы права доступа, отношение к регистру в именах файлов и тому подобное. Третий вопрос выбор ФС из предложенных.

Доступ к разделам Windows

FAT/FAT32/exFAT — трудно найти ОС, что не поддерживала какую либо из этих ФС. Зачастую FAT это самый простой (а то и единственный) способ получить совместимость. В минусах низкая производительность, ограничение на размер файлов, дисков, фрагментация, патентные ограничения. «Современный» вариант exFAT (FAT64) с одной стороны лишен некоторых недостатков, с другой это все тот же FAT. Оптимизирован под флеш-накопители. Полностью поддерживается ядром Linux — exfatprogs (в прошлом драйвер от Samsung выложенный под открытой лицензией) и macOS. exFAT оптимальный выбор для переносных накопителей, хотя было время я склонялся к UDF (мода была такая). Проблемы? Не изменяется размер ФС, для флешек не критично. Windows XP все еще используется.

NTFS — в 1993 это была «new technology file system». Это основная файловая система Windows, актуальная версия NTFS 3.1. Спецификации закрыты, полностью поддерживается только Windows. В Linux на выбор два драйвера NTFS-3G (ntfsprogs) для FUSE от Tuxera и NTFS3 от Paragon Software, включен в ядро Linux начиная с 5.15. Последний видится лучшим вариантом как в плане скорости, так и в плане полной реализации всех возможностей NTFS. В macOS есть нативная поддержка NTFS, но доступ на запись отключён. Включается или хитрыми командами в терминале или утилитами по типу Mounty for NTFS. Лучше будет использовать один из описанных ранее NTFS-3G и OSXFUSE или Paragon NTFS for Mac, но уже за деньги. В общем последнее время проблем с доступок к NTFS разделам нет, не то что раньше.

Фрагментация файлов приводит к замедлению работы и снижает ресурс HDD. Средства для дефрагментации NTFS есть только под Windows (вернее есть udefrag — UltraDefrag командной строки собранный под Linux и он даже собирается из AUR, но не работает). Из имеющегося множества я пользовался и могу порекомендовать UltraDefrag (с версии 8 сменила лицензию с GPL на собственническую), Defraggler и Auslogics Disk Defrag. Правильная организация работы с диском так же снизит фрагментацию.

Возможны проблемы с правами доступа к файлам. Может потребоваться эти самые права сбросить. Тут помогут встроенные утилиты icacls (используется для управлением доступом) и takeown (используется для смены владельца). Запускаем cmd с правами администратора и вводим команды, например:

takeown.exe /f E:\* /r /d y
icacls.exe E:\* /reset /T

(как вариант для сброса всех метаданных копирование через раздел FAT32)

Для NTFS нет смысла использовать размер кластера более 32кб.

NTFS что называется case sensitive т.е. различает регистр файлов, а Windows — нет (case insensitive). Это важно учитывать сохраняя файлы из Linux.

Для FAT32 и NTFS теоретические ограничения по уровню вложенности не указаны, но на практике они одинаковые: в каталоге первого уровня можно создать только 7707 подкаталогов. Любители поиграть в матрешки оценят.

Доступ к разделам Linux

Из всего разнообразия поддерживаемых Linux ФС я выбираю ext4. Также я использую XFS и BTRFS, но основная все таки ext4. За все время использования начиная с версии ext2 она показала себя не глючной и надежной в использовании. Если говорить о поддержке в Windows то ситуация скорее ухудшается. Ext2IFS одна из первых реализаций драйвера для extFS, IFS это Installable File System — API файловых систем в IBM OS/2 и Microsoft Windows. Поддерживает ext2, ext3 и ext4 (не полностью). Последняя на момент написания версия 1.12 от 2015 года. Для коллекции. Существовало (?) несколько драйверов с таким названием. Ext2FSD (Ext2 File System Driver) — это драйвер с открытым исходным кодом (GPL) файловых систем ext2, ext3 и ext4. Последняя на момент написания версия 0.69 от 2017 года. Лучший выбор из открытых драйверов, к сожалению тоже прекратил развитие.

Из альтернатив остается только File Systems for Windows драйвер от Paragon Software поддерживает ExtFS (а так же BTRFS и XFS в режиме чтения). Он же для macOS и это практически единственный вариант нормального доступа к extFS (есть ext4fuse тольтко чтение). Перешел после того как однажды Ext2FSD перестал монтировать файловые системы. С большего во всем устраивает, но есть недостатки. Платный, хуже, лицензия на машину, мне одной хватает, но с увеличением машин увеличивается и стоимость пользования. Работает и без лицензии, но медленно. Второй минус работает поверх Dokany, лишняя прослойка скорость и надежность не повышает.

Фрагментация в ext4 меньше, но тоже есть. Для дефрагментации используется стандартная утилита e4defrag.

Проверяем:
# e4defrag /dev/sdax -c
Если нужна дефрагментация, то без ключа -c:
# e4defrag /dev/sdax

Доступ к разделам macOS

У меня нет устройств с macOS на борту. Сейчас я полностью утратил интерес к операционным системам от Apple. Но опыт использования имеется. Тут царит своя атмосфера. Злые языки говорят, что минимум треть маководов держат в мультизагрузке Windows для которой имеется Mac ToolBox от Paragon Software добавляющий поддержку HFS+ и APFS в Windows и NTFS в macOS. В свое время я пользовался как драйвером от Paragon, таки и от Tuxera. Оба меня устраивали. В Linux поддержку HFS+ добавляют пакетом hfsprogs. Для APFS есть APFS for Linux от Paragon.

OpenZFS и BTRFS

OpenZFS это альтернативная альтернатива. ZFS — файловая система и менеджером логических томов в одном флаконе. ФС не родная не для одной из большой тройки операционных систем. Основной реализацией является OpenZFS — используется в FreeBSD, подключаемый модуль ядра в Linux, драйвер OpenZFS для Windows, и OpenZFS on OS X для macOS. Т.к. во всех случаях используется один и тот же драйвер можно надеяться, что в итоге и работать он будет одинаково во всех поддерживаемых ОС. Имеет множество наворотов (в подробности вдаваться не буду — сам не до конца освоил). Считается отличным вариантом для хранения важных данных. Имею исключительно положительный опыт использования в домашнем NAS на базе FreeBSD (включена в ядро и подается как один из плюсов данной ОС).

BTRFS реализация ZFS под GPL. Может использоваться в связке Windows с Linux. WinBTRFS — открытый драйвер BTRFS для Windows (т.ж. используется в ReactOS полная поддержка, включая загрузку с разделов BTRFS). Последняя версия на момент написания 1.7.9. Вариант 2 — WSL2. Вариант три (резервный) упоминаемый ранее Linux File Systems for Windows поддерживает (пока?) BTRFS в режиме чтения. Сам не использовал т.к. не использую BTRFS в мультизагрузочных конфигурациях.

Выводы

Если ваша основная ОС Windows то ваш выбор NTFS. Для пар Windows и Linux, Windows и macOS при условии, что Windows основная ОС, так и всех трех сразу (с трудом представляю эту машину). Эта ФС хорошо поддерживается как в Linux (в перспективе еще лучше), так и в macOS. Местами даже лучше самой Windows т.к. позволяют удалять не удаляемое средствами ОС. Для macOS поддержка NTFS потребуется для совместимости даже если это основная система и в таком случае больше смысла будет в APFS как основной ФС.

Windows потребуется для обслуживания (дефрагментации). Множество сторонних утилит для работы с файловой системой, дефрагментации, восстановления файлов… В минусах NTFS закрытая ФС — злые языки говорят, что MS сами не знают как устроена NTFS. Маловероятно, но может случится так, что MS сменит версию ФС с 3.1 на несовместимую с ней версию 3.2 (припоминается что-то подобное).

В Linux на выбор подойдут как NTFS, так и ext4. Раньше я бы однозначно рекомендовал ext4, но сейчас, когда разработка свободных драйверов практически прекращена, привлекательность ext4 в плане универсальной ФС снижается. Еще ext4 хороший вариант для Windows если нужен раздел с ограниченным доступом, тут ext4 конкурирует в этой роли с BTRFS. BTRFS вполне себе вариант для фанатов этой ФС.

Для переносных дисков лучший выбор ExFAT, без вариантов. Все современные ОС хорошо поддерживают эту ФС.

В будущем волне возможен вариант с OpenZFS в качестве универсальной ФС для доступа к файлам.

Полезные приложения

TestDisk/PhotoRec одно из лучших бесплатных приложений для восстановления данных. Большинство подобных приложений работают только в Windows, это же нет.

R.saver обеспечивает доступ к данным на всех рассмотренным ФС и даже больше. Так же используется для восстановления файлов с NTFS, FAT и ExFAT.

P.S. Haiku

Несколько слов про Haiku: сама гайка поддерживает разделы NTFS, через NTFS3G(?) и разделы ext4 — e2fsprogs(?). Драйвер BFS/OpenBFS присутствует в ядре Linux т.е. разделы доступны из коробки, но только на чтение.

P.P.S. NTFS для DOS

Существует несколько DOS драйверов информация о названии и происхождении коих разнится. В народе лучшим считается этот Paragon ntfs4dos (хотя возможно это Avira NTFS4DOS, а возможно это два разных драйвера). Был еще NTFSDOS от Марка Руссиновича. И другие (возможно). Кроме того имеются утилиты для проверки и дефрагментации файловой системы.

(Пример загрузочной дискеты)

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x