- •1. Теоретическая часть
- •1. Предварительные сведения о Linux
- •1.1. Установка в различных режимах
- •Начальная загрузка
- •1.2 Загрузка и выключение
- •1.3 Командные оболочки (shell)
- •1.4 Использование многозадачности Linux
- •1.5 Среда mc.
- •2. Структура каталогов ос Linux
- •2.1. Файловая система root
- •2.1.1. Каталог /etc
- •2.1.2. Каталог /dev
- •2.2. Файловая система /usr
- •2.5. Монтирование файловых систем
- •2.6 Доступ к файлам ms-dos
- •2.8 Программирование в ос Linux
2.5. Монтирование файловых систем
Сначала несколько концепций, связанных с файловыми системами. Прежде, чем файловая система будет принята вашей системой, она должна быть примонтирована к какому-то каталогу. Например, если у вас файловая система на дискете, то вы должны примонтировать ее в каталог, скажем /mnt, для того, чтобы обеспечить доступ к ее файлам. После монтирования файловой системы все файлы этой системы появляются в этом каталоге (и ниже). После размонтирования файловой системы каталог (в нашем случае /mnt) будет пуст, то же самое справедливо для файловой системы на жестком диске. Причем каталог /mnt будет пуст, если он был пуст до монтирования, иначе наоборот, станут видными файлы каталога /mnt (основной системы), которые становятся "невидимыми", когда к этому каталогу монтируется файловая система). Система автоматически монтирует файловые системы на ваш жесткий диск во время загрузки. Так называемая "корневая файловая система" монтируется к каталогу /. Если у вас отдельные файловые системы, например, для /usr - она монтируется на /usr. Если у вас только корневая файловая система, то все файлы, включая содержимое /usr, существуют в этой файловой системе.
Команда mount используется для монтирования файловой системы.
mount -av
Выполняется из файла /etc/rc (файла системной инициализации во время загрузки). Команда mount -av получает информацию о файловых системах и монтирует в соответствии с файлом /etc/fstab. Пример файла fstab показан ниже.
# device directory type options
/dev/hda2 / ext2 defaults
/dev/hda3 /mnt ext2 defaults
/dev/hda4 none swap sw
/proc /proc proc none
Первое поле - это устройство (имя монтируемого раздела). Например, /dev/hda2 – соответствует второму разделу жесткого диска. Имя файла hda2 расшифровывается следующим образом: hd (hard disk) – означает жесткий диск, a – означает канал IDE, на котором находится ваш диск, 2- означает номер раздела. Второе поле - точка монтирования. Третье поле - тип файловой системы (например, ext2 для системы типа ext2fs или minix для Minix filesystems).
Не все эти типы могут быть доступны на вашей системе; ваше ядро должно иметь соответствующую откомпилированную поддержку.
Последнее поле файла fstab (options) содержит опции монтирования, обычно они устанавливаются в ``defaults''.
Вы можете видеть, что разделы своппинга также включены в /etc/fstab. Они имеют каталог монтирования "tt/none/", и тип "swap". Команда swapon -a выполняемая из /etc/rc используется для обеспечения своппинга на все устройства, перечисленные в /etc/fstab.
Файл fstab содержит одну специальную запись для файловой системы /proc. Файловая система /proc используется для хранения информации о системных процессах, доступной памяти и т.п. Если /proc не примонтирован, такие команды, как ps не будут работать.
Внимание! Команда mount может использоваться только root. Это для обеспечения безопасности системы. Вам не захочется, чтобы монтирование и размонтирование файловых систем зависело от прихоти рядовых пользователей. Есть несколько программных пакетов, которые дают возможность тем самым рядовым пользователям монтировать и размонтировать файловые системы (особенно на дискетах) не затрагивая безопасности системы.
Таким образом, команда mount -av фактически монтирует все файловые системы, кроме корневой файловой системы. Корневая файловая система автоматически монтируется ядром во время загрузки. Вместо использования mount -av вы можете примонтировать файловую систему вручную. Команда
# mount –t ext2 /dev/hda3 /mnt
эквивалентна монтированию файловой системы на /dev/hda3 в примере fstab, рассмотренном ранее. В данном случае команде mount передается три параметра ext2, /dev/hda3 и /usr - которые содержат соответственно тип файловой системы, файл устройства, на котором располагается файловая система и точка монтирования. Как правило, обычно бывает достаточно указать два параметра: файл устройства и точка монтирования.
Обычно пользователю не приходится монтировать и размонтировать файловые системы вручную. Команда mount -av в /etc/rc позаботится о монтировании файловых систем во время загрузки. Файловые системы автоматически размонтируются командами shutdown или halt перед выключением системы.
В файле /etc/mtab хранится информация о том, какие файловые системы сейчас смонтированы и с какими параметрами монтирования это было сделано. Данные о смонтированных файловых системах содержатся также в файле /proc/mounts (и там они точнее, поскольку отображают соответствующую внутреннюю таблицу ядра), но параметров, с которыми эти системы были смонтированы, в нем нет, поскольку они в ядре не хранятся (а те из них, которые интерпретируются программой mount, вообще не доходят до ядра), поэтому /etc/mtab также находит применение.
Как уже было сказано, монтирование файловых систем выполняется командой mount, а их размонтирование - командой unmount (в некоторых системах umount). Исключение составляет корневая файловая система, которая обслуживается отдельно и до всех остальных систем. Действительно, только при ее наличии становятся доступными и сама команда mount, и каталог /dev, где находятся файлы устройств, и подкаталоги для монтирования. Чтобы файловые системы можно было монтировать при запуске ОС и размонтировать при ее остановке, используются два файла, которые традиционно размещаются в подкаталоге /etc: /etc/fstab и /etc/mtab. Файл /etc/fstab содержит список файловых систем, которые могут быть смонтированы. Конечно, необходимые параметры всегда можно указать при вызове команды mount, но гораздо удобнее, когда они извлекаются из файла.
Каждой точке монтирования в нем соответствует одна строка, состоящая из шести полей: название устройства, на котором расположена файловая система, точка монтирования, тип файловой системы, параметры монтирования, "уровень дампа" и порядковый номер файловой системы для программы fsck.
Примеры монтирования и размонтирования:
$ mount /dev/hda2 /home
$ umount /home
