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

Оригинал документа на сайте: LSCS Автор: Алексей Терещенко
  • Команды mount и umount.
  • Монтирование компакт-дисков.
  • Монтирование и форматирование дискет.
  • Монтирование разделов жесткого диска: Linux-и MS-DOS-разделы.
  • Автоматическое монтирование файловых систем.
  • Сетевые файловые системы.
  • Сетевая служба NIS.
  • Создание архивов: программа tar.
  • Сжатие файлов: программа gzip.
  • Инсталляция программного обеспечения из упакованных архивов.
  • Загрузка сжатых архивов из удаленных источников.
  • Компиляция программного обеспечения.
  • Утилиты mtools: работа с файлами MS-DOS.
  • Эмуляторы DOS и Windows: DOSemu, Wine и Willow.
  • Операции управления файлами: резюме.
  • ТАБЛИЦЫ

  • Команда mount.
  • Опции команды mkfs.
  • Типы файловых систем.
  • Опции, используемые в команде mount и в файле /etc/fstab.
  • Опции файла /etc/exports.
  • Описание монтирования сeтевых файловых систем.
  • Архивы: команда tar.
  • Описание команды gzip.
  • Команды доступа к файлам MS-DOS.
  • Команды mount и umount.

    Хотя все файлы в системе Linux логически соединены в одно общее дерево, сами файлы размещаются на различных запоминающих устройствах, например на жестких дисках и CD-ROM. Файлы, записанные на запоминающих устройствах, организованы в файловые системы. Дерево каталогов в ОС Linux может охватывать несколько файловых систем, каждая из которых размещена на отдельном устройстве. Сами файлы организованы в единое файловое дерево, вершиной которого является корневой каталог. Несмотря на то что файловая система с корневым каталогом расположена в одном из разделов жесткого диска, всегда существует путь к файлам, расположенным в файловой системе, размещенной на компакт-диске.

    Файлы той или иной файловой системы остаются отделенными от дерева каталогов до тех пор, пока вы явно не присоедините их к этому дереву. В каждой файловой системе файлы организованы в отдельное дерево каталогов. Это дерево можно рассматривать как поддерево, которое необходимо присоединить к основному дереву каталогов. Например, на дискете с файлами ОС Linux - свое дерево каталогов. Это поддерево нужно присоединить к основному дереву, расположенному в разделе жесткого диска. Пока это не сделано, доступа к файлам на дискете у вас не будет.

    Присоединение файловой системы, расположенной на запоминающем устройстве, к основному дереву каталогов называется монтированном устройства. Монтирование устройства осуществляется командой mount. Для того чтобы получить возможность работать с файлами, записанными на CD-ROM, это устройство нужно сначала смонтировать. Операция монтирования предполагает присоединение дерева каталогов, находящегося на устройстве памяти, к указанному пользователем каталогу. Лишь после этого можно перейти в присоединенный каталог и обращаться к его файлам. Монтировать файловые системы может только привилегированный пользователь, root. Эта задача относится к функциям системного администратора, и обычный пользователь ее выполнять не может. Для того чтобы монтировать файловую систему, нужно войти в систему в качестве привилегированного пользователя. В табл. 7.2 перечислены различные опции команды mount.

    Команда mount принимает два аргумента: имя устройства, через которое Linux получает доступ к файловой системе, и каталог в файловой структуре, к которому присоединяется новая файловая система. Точка_монтирования - это каталог, к которому вы хотите присоединить файлы, находящиеся на запоминающем устройстве. Устройство - это специальный файл устройства, с помощью которого система получает доступ к аппаратным устройствам. Команда mount имеет следующий синтаксис:

    # mount устройство точка_монтирования

    Файлы устройств находятся в каталогах /dev и обычно имеют сокращенные имена, которые заканчиваются номером устройства. Например, fd0 может обозначать первый дисковод гибких дисков, присоединенный к системе. В Linux-системах, работающих на PC, разделы жесткого джка имеют префикс hd, за которым следует буквенный символ, обозначающий этот диск, и номер раздела. Например, hda2 обозначает второй раздел первого жесткого диска. В большинстве случаев с помощью команды man с префиксом можно получить более подробную информацию о таком устройстве. Так, команда man sd выводит страницы руководства с информацией об устройствах SCSI.

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

    # mount /dev/fd0/mydir

    Перед тем как останавливать систему, необходимо демонтировать все смонтированные файловые системы. Основные файловые системы демонтируются автоматически. Если, однако, вы хотите заменить смонтированную файловую систему другой, сначала нужно демонтировать первую явно. Скажем, вы смонтировали файлы, содержавшиеся на дискете, а теперь хотите заменить ее на другую. Для этого нужно сначала демонтировать файловую систему установленной дискеты. Файловая система демонтируется командой umount. В качестве аргументов эта команда использует имя устройства и каталог, в котором оно было смонтировано. Вот синтаксис команды umount:

    # umount устройство точка_ыонтирования

    В следующем примере демонтируется гибкий диск, смонтированный в каталоге /mydir:

    # umount /dev/fd0

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

    # umount /mydir

    Для команды umount установлено одно существенное ограничение. Нельзя демонтировать файловую систему, в которой вы работаете в настоящий момент. Если вы перейдете в какой-либо каталог файловой системы и затем попытаетесь демонтировать ее, то получите сообщение об ошибке - вас уведомят о том, что файловая система занята*. Предположим, вы смонтировали компакт-диск OpenLinux в каталог /mnt/cdrom, а затем перешли в этот каталог. Если вы решите поставить новый компакт-диск, то вам сначала придется командой umount демонтировать предыдущий. Эта попытка будет неудачной, потому что в данный момент вы находитесь в каталоге, в котором смонтирована файловая система. Сначала нужно выйти из него, и только после этого демонтировать компакт-диск.

    # mount /dev/hdc /mnt/cdrom /mnt/cdrom # umount /mnt/cdrom umount: /dev/hde: device is busy # cd /root # umount /mnt/cdrom

    Файловые системы на всех запоминающих устройствах занимают весь выделенный для них объем. Например, файловая система может занимать раздел жесткого диска размером 300 Мбайт. Файлы, инсталлируемые и создаваемые в этой файловой системе, будут занимать лишь часть пространства, а остальная часть будет свободна для новых файлов и каталогов этой системы. Определить, сколько свободного пространства имеется в файловой системе, можно с помощью команды df. Она выдает список всех файловых систем по именам устройств, сообщает их размер и точки монтирования. Команда df - очень надежный способ получить список всех разделов (лучше использовать ее, а не команду fdisk).

    $ dt Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda3 297635 169499 112764 60% / /dev/hdal 205380 182320 23060 89% /mnt/dos /dev/hdc 637986 637986 0 100% /mnt/cdrom Команду df можно использовать и для получения информации о том, к какой файловой системе относится тот или иной каталог. Для этого команду df нужно ввести с именем каталога (для текущего каталога - df .). $ df Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda3 297635 169499 112764 60% /

    Проверка работоспособности файловой системы осуществляется с помощью команды fsck. Аргументом команды является имя устройства, на котором находится файловая система. В следующем примере проверяются дискета и основной раздел жесткого диска.

    # feck /dev/fd0 # fsck /dev/hdal