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

Файловые системы в Linux имеют огромное значение. Если говорить грубо — все что вы видите в Linux представлено в виде файлов. Поэтому очень важно понимать устройство ФС и знать инструменты предназначенные для работы с ней.

Устройство файловой системы в Linux значительно отличается от того, что вы привыкли видеть в Windows. Например, в Linux нет таких понятий как устройство A: C: и т.д. В Linux, кроме стандартных файла и директории, существует большое количество дополнительных типов файлов, которые вы никогда не встретите в Windows.

Начнём с самого понятия — Файловая система. Обратите внимание на то, что я написал это с большой буквы! Файловой системой мы будем называть то, что видят программы, работающие в Linux. Файловая система может быть только одна, она начинается с корневой директории, обозначаемой символом /. Но Файловая Система может состоять из кусочков — физических файловых систем, которые могут физически находится на различных носителях: винчестер, CD/DVD, сетевая ФС и т.п. Программам, работающим на компьютере, абсолютно все равно из каких кусков состоит Файловая система, они об этом не знают.

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

После старта Linux Файловая система состоит только из одной файловой системы, на которой физически располагается корень ФС (/). Эта файловая система называется корневой. Все остальные физические ФС программам не доступны. Помните, программы видят только Файловую систему с Большой буквы Фэ? Для того, чтобы воспользоваться другими ФС, администратор должен их подключить к Файловой системе.

Давайте я опишу Файловую систему на примере лоскутного одеяла. Вы все прекрасно знаете или хотя бы представляете как выглядит такое одеяло. Оно состоит из лоскутков ткани, которые пришиваются друг к другу. Итого — это одеяло, оно больше, тёплое, уютное. Но физически оно сшито из разных лоскутков. Точно так же Файловая система. Она одна, большая, уютная, в ней есть файлы (так ее видят программы). Но она, как и лоскутное одеяло, собрана из кусочков — физических файловых систем (так ее видят администраторы).

Для того, что бы воспользоваться физической файловой системой, администратор должен её «пришить» к Файловой системе. Официально эта операция называется монтированием (подключением) файловой системы. Физическая ФС монтируется к точке монтирования (mount point). В качестве такой точки может использоваться любая существующая директория. После подключения физической файловой системы, все файлы, которые физически находятся в ней, будут видны в директории, куда была подключена ФС.

Предположим, что существую два раздела на диске. С точки зрения Windows это разделы C: и D:. Корневая файловая система (/) расположена на С:. На D: расположен файл с именем file.txt. После старта, Linux видит только корневую файловую систему. Для того, что бы программы смогли воспользоваться физической файловой системой, расположенной на D:, эту ФС необходимо подключить. Предположим, что в корневой файловой системе создана директория /dir и файловая система D: подключена к этой директории. Тогда, для того, что бы добраться до файла file.txt необходимо написать такой путь: /dir/file.txt. Т.е. нельзя обратиться к файлу напрямую, как это принято в Windows: D:\file.txt. Необходимо сначала подключить файловую систему, и только после этого программы смогут получить доступ к файлам, хранящимся на ней.

Подключать приходится любую файловую систему расположенную на: диске, CD/DVD, сетевую, виртуальную и т.п.