Выбираем файловую систему независимую от ОС
Всем привет. Недавно я задался вопросом как организовать обмен файлами между операционными системами. Предположим, я хочу установить сразу три основные ос на своём ноутбуке: линукс, виндовз и хакинтош. Каждая ос предназначается для своих задач: Линукс — для работы и программирования, винда — для игр и хак — просто для разных экспериментов.
Поскольку я создаю обучающие видео ролики о линуксе, мне удобнее работать именно на нём. Но монтировать хочется попробовать в «финальном вырезе». Уж очень мне приглянулась идея магнитной ленты времени.
Так вот, задача стоит такая: нужен раздел на системном накопителе, причём с такой файловой системой, которая поддерживается на чтение и запись всеми перечисленными операционками. На этом разделе будут храниться скачанные из интернета файлы и меж-операционные проекты.
Как такая задача решалась мной раньше? Раньше я использовал только винду с линуксом, поэтому задачи обмена с apple os не возникало. Конечно, хотелось использовать открытую и родную фс для линукса — ext4. Но на винде её смонтировать непросто. Нужно устанавливать бесплатный (но проприетарный) Paragon ExtFS for Windows. И ладно, если бы это работало, но к сожалению данное ПО повреждает вам раздел с линуксом. Напоролся пару раз, и всякое желание пользоваться этим по пропало.
А вот виндовая фс под линуксом читается и пишется без проблем. Нужно всего лишь установить ntfs-3g драйвер. Он работает в юзерспейсе. Файловая система проприетарная, но решение работает.
Теперь же я хочу использовать ещё и хакинтош, и хочется разобраться какие ещё есть варианты для решения этой задачи, кроме ntfs.
На самом деле вариантов немного. Давайте разберёмся, какие есть файловые системы, и какие из них являются более или менее универсальными.
Fat32 — всем известная древняя фс, является самой универсальной в плане переносимости, но и самой убогой в плане ограничений. Была разработана давно, не поддерживает файлы размером более 4 Гб. Проприетарная. Для моих задач не подходит.
Ntfs — родная фс для винды, проприетарщина. Линукс, как я уже писал выше, её поддерживает с помощью стороннего драйвера (ntfs-3g). Мак нативно её не понимает, хотя можно доустановить соответствующее по. Есть несколько вариантов, как платных, так и бесплатных. Ни один из них мне не нравится. ntfs-3g работает в userspace (с медленной скоростью), а платные решения — платные.
Hfs+ — одна из худших фс, когда либо созданных. Родная для мак ос, но нисколько не универсальная. Можно примонтировать на линуксе, а для винды опять же есть платные решения — в пролёте.
Ext4 — одна из правильных фс, родная для линукс. Но в плане монтирования в неродных ос — опять проблемы. За платные решения для хакинтоша и для винды опять просят денег. Есть и бесплатные решения, к примеру ext2fsd, но этот драйвер не умеет писать в ext4. В пролёте.
Udf — одна из правильных фс, поддерживается нативно всеми ос. Эта фс была бы лучшим вариантом, если бы не компания apple. Изначально udf создавалась для оптических носителей, но она может быть спокойно использована на обычном жёстком магнитном диске. НО! Из-за того, что яблочники не реализовали поддержку этой фс с раздела, вся задумка отменяется. Даже последняя мак ос Х поддерживает данную фс только если всё блочное устройство не имеет таблицы разделов. На гитхабе есть скрипт format-udf, который может подготовить носитель специальным образом: в начальном блоке данных прописывается mbr, говорящий что раздел начинается прямо там же где и сам mbr. Т.е. накопитель как бы одновременно и с таблицей разделов (то что понимает винда), и вроде как и без таблицы разделов. Этот способ предполагает что носитель будет внешний, а мне нужно сделать exchange раздел именно на внутреннем накопителе. Так что данный вариант тоже в пролёте.
exFat — проприетарщина, но нативно работает как в винде, так и в маке. Это очень хорошо. А что в линуксе?
Спрашивается, а почему тогда данный драйвер не поддерживается из коробки? Потому что его нет в ядре. Мердж этого кода (пусть и gpl-ного) в mainline — это по сути троян от мелких (из-за патентов). Торвальдс это понимает, и, понятное дело, ядро не отравит.
В линуксе монтировать exfat можно либо с помощью exfat-fuse драйвера, либо с помощью exfat-nofuse. Конечно, лучше nofuse, так как он будет работать быстрее. Но его придётся собирать каждый раз при обновлении ядра. Благо, для автоматизации этой задачи есть механизм dkms.
Я останавливаюсь на exfat. Да, проприетарщина, но ничего не поделаешь. Зато всё нативно работает, и “танцы с бубном” отсутствуют: во всех трех операционных системах есть нативная поддержка и возможность поставить эту фс именно на раздел. Ограничения в 4 Гб нет. И в целом, это решение достаточно простое.
Надеюсь, вы узнали что-то новое для себя и выберите подходящий вариант исходя из ваших нужд.
Апдейт 4 февраля 2020:
Оказывается раздел с exfat невозможно ни растянуть, ни сжать. Причём даже на самой винде. Не учёл этот момент при выборе решения. Если нужно изменить размер раздела — придётся только бекапить данные в другое место и пересоздавать раздел уже с нужным размером.
С UDF в этом плане дела не лучше. Вот здесь лежит табличка, описывающая возможности по работе с разделами в gparted.
Источник
Линус Торвальдс заявил, что драйвер NTFS готов к добавлению в ядро Linux
Драйвер файловой системы NTFS, разработанный российской компанией Paragon Software, готов для включения в ядро ОС Linux, если Paragon сама займется его интеграцией и сопровождением, сообщил создатель Linux Линус Торвальдс.
Торвальдс отметил, что старый драйвер NTFS, вышедший в 2001 году, уже «не в лучшем состоянии», тогда как драйвер Paragon за последний год прошел все нужные проверки и готов к добавлению в ядро.
Торвальдс подчеркнул, что в сообществе Linux нет никого, кто бы принимал pull-запросы с новыми файловыми системами, так что запрос стоит направить ему лично.
За последний год в списке рассылки linux-fsdevel для рецензирования было предложено 26 версий патчей NTFS3, однако, несмотря на все устраненные замечания, добавить драйвер в ядро было некому.
Если новый драйвер NTFS и появится, то только в будущих релизах ядра — превью-версия 5.14-rc2 уже вышла. Торвальдс отметил, что это самая внушительная версия по количеству коммитов за цикл 5.x.
Файловая система NTFS (New Technology File System, или «файловая система новой технологии») – стандартная файловая система для семейства операционных систем Windows NT, выпущенная в 1993 году. Несмотря на то, что это самая распространенная файловая система для компьютеров с ОС Windows, ее спецификации закрыты. Это затрудняет создание драйверов для ее поддержки.
Paragon Software открыла исходный код своего драйвера для NTFS в августе прошлого года. Драйвер Paragon включает все возможности актуальной версии NTFS 3.1: воспроизведение изменений из журнала, поддержка обычных, сжатых и разреженных файлов.
На тот момент разработка была не готова к добавлению в ядро Linux из-за несоблюдения авторами требований по оформлению патчей. В частности, патч был выгружен в виде ссылки на единый файл, содержащий более 27 тыс. строк кода, что затрудняло его проверку.
Источник
Поддерживает ли linux ntfs
28 май 2017, 11:44
# / was on /dev/sda1 during installation
UUID=e5de675e-6b6b-4ce9-8629-542d07732060 / ext4 errors=remount-ro 0 1
# /home was on /dev/sda2 during installation
UUID=edf07ea4-bd06-42c3-9b9b-b7da414f377e /home ext4 defaults 0 2
# /dev/sdb1: LABEL=»hardD» UUID=»1F7F76C938CF4113″ TYPE=»ntfs»
UUID=1F7F76C938CF4113 /media/hardD ntfs-3g uid=1000,gid=1000,dmask=022,fmask=133,locale=ru_RU.UTF-8 0 0
# Binds
/media/hardD/dja/Documents /home/dja/Документы none bind 0 0
/media/hardD/dja/Music /home/dja/Музыка none bind 0 0
/media/hardD/dja/Downloads /home/dja/Загрузки none bind 0 0
/media/hardD/dja/Pictures /home/dja/Изображения none bind 0 0
/media/hardD/dja/clouds/MailRu /home/dja/Clouds/MailRu none bind 0 0
/media/hardD/dja/clouds/YaDisk /home/dja/Clouds/YaDisk none bind 0 0
# /media/hardD/dja/clouds/Gdrive /home/dja/Clouds/Gdrive none bind 0 0
/media/hardD/dja/Video /home/dja/Видео none bind 0 0
#tmpfs
tmpfs /tmp tmpfs defaults 0 0
tmpfs /home/dja/.cache tmpfs defaults 0 0
tmpfs /home/soul/.cache tmpfs defaults 0 0
Полный доступ к NTFS из Linux
28 май 2017, 12:12
# / was on /dev/sda1 during installation
UUID=e5de675e-6b6b-4ce9-8629-542d07732060 / ext4 errors=remount-ro 0 1
# /home was on /dev/sda2 during installation
UUID=edf07ea4-bd06-42c3-9b9b-b7da414f377e /home ext4 defaults 0 2
# /dev/sdb1: LABEL=»hardD» UUID=»1F7F76C938CF4113″ TYPE=»ntfs»
UUID=1F7F76C938CF4113 /media/hardD ntfs-3g uid=1000,gid=1000,dmask=022,fmask=133,locale=ru_RU.UTF-8 0 0
# Binds
/media/hardD/dja/Documents /home/dja/Документы none bind 0 0
/media/hardD/dja/Music /home/dja/Музыка none bind 0 0
/media/hardD/dja/Downloads /home/dja/Загрузки none bind 0 0
/media/hardD/dja/Pictures /home/dja/Изображения none bind 0 0
/media/hardD/dja/clouds/MailRu /home/dja/Clouds/MailRu none bind 0 0
/media/hardD/dja/clouds/YaDisk /home/dja/Clouds/YaDisk none bind 0 0
# /media/hardD/dja/clouds/Gdrive /home/dja/Clouds/Gdrive none bind 0 0
/media/hardD/dja/Video /home/dja/Видео none bind 0 0
#tmpfs
tmpfs /tmp tmpfs defaults 0 0
tmpfs /home/dja/.cache tmpfs defaults 0 0
tmpfs /home/soul/.cache tmpfs defaults 0 0
Источник
Почему линукс не ставится на NTFS?
Спрашивает друг, который не решается ставить линукс.
Спрашиваю его — зачем тебе линукс на нтфс? Он говорит — это риторический вопрос. Почему не сделали версию линукса под нтфс? Чем неугоден линуксу нтфс?
Потому, что не нужно
А может ибо не осиливает?
Зачем осиливать то, что не нужно?
Где мой поп корн.
В ядре нет полноценного драйвера для поддержки ntfs. А нет его, потому что нафиг он никому не нужен.
Попробуй найти различия в том, что умеет та же ext2/3/4 и что умеет нтфс
ntfs в основном используется через fuse, ядреный ntfs как я понимаю полуживой, и скорее всего что-то нужное не умеет.
Ненужно. Было бы нужно, сделали бы. Это же элементарно, Ватсон.
Лучше спросить, почему GNU/Linux не ставится FAT32: тогда станет ясно, что дело не только в наличии драйвера в ядре, но и в банальном отсутствии UNIX-прав у этих двух ФС.
Потому что MS и патенты. Но интересно, ntfs поддерживает unix-style права на файлы? Или можно их с помощью ACL эмулировать? Вроде ничего такого не помню, но с другой стороны еще первые версии NT были сертифицированы на совместимость с posix 1, хардлинки точно есть, недавно вроде и софтлинки добавили.
NTFS может обеспечить сохранение подобной метаинформации и case-sensitivity, просто Windows этого не делает
Приз за правильный ответ уходит этому господину!
банальном отсутствии UNIX-прав у этих двух ФС
NTFS умеет ACL, отобразить UNIX-права на них проблем не вызовет. По поводу FAT-а — http://www.tldp.org/HOWTO/UMSDOS-HOWTO.html.
за отдельную плату могу собрать твоему умственно неполноценному другу Линукс, устанавливающийся на ntfs
Меня больше интересует почему винда на ext4 не ставится? Спроси между делом у друга, а.
А какова будет совместимость с Windows при таких костылях?
Ну и какой смысл в этой странной затее, если в итоге с этим не сможет нормально работать этот самый Windows?
друг, который не решается ставить линукс.
не решается
не решается
не решается
не решается
Твой друг — робкое, аморфное чмо. Фу иметь таких друзей.
Почему не сделали версию линукса под нтфс?
Кстати, почему не сделали версию виндавса под ext4?
Например, отсутствием открытой спецификации. Например, микрософтовскими патентами на ФС и чрезвычайно агрессивным поведением микрософта в сфере патентов.
почему это не ставится? включи в ядре поддержку NTFS и ставь, все должно работать.
причем тут GNU/Linux? в ОП речь о Linux, т.е. «ядре» (в кавычках, потому что на самом деле это эмулятор терминала).
Меня больше интересует почему винда на ext4 не ставится? Спроси между делом у друга, а.
Драйвер для ext* эти редмондовские гандоны могли бы и поставлять «из коробки». А то вечный геморрой с флешками.
А какова будет совместимость с Windows при таких костылях?
Не хуже чем у венды с самой собой:
В самом деле, совместимость с Windows врядли будет хуже, чем у Windows :-D.
Не так интересны такие вопросы, сколько те причины, которые к ним приводят. Подозреваю то, что многие пользователи не знают о том, что жёсткие диски и Flash память можно переформатировать и разбивать на новые разделы по-новому. А отсюда и могут возникать такие вопросы. Ведь, если человек исходит из той предпосылки, что у него носитель информации с разделом в NTFS и с этим уже ничего не поделать, то ему и становится интересно то, что можно сделать именно с этим. Но, возможны и другие варианты, да.
Почему не сделали версию линукса под нтфс?
Не сделали потому что на нашлось желающих это сделать бесплатно и/или кто готов это профинансировать.
Потому что ему стрёмно иметь дело с неполноценными файловыми системами.
Чем же она неполноценна то?)
Например, патамучшта надо иметь маппер GUID UID где-то в ядре, сама ФС закрыта, и всё реверсинжинирят, а значит стабильности нифига не будет.
А почему мастдайка не ставится на reiserfs? Что за нафиг?
ФС женоубийцы?! Нет пути!
Даже тот, что через fuse не умеет хардлинки и еще какие-то плюшки.
Но все равно: система доступа NTFS не позволит ее в линуксе использовать.
Вау. Не знал о таком синтаксисе.
Самая кошерная ФС! У меня практически везде reiserfs.
Он говорит — это риторический вопрос
У меня практически везде reiserfs
У меня раньше тоже так было ещё с тех времён, когда в Debian’е не было ext3/ext4. Однако, практика потом показала, что в случае чего с fsck проблем меньше именно в случае ext2/ext3/ext4. А бывают и такие ситуации, что, например, локальное зеркало CentOS’а на разделе в reiserfs’е, свежеустановленный минимальный CentOS ничего не знает про reiserfs, нужно доустановить модуль из локального репозитория, который без него не доступен. А вот в случае локального репозитория на ext2/ext3/ext4 таких проблем не возникает.
У меня на Dingoo A320 Dingux как раз на FAT32 лежит.
Источник