- Linux файловые системы внешних жестких дисков
- 2. Внешние HDD с файловой системой ext2
- 3. Внешние жесткие диски, отформатированные в NTFS
- 4. Универсальный вариант: ext2 + FAT32
- Выбираем файловую систему независимую от ОС
- Файловые системы Linux в 2020 году: плюсы, минусы, подводные камни
- BtrFS
- OpenZFS/ZFS
- Что вам стоит использовать?
Linux файловые системы внешних жестких дисков
Многие уже привыкли использовать внешний жесткий диск (HDD) с разъемом USB чтобы хранить данные и переносить их с компьютера на компьютер (в случае, если нет возможности передать их по сети). После покупки фирменного внешнего жесткого диска в магазине (например, от Western Digital и др.) Вы, как правило, обнаружите, что он уже отформатирован в файловой системе FAT32.
В этом случае подключение и работа с ним как в GNU/Linux, так и в MS Windows не представляет никакой трудности и аналогична подключению внешней флешки. Как в MS Windows, так и в GNU/Linux с графической средой KDE такой жесткий диск даже будет автоматически подмонтирован и доступен для чтения и записи. В MS Windows появится новая буква устройства, в GNU/Linux в KDE диск будет подмонтирован в директорию media:/. Важно лишь при окончании работы (как и при работе с флешкой) не забывать отмонтировать внешний HDD, прежде, чем физически отсоединить его от компьютера.
Единственный, но существенный недостаток файловой системы FAT32 в том, что она не позволяет записывать на диск файлы размером более 4 Гб. А иногда имеется потребность в записи таких файлов — например, образов DVD-дисков (4.4 Гб).
Решение этой проблемы связано с использованием других файловых систем на внешнем HDD. Сложность заключается в том, что эти файловые системы «по умолчанию», без установки дополнительных драйверов, поддерживаются компьютерами или только с GNU/Linux, или только с MS Windows. Поэтому или на тех, или на других компьютерах придется устанавливать дополнительный драйвер для работы с «неродной» файловой системой.
2. Внешние HDD с файловой системой ext2
При работе в GNU/Linux эта проблема файлов размером более 4 Гб решается очень просто — жесткий диск форматируется в традиционной для этой ОС файловой системе ext2. (Форматирование в GNU/Linux можно осуществить с помощью программы gparted, имеющей графический интерфейс). При форматировании имеет смысл задать метку для раздела диска — например, external-hdd. После форматирования на диске будет присутствовать служебная директория lost+found, в которую помещаются данные в случае сбоя в работе с диском.
Отформатированный таким образом внешний HDD также будет автоматически подмонтироваться при работе в GNU/Linux в графической среде KDE.
Желательно сразу после форматирования диска сделать его корневую директорию доступной для чтения и записи не только суперпользователю, но вообще всем пользователям как этого, так и других компьютеров. В случае, если Вы работаете в графической среде KDE и у Вас функционирует автомонтирование внешних дисков, до достаточно лишь вынуть шнур USB и опять подключить его. Через пару секунд система покажет, что она автоматически подмонтировала внешний диск в директорию media:/label, где label — метка раздела, которая задана при форматировании. Диск из нашего примера будет виден как media:/external-hdd. В действительности это означает, что диск автоматически подмонтирован в директорию /media/label, в нашем случае — /media/external-hdd. Значит, надо изменить права доступа для этой директории. В режиме суперпользователя даем команду:
После этого как на данном компьютере, так и на других компьютерах диск будет доступен для чтения и записи для всех пользователей.
Чтобы работать с этим диском в режиме чтения и записи с компьютера, на котором установлена операционная система MS Windows, необходимо на нем установить специальный драйвер. С помощью драйвера MS Windows будет работать с внешним HDD в ext2 точно также, как с дисками, отформатированными в «родных» файловых системах — т.е. присвоит ему определенную букву и т.д.
3. Внешние жесткие диски, отформатированные в NTFS
В случае, если на внешнем жестком диске используется «родная» для MS Windows файловая система NTFS (например, когда диск подключается преимущественно к компьютерам с MS Windows), то дополнительный драйвер — ntfs-3g — нужно установить на компьютере с GNU/Linux. При работе с Debian Lenny преимуществом является то, что этот драйвер имеется в составе репозитория дистрибутива (список дистрибутивов, в которых идет этот драйвер, см. здесь). Для установки переходим в режим суперпользователя и даем команду: После чего инсталлируем его с сетевого репозитория или с диска дистирбутива.
Далее после подключения внешнего USB-диска к компьютеру с GNU/Linux можно убедиться, что ОС его видит, дав команду В выводе команды будет присутствовать устройство с названием производителя, например: Впрочем, это делать необязательно.
Должна быть заранее создана директория на файловой системе компьютера (т.е. на его внутреннем жестком диске), к которой будет подмонтирован внешний жесткий диск, например /mnt/hdd. Желательно открыть доступ к ней для простых пользователей режиме и чтения, и записи. Все это можно сделать командами в режиме суперпользователя: — создание директории, и — обеспечение доступа к ней в режиме чтения / записи всех пользователей.
Для подмонтирования внешнего жесткого диска переходим в режим суперпользователя и даем команду: В этом примере внешний диск представляет собой устройство /dev/sda1. Если внених USB-дисков подключено несколько, то это может быть /dev/sda2 и т.д.
Встает важный вопрос: как узнать буквенное обозначение внешнего USB-диска? Проще всего это сделать командой (из-под суперпользователя) В результате получим список всех разделов всех подключенных к компьютеру дисков. Например: Вначале идет внутренний жесткий диск помпьютера /dev/hda и его разделы — /dev/hda1, /dev/hda2 и т.д. На них на всех файловая система Linux, т.е. ext3. Диск, который нас интересует — внешний USB размером 120 Гб, обозначенный как /dev/sda. На нем только один раздел — /dev/sda1, который мы и монтируем в директорию /mnt/hdd. В том, что это нужный нам раздел, убеждает нас его идентификация системой как раздела типа «HPFS/NTFS».
Для корректного окончания работы с внешним диском его необходимо отмонтировать — также в режиме суперпользователя: После этого диск можно отключать от компьютера.
4. Универсальный вариант: ext2 + FAT32
Как видно из вышеизложенного, при использовании и ext2, и NTFS приходится доставлять дополнительные драйвера на альтернативную операционную систему. Возникают две основных вопроса:
- Какую файловую систему на жестком диске предпочесть (ext2 или NTFS)?
- Как добиться того, чтобы драйвер был доступен в момент подключения диска?
1. Ответ на первый вопрос зависит не только от того, в какой ОС Вы работаете больше: в GNU/Linux или MS Windows. Он зависит еще и от того, в какой системе у Вас будет возможность установить драйвер. GNU/Linux, как ориентированная на максимальную безопасность, не позволяет это сделать обычному пользователю, а только в режиме суперпользователя — но Вы не всегда можете знать пароль рута. В то же время, в MS Windows довольно часто бывает, что простой пользователь работает с правами администратора.
Поэтому в общем случае лучше исходить из того, что используется файловая система ext2, а драйвер будет установлен под MS Windows. Это обеспечит и большее удобство работы с диском в родной GNU/Linux.
2. Драйвер, конечно, можно носить с собой на дополнительной флешке, которая имеет FAT32 и корректно распознается в любой ОСи. Однако более правильной будет следующая схема: на внешнем жестком диске выделяется небольшой раздел (например, 512 Мб или 1 Гб), который форматируется в другой файловой системе — в FAT32. На него копируется нужный драйвер. Тогда в MS Windows драйвер будет всегда доступен с этого альтернативного раздела.
Пример. Пусть принято решение форматировать внешний HDD размером 120 Гб в файловой системе ext2. Создадим на нем раздел в этой файловой системе размером 119 Гб (при этом присвоим ему метку hdd-ext2, а затем сменим права, чтобы дать полный доступ для всех, т.е. на «777»). Оставшееся место (примерно 1 Гб) выделим под раздел с FAT32 (с меткой, например, hdd-fat). После форматирования войдем из-под GNU/Linux в раздел с FAT32 и скопируем туда скопируем драйвер, позволяющий из MS Windows работать с файловой системой ext2.
При кодключении такого диска к компьютеру с GNU/Linux в графической среде KDE автоматически будут подмонтированы оба раздела — соответственно, как media:/hdd-ext2 и media:/hdd-fat. Основным разделом для хранения данных будет первый раздел, составляющий 99% от емкости диска; второй же будет использоваться для постоянного хранения драйвера для альтернативной операционной системы, но потеря невелика — ведь там всего 1% от дискового пространства.
При первом подключении к компьютеру с MS Windows будет виден только маленький раздел в FAT32 — но он позволяет установить в системе драйвер для ext2, который находится на нем. После установки драйвера из MS Windows будет виден и второй — больший — раздел с ext2 на жестком диске, который и является основным для передачи данных между компьютерами с GNU/Linux и MS Windows.
Источник
Выбираем файловую систему независимую от ОС
Всем привет. Недавно я задался вопросом как организовать обмен файлами между операционными системами. Предположим, я хочу установить сразу три основные ос на своём ноутбуке: линукс, виндовз и хакинтош. Каждая ос предназначается для своих задач: Линукс — для работы и программирования, винда — для игр и хак — просто для разных экспериментов.
Поскольку я создаю обучающие видео ролики о линуксе, мне удобнее работать именно на нём. Но монтировать хочется попробовать в «финальном вырезе». Уж очень мне приглянулась идея магнитной ленты времени.
Так вот, задача стоит такая: нужен раздел на системном накопителе, причём с такой файловой системой, которая поддерживается на чтение и запись всеми перечисленными операционками. На этом разделе будут храниться скачанные из интернета файлы и меж-операционные проекты.
Как такая задача решалась мной раньше? Раньше я использовал только винду с линуксом, поэтому задачи обмена с 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.
Источник
Файловые системы Linux в 2020 году: плюсы, минусы, подводные камни
Как вы знаете, перед установкой любой операционной системы Linux вам нужно отформатировать жесткий диск и выбрать наиболее предпочтительную файловую систему. Тут у нас, в 2020, в фаворитах ходит EXT4, и она кажется лучшим вариантом из возможных, но давайте рассмотрим альтернативы, прежде чем слепо отказываться от них?
«Fourth Extended Filesystem», что дословно переводится как «Четвертая расширенная файловая система» полностью обратно совместима с EXT2 и EXT3 и считается стандартом для большинства дистрибутивов Linux, оставаясь такой же популярной, как и ее предшественники.
На сегодняшний день это один из самых безопасных и стабильных вариантов, поскольку он поддерживает ведение журнала, предотвращая (насколько это возможно) потерю данных после сбоя системы или потери питания.
Двумя мощнейшими функциями EXT4 являются так называемые «экстенты» и «отложенное распределение», которые разумно управляют тем, как данные записываются на носитель, для повышения производительности и уменьшения фрагментации.
BtrFS
«b-tree file system» изначально была разработана Oracle и продолжает расти в популярности, так что многие считают ее истинным преемником династии EXT.
Btrfs поставляется с расширенными функциями, такими как автоматическая дефрагментация и прозрачное сжатие. Он следует принципу копирования при записи, сохраняя новые итерации данных и метаданных вместо того, чтобы воздействовать на существующие («теневое копирование»). Это также позволяет делать снимки различных состояний файловой системы, а также легко реплицировать, переносить и инкрементировать резервные копии. Оперативные и автономные проверки файловой системы еще больше снижают вероятность потери данных.
Отдельно стоит отметить, что BtrFS весьма SSD-френдли, поскольку она автоматически отключает свои функции, которые полезны для механических жестких дисков, но могут изнашивать SSD.
XFS была создана Silicon Graphics почти три десятилетия назад для их графических рабочих станций, специализирующихся на рендеринге 3D-графики.
Вот почему XFS остается одним из лучших вариантов для систем, которые постоянно читают и записывают данные. Благодаря использованию «групп размещения» — частей файловой системы, которые содержат свои собственные индексные дескрипторы и свободное пространство — возможно параллельное чтение и запись данных несколькими потоками одновременно. Поддержка отложенного размещения, динамически распределяемых инодов и усовершенствованных алгоритмов упреждающего чтения помогает достичь превосходной производительности, особенно в больших пулах хранения размером до сотен терабайт.
Однако, её поддержка журналирования ограничена, особенно если сравнивать с более современными альтернативами, и, возможно, она более склонна к потере данных. Также плохо масштабируется для более типичных повседневных и, в основном, однопоточных сценариев, например, при удалении нескольких фотографий из папки «Изображения». Другими словами, это история про настройку собственного дата-центра, а не обычной домашней машины.
Одна из (относительно) более новых файловых систем, «Flash-Friendly File System», как следует из самого названия, является одним из лучших вариантов для использования с хранилищем на основе флешь-памяти.
Изначально созданный для этой цели компанией Samsung, F2FS разбивает носитель на более мелкие части, которые в свою очередь делит на еще более мелкие части, которые в свою очередь делит, ну вы поняли. А дальше она старается использовать множество этих зон вместо повторного использования одних и тех же. В сочетании с поддержкой TRIM / FITRIM это делает её более удобной для флешь-носителей с ограниченным числом операций записи.
Нет смысла углубляться в возможности F2FS, потому что, если речь идет об использовании с обычными носителями, она – абсолютно заурядная заурядность, не выделяющаяся ни в отношении скорости, ни в отношении безопасности, и любая другая файловая система предложит вам набор функций получше. Хотя, стоит отметить, что дискуссия принимает совершенно другой оборот, когда речь заходит за флешь-хранилища, для которых она и разрабатывалась.
OpenZFS/ZFS
OpenZFS — это ветвь файловой системы Zettabyte (ZFS), которая изначально появилась в Solaris от Sun. До 2010 года ZFS можно было использовать в Linux в основном через FUSE из-за проблем с лицензированием. После 2010 года началась разработка опенсорсной версии, а уже к 2016 году Ubuntu включила ее поддержку по умолчанию. С тех пор, когда люди ссылаются на «ZFS», они обычно имеют ввиду именно эту ветку, вместо Solaris ZFS — который также продолжает развиваться, но идет по параллельному пути.
ZFS отличается от всех альтернатив тем, что сочетает файловую систему с менеджером томов. По этой причине он управляет не только файлами и каталогами, но и физическими носителями, на которых они находятся. Благодаря этому каждое устройство хранения может быть назначено пулу, который обрабатывается как один ресурс. Если вам не хватает места, вы можете добавить новое хранилище в этот пул, чтобы расширить его, позволяя ZFS позаботиться о деталях.
ZFS также следует принципу copy-on-write, так называемого, копирования при записи, где вместо изменения существующих данных он сохраняет только изменения («дельты») между старой и новой версиями. Это обеспечивает прозрачное, интеллектуальное хранение нескольких копий данных, не занимая много места, которое может работать как резервное копирование или снэпшоты. Пользователь может откатиться к предыдущим состояниям файловой системы, отменить изменения или наоборот: перенести все изменения в клоны существующих данных.
Это некоторые из функций, которые помогают практически исключить любую возможность потери данных — по крайней мере, в теории.
Журналируемая файловая система от IBM была одной из первых файловых систем, которая поддерживала журналирование, что привело к снижению вероятности потери данных. Она использует экстенты, как и многие другие современные альтернативы, а также группы размещения, такие как XFS, с целью обеспечения высокой производительности чтения / записи.
Не отдавая предпочтения какой-либо одной функции, она отлично подходит для различных задач при разных нагрузках.
К сожалению, это также означает, что она не является превосходной ни в одной. Кроме того, есть кое-какие проблемы, которые негативно влияют на оценку пользователей при выборе файловой системы для своего хранилища. Например, она может отложить обновление своего журнала на неопределенное время, увеличивая вероятность потери данных и почти сводя на нет тот факт, что это файловая система журналирования. Лучше параллельные записи, которые наиболее полезны для серверов и больших баз данных, но работают хуже, чем EXT4 в более популярных сценариях использования настольных компьютеров.
Это, вероятно, причины, по которым она не так популярна, как другие файловые системы, которые либо быстрее работают, либо лучше защищают данные от потери.
Что вам стоит использовать?
Существует причина, по которой EXT4 является дефолтным выбором для большинства дистрибутивов Linux. Она проверена, протестирована, стабильна, отлично работает и широко поддерживается. Если вы ищете стабильность, EXT4 — лучшая файловая система Linux для вас.
Если вы не боитесь иметь дело с несколько менее зрелой экосистемой, вам стоит также рассмотреть BtrFS.
Для использования на сервере, где вы хотите полностью исключить любую возможность потери данных, там, где стабильность – второе имя, вам стоит попробовать ZFS. Впрочем, чтобы смочь использовать ее на всю катушку, вам придется уйти в чтение с головой.
Для флэш-носителей F2FS является лучшим вариантом, это даже не обсуждается.
Какую бы файловую систему вы ни выбрали, не забудьте заранее полностью стереть ваш жесткий диск, если вы хотите сделать его существующий контент практически не восстанавливаемым.
Не забывайте использовать комментарии, чтобы высказать ваше ценное мнение по поводу файловых систем и статьи в общем.
Источник