Файловая система Linux

Жёсткий диск

Для тех, кто привык работать только в Windows, файловая система Linux может показаться странной и непонятной. Но только до того момента, когда вы поймёте, насколько там всё просто и логично организовано.

Для начала во избежание путаницы определимся с терминологией. Диском будем называть физическое устройство для хранения данных (HDD, SSD, флешка, …), а разделом − логически выделенную и специальным образом организованную часть диска из смежных блоков, которая в Windows обычно называется диском C:, D:, …

Важное замечание. В отличие от Windows, где имена папок нечувствительны к регистру символов, в Linux это имеет значение. Файловая система Linux различает файлы readme.txt, README.txt и ReadMe.txt − это будут разные файлы, хотя Windows будет считать их одним и тем же файлом.

Любое устройство − файл!

Первое, что нужно понять, хотя с непривычки сложно: любое устройство в Unix-подобных операционных системах также является файлом. И с «точки зрения» операционной системы HDD − тоже файл. И процессор, и видеокарта, и звуковая карта, и сетевая − в общем, всё. Это может показаться нелогичным, но на самом деле есть большой плюс − унификация работы с устройствами. Если есть файл, в него можно записывать данные и из него можно читать. А теперь вспоминаем всё разнообразие драйверов в Windows, чему можно бесконечно удивляться − с каждым типом устройств нужно работать по-разному.

Файловая система Linux позволяет получить доступ к любому устройству компьютера, только следует принять во внимание, что для доступа ко многим устройствам нужны права администратора.

Но и это ещё не всё. Сложно представить файл, состоящий из файлов, но в Linux такое может быть. Например, /dev/cpu − процессор, а /dev/cpu0, /dev/cpu1 − его ядра. Аналогичная ситуация с дисковыми накопителями: /dev/sda − первый диск в системе, а /dev/sda1, /dev/sda2, … − его разделы.

Файловая структура

Файлы и папки имеют свои пути, которые можно указать относительно корневной папки / (в таком случае путь начинается со слэша /), или относительно текущей папки (путь начинается с любого иного символа).

Обращаю внимание, что нумерация разделов диска, в отличие от остальных устройств, начинается не с нуля, а с единицы.

Но это ещё не всё. В Unix-подобных системах (а это не только Linux, но и FreeBSD, и Android, и даже MacOS), в отличие от Windows, вообще нет логических дисков. Вы спросите, почему? А они там попросту не нужны − принципы организации дискового пространства там иные. Все разделы диска организованы в единую файловую структуру. В качестве примера приведу свою недавнюю установку Linux Mint на компьютер одного товарища. Всего на терабайтном диске организовано пять разделов:

  • 100 мегабайт − загрузчик UEFI.
  • 20 гигабайт − системный корневой раздел.
  • 10 гигабайт − домашние папки пользователей.
  • 10 гигабайт − раздел подкачки (виртуальная память).
  • Всё оставшееся (по факту чуть менее 900 гигабайт) − пользовательские данные.

Если вы заметили несоответствие размеров, это нормально. Дело в том, что производители жёстких дисков указывают размеры в десятичных единицах (1 килобайт = 1000 байт), а операционные системы работают с двоичными (1 килобайт = 1024 байта). И один «десятичный» терабайт соответствует примерно 0,909 «двоичного».

Единое пространство

Привычных пользователям Windows дисков, обозначаемых буквами, вы не найдёте, поскольку все дисковые разделы будут видны как отдельные папки в корневом разделе /.

Корневой (основной) раздел в обязательном порядке создаётся при установке Linux, он имеет путь /, а относительно него монтируются все остальные разделы.

При перемещении по файловой системе пользователь не замечает перехода с одного раздела в другой, поскольку они монтируются (можно сказать «подключаются», но в Linux принят именно такой термин) как локальные папки. Например, первый раздел с загрузчиком монтируется в /boot/efi, второй является корневым /, третий монтируется в /home, а последний в /mnt/userdata. На самом деле, куда монтировать данные, выбор большой и в значительной мере определяется вкусом того, кто устанавливает систему. Раздел подкачки в монтировании не нуждается. А если не создать отдельного раздела для домашних папок пользователей, они будут являться обычной папкой в корневом разделе.

Это не означает, что доступное место на диске можно использовать под любую папку. Если на раздел с домашними папками /homes выделено 10 гигабайт, то больше туда не сохранить при всём своём желании.

А если вы подключите к компьютеру флешку, она тоже будет смонтирована в папку /media/имя_пользователя/метка_флешки. И с точки зрения системы, флешка будет файлом /dev/sdb, а раздел с данными на ней − либо /dev/sdb1, либо /dev/sdb4.

То есть, файловая система Linux организована просто и логично − единая организация дисков без необходимости использования специальных обозначений в виде букв, со всем можно работать как с файлами.

Comments:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *