11

Представьте, что я отформатировал корень с файловой системой ext3 в отдельном разделе, который существует на жестком диске SATA, а домашний каталог - в другом разделе btrfs, который существует на твердотельном диске Intel.

Я скачал файл из Интернета и временно сохранил его в /tmp (в корневой файловой системе), затем решил переместить его в свой домашний каталог (второй раздел).

Я чувствую болезненный процесс, который происходит в фоновом режиме, чтобы заставить работать такую простую команду mv .

Итак, во-первых, возможно ли, чтобы root и home имели разные файловые системы? Во-вторых, предполагая, что ответ на предыдущий вопрос был "да", как ОС управляет всем этим переходом от ext3 к btrfs а затем использует разные драйверы устройств для разных типов дисков (HDD и SSD)?

2 ответа2

25

Ответ - да, вы можете иметь любой каталог на любом устройстве с любой файловой системой, которую поддерживает ОС.

Таким образом, вы можете иметь / /var /home /opt и даже /home/afr0ck на разных устройствах, разных разделах, разных файловых системах.

Не только вы, но это распространено. Например, всегда рекомендуется хранить /var и /home на разных разделах / как они, скорее всего, непреднамеренно потребляют дисковое пространство - если они заполняются, это не слишком сильно влияет на систему. Если они находятся в том же разделе, что и root, это может привести к остановке системы.

И вы можете захотеть, чтобы разные каталоги работали на разных устройствах по соображениям скорости. И использовать разные файловые системы для разных целей. Например, возможно, ext4 - это то, что вам нужно для файлов ОС, поскольку они не сильно меняются, но вы можете захотеть использовать btrfs для /home, чтобы вы могли сохранять снимки для резервных копий. Это все решения, которые могут быть приняты каждым человеком для конкретного случая использования.

Часть пользовательского пространства ОС не должна понимать различные типы устройств и файловых систем. Все, что он делает, это просит ядро переместить файл, и ядро организует все оттуда. Таким образом, команда mv (например) не зависит от типа файловой системы и устройства. Ядро вызывает любые драйверы, необходимые для чтения и записи в разные разделы.

7

Да, отдельные файловые системы (точки монтирования) могут быть разных типов файловых систем.  /proc - это всегда файловая система procfs , а /sys - это всегда sysfs .  Временные файловые системы (иногда включая /tmp) часто представляют собой tmpfs , и в настройках рабочей группы домашние каталоги пользователя (и каталоги их рабочих продуктов) обычно имеют nfs или другие удаленные (сетевые / общие) типы файловых систем.

Для ОС не требуется никакого специального управления.  До определенного уровня, на уровне пользователя, все файловые системы выглядят одинаково, в том смысле, что список ls будет выглядеть примерно одинаково в любом каталоге.  Помимо этого, файловые системы не взаимодействуют.  Даже между двумя файловыми системами (разделами) на одном физическом диске одного типа файловой системы нет никакой связи 1.  Например, перемещение файла из одной файловой системы (точки монтирования) в другую всегда включает создание копии и удаление оригинала.  Не имеет значения, являются ли они разделами на разных дисках.  Не имеет значения, является ли один из них HDD, а другой - SSD. Не имеет значения, если один ext3 и один btrfs .  Не имеет значения, является ли он внутренним (внутри корпуса компьютера), а другой - внешним (несколько дюймов снаружи, подключенным кабелем) - или удаленным (доступ по сети).

Говоря о сети, это немного аналогично ssh .  Он читает с клавиатуры и отправляет введенные вами символы в сеть.  Одновременно он читает из сети и отображает результаты на экране.

Или подумайте: представьте, что вы разговариваете по телефону, и вы посредничаете в разговоре между человеком на другом телефоне и другим человеком в комнате.  Это ничего важного.
________
1 за исключением символических ссылок - но они могут пересекать границы файловой системы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .