- Типы файловых систем для Linux
- Жесткий диск и разделы
- Что такое файловая система?
- Типы файловых систем Linux
- Основные файловые системы
- Специальные файловые системы
- Виртуальные файловые системы
- Выводы
- Разбивка диска для установки Linux
- Немного теории
- Зачем так делать?
- Разбивка диска для Linux
- Раздел /boot
- Раздел /
- Раздел swap
- Домашний раздел — /home
- Динамическое изменение размера разделов
- Выводы
Типы файловых систем для Linux
Операционная система Windows может быть установлена только на файловую систему NTFS, поэтому обычно у пользователей не возникает вопросов какую ФС лучше использовать. Но Linux очень сильно отличается, здесь в ядро системы встроены и могут использоваться несколько файловых систем, каждая из которых оптимизирована для решения определенных задач и лучше подходит именно для них.
Новые пользователи не всегда понимают что такое раздел жесткого диска и файловая система. В нашей сегодняшней статье мы попытаемся разобраться во всех этих понятиях, рассмотрим что такое файловая система, а также рассмотрим самые распространенные типы файловых систем Linux. Но начнем с самых основ, разделов диска.
Жесткий диск и разделы
Обычно в компьютере используется один жесткий диск, но для удобства все доступное пространство разделяется на разделы, в Windows они известны как диски, в Linux же их принято называть разделами. Чтобы операционная система знала сколько разделов есть на диске и их физические границы используется таблица разделов. Она может быть двух типов — GPT или MBR. В этой статье мы не будем рассматривать ее подробно. Скажу только, что там находится метка раздела, его порядковый номер и адрес начала и конца на жестком диске.
Что такое файловая система?
Дальше больше. Чтобы на каждом разделе можно было работать с файлами и каталогами, необходима файловая система. Мы могли бы писать просто содержимое файлов на диск, но нужно еще где-то хранить данные о папках, имена файлов, их размер, адрес на жестком диске, атрибуты доступа. Всем этим занимается файловая система.
От файловой системы зависит очень многое, скорость работы с файлами, скорость записи и даже размер файлов. Также от стабильности файловой системы будет зависеть сохранность ваших файлов.
Типы файловых систем Linux
Файловые системы в Linux используются не только для работы с файлами на диске, но и для хранения данных в оперативной памяти или доступа к конфигурации ядра во время работы системы. Дальше мы рассмотрим типы файловых систем Linux, включая специальные файловые системы.
Основные файловые системы
Каждый дистрибутив Linux позволяет использовать одну из этих файловых систем, каждая из них имеет свои преимущества и недостатки. Все они включены в ядро и могут использоваться в качестве корневой файловой системы. Давайте рассмотрим каждую из них более подробно.
- Ext2, Ext3, Ext4 или Extended Filesystem — это стандартная файловая система для Linux. Она была разработана еще для Minix. Она самая стабильная из всех существующих, кодовая база изменяется очень редко и эта файловая система содержит больше всего функций. Версия ext2 была разработана уже именно для Linux и получила много улучшений. В 2001 году вышла ext3, которая добавила еще больше стабильности благодаря использованию журналирования. В 2006 была выпущена версия ext4, которая используется во всех дистрибутивах Linux до сегодняшнего дня. В ней было внесено много улучшений, в том числе увеличен максимальный размер раздела до одного экзабайта.
- JFS или Journaled File System была разработана в IBM для AIX UNIX и использовалась в качестве альтернативы для файловых систем ext. Сейчас она используется там, где необходима высокая стабильность и минимальное потребление ресурсов. При разработке файловой системы ставилась цель создать максимально эффективную файловую систему для многопроцессорных компьютеров. Также как и ext, это журналируемая файловая система, но в журнале хранятся только метаданные, что может привести к использованию старых версий файлов после сбоев.
- ReiserFS — была разработана намного позже, в качестве альтернативы ext3 с улучшенной производительностью и расширенными возможностями. Она была разработана под руководством Ганса Райзера и поддерживает только Linux. Из особенностей можно отметить динамический размер блока, что позволяет упаковывать несколько небольших файлов в один блок, что предотвращает фрагментацию и улучшает работу с небольшими файлами. Еще одно преимущество — в возможности изменять размеры разделов на лету. Но минус в некоторой нестабильности и риске потери данных при отключении энергии. Раньше ReiserFS применялась по умолчанию в SUSE Linux, но сейчас разработчики перешли на Btrfs.
- XFS — это высокопроизводительная файловая система, разработанная в Silicon Graphics для собственной операционной системы еще в 2001 году. Она изначально была рассчитана на файлы большого размера, и поддерживала диски до 2 Терабайт. Из преимуществ файловой системы можно отметить высокую скорость работы с большими файлами, отложенное выделение места, увеличение разделов на лету и незначительный размер служебной информации.
- XFS — журналируемая файловая система, однако в отличие от ext, в журнал записываются только изменения метаданных. Она используется по умолчанию в дистрибутивах на основе Red Hat. Из недостатков — это невозможность уменьшения размера, сложность восстановления данных и риск потери файлов при записи, если будет неожиданное отключение питания, поскольку большинство данных находится в памяти.
- Btrfs или B-Tree File System — это совершенно новая файловая система, которая сосредоточена на отказоустойчивости, легкости администрирования и восстановления данных. Файловая система объединяет в себе очень много новых интересных возможностей, таких как размещение на нескольких разделах, поддержка подтомов, изменение размера не лету, создание мгновенных снимков, а также высокая производительность. Но многими пользователями файловая система Btrfs считается нестабильной. Тем не менее, она уже используется как файловая система по умолчанию в OpenSUSE и SUSE Linux.
Другие файловые системы, такие как NTFS, FAT, HFS могут использоваться в Linux, но корневая файловая система linux на них не устанавливается, поскольку они для этого не предназначены.
Специальные файловые системы
Ядро Linux использует специальные файловые системы, чтобы предоставить доступ пользователю и программам к своим настройкам и информации. Наиболее часто вы будете сталкиваться с такими вариантами:
- tmpfs позволяет размещать любые пользовательские файлы в оперативной памяти компьютера. Достаточно создать блочное устройство нужного размера, затем подключить его к папке, и вы можете писать файлы в оперативную память.
- procfs — по умолчанию смонтирована в папку proc и содержит всю информацию о запущенных в системе процессах, а также самом ядре.
- sysfs — с помощью этой файловой системы вы можете задавать различные настройки ядра во время выполнения.
Виртуальные файловые системы
Не все файловые системы нужны в ядре. Существуют некоторые решения, которые можно реализовать и в пространстве пользователя. Разработчики ядра создали модуль FUSE ( filesystem in userspace), который позволяет создавать файловые системы в пространстве пользователя. К виртуальным файловым системам можно отнести ФС для шифрования и сетевые файловые системы.
- EncFS — файловая система, которая шифрует все файлы и сохраняет их в зашифрованном виде в нужную директорию. Получить доступ к расшифрованным данным можно только примонтировав файловую систему.
- Aufs (AnotherUnionFS) — позволяет объединять несколько файловых систем (папок) в одну общую.
- NFS (Network Filesystem) — позволяет примонтировать файловую систему удаленного компьютера по сети.
Таких файловых систем очень много, и мы не будем перечислять все их в данной статье. Есть даже очень экзотические варианты, обратите внимание на проект PIfs.
Выводы
В этой статье мы рассмотрели типы файловых систем Linux. Как видите, здесь все намного запутаннее чем в Windows. Но на самом деле все просто. Если вам нужна максимально стабильная файловая система linux — то лучшим решением будет ext4, хотите новых технологий — btrfs, для маленьких файлов — raiser4, для больших — XFS. А какие файловые системы linux предпочитаете вы? Напишите в комментариях!
На завершение видео о том, что такое файловая система и ее структура в linux:
Источник
Разбивка диска для установки Linux
Для установки Windows достаточно просто выбрать раздел диска. Система сама его отформатирует и установит туда все файлы. Но Linux позволяет намного гибче настроить расположение системы и ее файлов. Во время установки вы можете разместить различные папки с системными или пользовательскими файлами на разных разделах.
Это очень интересная функция, повышающая надежность системы, а также удобство ее использования. Наша сегодняшняя статья ориентирована на новичков, мы рассмотрим как нужно выполнять разбивку диска для установки linux. Поговорим зачем это нужно, какие размеры для разделов выбирать и так далее.
Немного теории
Начнем с того, что в Linux не существует дисков, таких какими мы их знаем в Windows. Здесь все намного более прозрачно. Есть разделы диска, а также существует одна корневая файловая система.
В качестве корневой файловой системы подключается выбранный вами для этого раздел, а уже к нему, в подкаталоги подключаются другие разделы. Сюда же подключаются флешки, DVD диски и другие внешние носители. Например, раздел загрузчика подключается в /boot, в качестве /sys, /proc, /dev подключаются виртуальные файловые системы ядра, а в качестве /tmp присоединяется оперативная память.
Но для пользователя все это выглядит как единая файловая система. Складывается впечатление, что все файлы находятся на корневом разделе, а не раскиданы по нескольким. Вообще говоря, можно установить Linux на один раздел, не разбивая файловую систему, но так делать не рекомендуется, ниже мы рассмотрим почему.
Зачем так делать?
У каждого из разделов своя задача. Разбивка диска для linux между несколькими разделами изолирует их один от другого. Если на одном разделе, например, домашнем закончится место, то система все еще сможет нормально работать, потому что это никак не касается корневого раздела.
Вынесение домашнего раздела также очень полезно при переустановках. Так вы сможете переустановить систему но сохранить все свои данные. Или же еще можно использовать одного пользователя в нескольких системах.
Загрузчик выносится на отдельный раздел, если файловая система вашего корневого раздела не поддерживается Grub, например, если вы используете Btrfs, xfs и т д. Также такая разбивка диска на разделы linux нужна если вы применяете технологию LVM или шифрование. Кроме того, загрузчик быстрее обнаружит свои файлы, если они будут на небольшом разделе в начале диска, а не где-то в дебрях много — гигабайтовой файловой системы.
На серверах иногда выделяются разделы /var и /usr. Это нужно опять же для изоляции и безопасности, например, вы можете запретить с помощью опции монтирования выполнение файлов с раздела /var.
Разбивка диска для Linux
В стандартной разбивке диска для Linux используется четыре раздела:
- / — корень, основной раздел для файловой системы;
- /boot — файлы загрузчика;
- /home — раздел для файлов пользователя;
- swap — раздел подкачки, для выгрузки страниц из оперативной памяти, если она будет переполнена.
Все что здесь перечислено кроме swap — это точки монтирования в файловой системе. Это значит, что указанные разделы, будут подключены в соответствующие папки в файловой системе.
Сейчас мы не будем рассматривать как выполняется разбивка диска для установки linux на практике. Все это делается в установщике в пару кликов. Но более детально остановимся на файловых системах и их размерах, чтобы вы точно знали какие значения выбирать.
Раздел /boot
Разбивка жесткого диска linux начинается с создания этого раздела. Здесь все очень просто. На этом разделе размещаются файлы настройки и модули загрузчика, которые считываются при старте Grub, а также ядро и initrd образ. Эти файлы занимают не так много пространства, около 300 Мегабайт, но в некоторых дистрибутивах здесь могут размещаться еще и темы Grub, а также со временем будут накапливаться старые версии ядер, так что лучше запастись местом и выделить 500 Мегабайт. Этого будет вполне достаточно.
Что касается файловой системы, то нам нужна самая быстрая и простая. Задача этого раздела сводится к тому, чтобы как можно быстрее выдать файлы во время загрузки. Журналирование здесь не нужно, поскольку оно только замедлит загрузку, а файлы изменяются очень редко. Поэтому наш выбор ext2.
Раздел /
Это главный раздел вашей системы. На нем будут находиться все системные файлы, и к нему будут подключаться другие разделы. Сюда же мы будем устанавливать все свои программы и игры.
Учитывая все это нужно выделить достаточное количество места. Минимальные требования, чтобы вместились все файлы из установочного диска — 8 Гигабайт. Но когда вы установите все нужные вам программы система начнет занимать около 20 Гигабайт (это без игр). С каждым обновлением размер системы будет еще увеличиваться на 200-500 мегабайт. А теперь добавьте сюда игры. Если возьмете 50 Гигабайт под корень — не ошибетесь.
Файловая система должна быть стабильной, потому что в инном случае вы рискуете потерять всю систему при неудачном выключении компьютера. А поэтому нам нужна журналируемая файловая система. Можно брать ext4, resierfs или btrfs. Сейчас последняя стала заметно стабильнее. Но строго не рекомендуется брать что-то вроде XFS, потому что она очень чувствительна к сбоям.
Но нельзя использовать ntfs или fat. Дело в том, что ядро использует некоторые особенности файловых систем для правильной работы, например, жесткие ссылки на конфигурационные файлы или система inotify для уведомления об изменениях в файловой системе. А эти файловые системы таких функций не поддерживают.
Раздел swap
Это раздел подкачки, куда будут отправляться неиспользуемые страницы памяти, если она переполнена. Также сюда записывается все содержимое памяти когда компьютер уходит в режим сна или гибернации. Конечно, раздел swap может быть размещен в виде файла на диске, как и в WIndows, но так будет работать быстрее. Размер рассчитывается очень просто, он должен быть равным количеству оперативной памяти. Файловая система специальная — swap.
Домашний раздел — /home
Это раздел для ваших файлов. Здесь будут ваши загрузки, документы, видео, музыка, а также настройки программ. Тут мало места быть не может поэтому берем все оставшееся. Файловая система так же как и для корня нужна стабильная и быстрая. Можно брать ту же ext4 или btrfs, или даже xfs, если вы уверенны что неожиданных сбоев и отключений питания быть не должно. разметка диска для linux для этого раздела выполняется в последнюю очередь.
Динамическое изменение размера разделов
Очень часто бывает, что разметка диска для установки linux уже выполнена система установлена и нормально работает, а через некоторое время мы понимаем, что места под тот или иной раздел было выделено мало. В таких случаях нас ждет долгая переразметка или даже полное удаление разделов, если вы сразу не предвидели такой вариант.
Во-первых, можно создать резервный раздел, после того, для которого в будущем может потребоваться много места, оставить 10 Гб про запас, чтобы потом не было проблем, не такая уж плохая идея.
Во-вторых, можно использовать LVM. Это виртуальная прослойка для работы с дисками в Linux, позволяющая динамически изменять размер разделов независимо от свободного места после и до них.
Выводы
Теперь вы знаете как выполняется разбивка диска linux и сможете справиться этой задачей. Правильная разбивка сэкономит вам потом очень много времени. Если у вас остались вопросы, спрашивайте в комментариях!
Источник