Настройка и работа в Linux
adb5321d

Начало пояснений


Различать разделяемые и неразделяемые файлы необходимо по следующим причинам:

  • При работе компьютера в сети (т.е. в тех случаях, когда несколько компьютеров взаимосвязаны), всегда имеется достаточно значительная доля таких данных, которые могут использоваться совместно всеми компьютерами, что позволяет экономить дисковое пространство и облегчает выполнение задач поддержки и обслуживания (task of maintenance).
  • С другой стороны при работе в сети некоторые файлы содержат информацию, которая относится только к данному компьютеру. Следовательно, эти данные не могут использоваться другими хостами и не могут быть разделяемыми (если не принять специальных мер).
  • Старые реализации файловых систем для UNIX допускали размещение разделяемых и неразделяемых файлов в одних и тех же каталогах, ограничивая тем самым возможность делать разделяемыми по сети большие части файловой системы.
  • Выделение "разделяемых" данных может использоваться, например, для:

  • монтирования (в режиме "только для чтения") раздела /usr (или части /usr) по сети (используя NFS).
  • монтирования раздела /usr (или части раздела /usr) с носителя, допускающего только чтение. CD-ROM является одним из возможных примеров того, как одна копия файловой системы может использоваться другими FHS-совместимыми файловыми системами через "сеть" некоего рода.
  • Различие между "статическими" и "изменяемыми" данными оказывает влияние на структуру файловой системы по двум основным направлениям:

  • Поскольку корневой каталог / содержит как изменяемые, так и статические данные, он должен всегда монтироваться в режиме чтения-записи.
  • Поскольку традиционно каталог /usr содержал как статические, так и изменяемые данные, и поскольку мы теперь хотим монтировать его в режиме "только для чтения" (смотри выше), необходимо найти способ монтировать /usr только для чтения. Этого можно достичь, если создать каталоговую структуру /var, которая монтируется в режиме "чтение-запись" (либо размещается в другом разделе, где разрешены как чтение, так и запись, таком, как /), а в оставшейся части структуры /usr разрешить только чтение.
  • Приведем пример того, как должны распределяться данные для того, чтобы файловая система могла считаться совместимой со стандартом FHS (еще раз повторим, что это только пример, можно привести и другие примеры того, как размещать данные для обеспечения FHS-совместимости).



    Разделяемые Неразделяемые
    Статические /usr /etc
    /opt /boot
    Изменяемые /var/mail /var/run
    /var/spool/news /var/lock

    Таблица 2.1


    В противовес изложенным соображениям, в силу которых очень многое требуется разместить в корневой каталоговой системе, стоит подумать о том, чтобы поддерживать размер корневой файловой системы настолько малым, насколько это только возможно. Желание сохранить размер корневой файловой системы разумно малым возникает по нескольким причинам:

  • Она может располагаться на носителях очень малого объема.
  • Корневая файловая система содержит много конфигурационных файлов с данными, относящимися только к данной конкретной системе. Примерами таких данных может служить ядро, которое является специфичным для данной системы, индивидуальное имя хоста и так далее. Отсюда следует, что корневая файловая система не должна быть разделяемой, то есть доступной с других компьютеров сети. Поддержание малого размера корневой файловой системы на серверах сети минимизирует количество потерь дискового пространства, возникающих из-за необходимости хранить неразделяемые по сети файлы. Кроме того, появляется возможность использовать рабочие станции с малыми по объему локальными жесткими дисками.
  • Даже если вы имеете возможность разместить корневую файловую систему в большом разделе диска, и можете заполнить ее любыми данными по своему усмотрению, стоит помнить и о том, что у некоторых людей корневой раздел имеет меньший размер. Если у вас в ней установлено много файлов, вы можете натолкнуться на несовместимость с другими системами, в которых корневая файловая система размещена в разделе меньшего объема. Если вы разработчик, тогда вы можете превратить ваше допущение в проблему для большого числа пользователей.
  • Сбои диска, вследствие которых разрушается корневая файловая система, представляют бОльшую проблему, чем сбой в любом другом разделе. Малая корневая файловая система менее подвержена разрушению в результате системных сбоев.
  • Программы или приложения никогда не должны создавать или предполагать наличие каких-то файлов или подкаталогов в корневой директории. Другие области файловой иерархии FHS предоставляют более чем достаточно места для любого пакета.

    Существует несколько причин, по которым создание нового подкаталога в корневой файловой системе запрещено:

  • Создание каталога требует выделения пространства в корневом разделе диска, а системный администратор может иметь желание поддерживать этот раздел малым и по возможности простым, либо из соображений безопасности, либо для повышения производительности.
  • Это приводит к тому, что разрушает порядок, который системный администратор заводит для того, чтобы иметь возможность устанавливать единую структуру каталогов на монтируемых томах. (It evades whatever discipline the system administrator may have set up for distributing standard file hierarchies across mountable volumes.)



  • Стандарт IEEE P1003.2 (POSIX, part 2) выдвигает требования, аналогичные сформулированным выше.

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

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




    Команда bash работает по-разному в зависимости от того, была ли она вызвана как sh или как bash. Кроме того, использование символической ссылки позволяет пользователям легко увидеть, что /bin/sh не является настоящей оболочкой Борна.

    Требование того, чтобы команды [ и test включались в этот каталог как отдельные исполняемые файлы (даже если они реализованы как встроенные команды оболочки) присутствует также в стандарте POSIX.2.




    Команды tar, gzip и cpio необходимы для восстановления системы (в предположении, что каталог / доступен).

    Если же необходимость восстановления системы из корневого раздела отсутствует (например, в случае загрузки бездисковых рабочих станций, когда каталог /usr монтируется посредством протокола NFS) эти команды могут отсутствовать и в каталоге /bin. Если восстановление системы планируется проводить по сети, то файлы программ ftp или tftp (вместе со всем, что необходимо для установления соединения по протоколу ftp) должны быть размещаться в корневом разделе диска.



    Содержание раздела