2004 г
Основы операционной системы UNIX
Copyleft (no c) - 1996-2004
В. Кравчук,
OpenXS Initiative, идея, составление, перевод, примеры
Назад Оглавление Вперёд
Управление файловой системой
Основными задачами администрирования файловых систем являются создание,
монтирование и демонтирование физических файловых систем, а также проверка их
целостности. В следующих подразделах мы рассмотрим соответствующие команды и
обобщенно опишем выполняемые ими действия.
Команда mkfs создает файловую систему путем записи на указанное устройство
(необходимо указать специальное символьное устройство). Файловая система создается
на основе указанных в командной строке типа файловой системы (ТипФС),
специфических_опций и операндов. Команда имеет следующий синтаксис:
-
mkfs [-F ТипФС][-V][-m] [-o специфические_опции]
устройство размер [операнды]
Специфические опции и операнды зависят от конкретного типа создаваемой файловой
системы. Их можно посмотреть на соответствующей странице справочного руководства
(например, man mkfs_ufs для файловой системы ufs).
Основные опции и параметры команды mkfs представлены в табл. 14.
Таблица 14. Основные опции и параметры команды mkfs
Опция |
Назначение |
-F |
Указывает тип файловой системы, которую необходимо создать. Тип
файловой системы должен быть либо указан здесь, либо находится в файле
таблицы стандартных файловых систем (/etc/vfstab в SVR4, /etc/fstab в
других версиях UNIX) путем сопоставления устройства с записью в
таблице. |
-V |
Выдает результирующую командную строку, но не выполняет команду.
Командная строка генерируется с использованием опций и аргументов,
указанных пользователем, путем добавления к ним информации, взятой из
таблицы стандартных файловых систем. Эта опция используется для
проверки правильности командной строки. |
-m |
Возвращает командную строку, использованную для создания файловой
системы. Файловая система должна уже существовать. Эта опция
обеспечивает средства получения команды, использованной при создании
файловой системы. Для нее не применимы специфические_опции, размер
и операнды. |
-o |
Задает опции, специфические для указанного типа физической файловой
системы. |
устройство |
Задает специальное символьное устройство, на котором будет создана
файловая система. |
размер |
Задает количество 512-байтовых блоков в файловой системе. Максимальный
размер многих физических файловых систем в UNIX - 4194304 блока
размером 512 байт (или 2 Гбайта). |
Программа fsck ищет и, автоматически или в интерактивном режиме, исправляет
противоречия в файловых системах. Если файловая система находится в несогласованном
состоянии, которое нельзя однозначно исправить, у пользователя спрашивают
подтверждения перед попыткой выполнить каждое исправление. Следует иметь в виду,
что некоторые исправления приводят к определенным потерям данных. Объем и
серьезность потери данных можно определить по диагностическому сообщению.
Стандартным действием при каждом исправлении является ожидание от пользователя
утвердительного (yes) или отрицательного (no) ответа.
При использовании fsck файловая система должна быть неактивной (размонтирована или
смонтирована только для чтения). Если это невозможно, необходимо обеспечить, чтобы
машина находилась в состоянии покоя (без работающих пользователей) и чтобы сразу
после завершения команды она была перезагружена, если исправляется критическая
файловая система, например, корневая.
Команда fsck имеет следующий синтаксис:
-
fsck [-F ТипФС] [-V] [-m] [устройство ...]
fsck [-F ТипФС] [-V] [-o специфические_опции] [устройство ...]
Основные опции и параметры команды fsck представлены в табл. 15.
Таблица 15. Основные опции команды fsck
Опция |
Назначение |
-F |
Задает тип проверяемой файловой системы. Если тип не указан, команда
обращается к таблице стандартных файловых систем. |
-V |
Выдает результирующую командную строку, но не выполняет команду.
Командная строка генерируется с использованием опций и аргументов,
указанных пользователем, путем добавления к ним информации, взятой из
таблицы стандартных файловых систем. |
-m |
Проверять, но не восстанавливать. Эта опция позволяет проверить, может ли
файловая система быть смонтирована. |
-o |
Позволяет задать опции, специфические для типа файловой системы. |
Для работы команде fsck необходимо указывать специальное символьное устройство.
Корневая файловая система обычно проверяется при запуске автоматически. Система при
запуске может автоматически проверять и другие физические файловые системы, для
которых в таблице стандартных файловых систем указана необходимость такой проверки.
Эта проверка может вестись параллельно, путем запуска отдельного процесса fsck для
каждой проверяемой файловой системы с одним и тем же порядковым номером проверки.
Параллельно имеет смысл проверять файловые системы, расположенные на разных
физических дисках.
Физические файловые системы, кроме корневой (/), считаются съемными (removable)
в том смысле, что они могут быть как доступны для пользователей, так и не доступны.
Команда mount уведомляет систему, что блочное устройство или удаленный ресурс
доступны для пользователей в точке_монтирования, которая уже должна существовать;
точка монтирования становится именем корня вновь смонтированного устройства или
ресурса. Говорят, что эта команда монтирует или подключает физическую файловую
систему или ресурс к общей логической файловой системе.
Команда mount имеет следующий синтаксис:
-
mount [-v | -p]
mount [-F ТипФС] [-V] [-o специфические_опции]
{устройство|точка_монтирования}
mount [-F ТипФС] [-V] [-o специфические_опции]
устройство точка_монтирования}
Команда mount, при вызове с аргументами, проверяет все аргументы, за исключением
устройства, и вызывает специфический модуль монтирования для указанного типа
файловой системы. При вызове без аргументов mount выдает список всех
смонтированных файловых систем из соответствующей таблицы. При вызове с неполным
списком аргументов (например, только с указанием устройства или
точки_монтирования, или когда указаны оба эти аргумента, но не задан тип файловой
системы), mount будет просматривать таблицу стандартных файловых систем в поисках
недостающих аргументов. Затем она вызывает специфический модуль монтирования для
соответствующего типа файловой системы.
Специфические опции монтирования зависят от типа физической файловой системы. Все
физические файловые системы можно монтировать только для чтения (-o ro).
Обратная процедура по отношению к монтированию называется демонтированием и
выполняется командой umount со следующим синтаксисом:
-
umount [-V] [-o специфические_опции]
{устройство|точка_монтирования}
Для большинства типов файловых систем нет специфического модуля демонтирования.
Если такой модуль существует, он выполняется; иначе файловая система демонтируется
стандартным модулем.
Команды mount и umount воспринимают следующие основные
опции:
- -v
-
Выдает результаты в "новом" стиле. При этом дополнительно отображается тип
файловой системы и флаги. Поля точка_монтирования и устройство
переставлены.
- -p
-
Выдает список смонтированных файловых систем в формате таблицы
смонтированных файловых систем.
- -F
-
Задает тип файловой системы для монтирования. Тип файловой системы должен
быть либо задан, либо определяется по таблице стандартных файловых систем
в ходе монтирования.
- -V
-
Выдает результирующую командную строку, но не выполняет команду. Командная
строка генерируется с использованием опций и аргументов, указанных
пользователем, путем добавления к ним, при необходимости, информации, взятой
из таблицы стандартных файловых систем.
- -o
-
Задает специфические опции для указанного типа физической файловой системы.
Любой пользователь может вызывать команду mount для получения списка
смонтированных файловых систем и ресурсов. Например:
[kravchuk@arturo 13:05:48 /]$ mount -p
/dev/dsk/c1t0d0s0 - / ufs - no
rw,intr,largefiles,logging,onerror=panic,suid,dev=740040
/dev/dsk/c1t0d0s3 - /usr ufs - no
rw,intr,largefiles,logging,onerror=panic,suid,dev=740043
/dev/dsk/c1t0d0p0:boot - /boot pcfs - no rw,nohidden,nofoldcase,dev=763050
/proc - /proc proc - no dev=2c00000
fd - /dev/fd fd - no rw,suid,dev=2cc0000
mnttab - /etc/mnttab mntfs - no dev=2dc0000
/dev/dsk/c1t0d0s1 - /var ufs - no
rw,intr,largefiles,logging,onerror=panic,suid,dev=740041
swap - /var/run tmpfs - no dev=1
swap - /tmp tmpfs - no dev=2
/dev/dsk/c1t0d0s4 - /home ufs - no
rw,intr,largefiles,logging,onerror=panic,suid,dev=740044
/dev/dsk/c2t0d0s1 - /fs ufs - no
rw,intr,largefiles,logging,onerror=panic,suid,dev=740401
Только пользователь root может монтировать или демонтировать файловые системы.
Команда mount по умолчанию добавляет запись в таблицу смонтированных файловых
систем (файл /etc/mnttab в SVR4); umount удаляет запись из этой таблицы.
Поля в таблице смонтированных устройств разделены пробелами и представляют блочное
специальное устройство, точку монтирования, тип смонтированной файловой системы,
опции монтирования и время, когда файловая система была смонтирована.
Таблица стандартных файловых систем (в файле /etc/vfstab или /etc/fstab,
в зависимости от разновидности UNIX) описывает стандартные параметры для физических файловых
систем. Поля в таблице (их 7) разделены пробелами и символами табуляции, и
представляют, соответственно:
- специальное блочное устройство или имя монтируемого ресурса;
- неформатированное (специальное символьное) устройство для проверки утилитой
fsck;
- стандартный каталог монтирования;
- тип файловой системы;
- число, используемое fsck для принятия решения об автоматической проверке
файловой системы и о порядке этой проверки по отношению к другим файловым
системам;
- признак автоматического монтирования файловой системы;
- опции монтирования.
Если в поле нет значения, используется дефис (-). Рассмотрим пример записей из таблицы
стандартных файловых систем из ОС Solaris 8:
#device device mount FS fsck mount mount
#to mount to fsck point type pass at boot options
/dev/dsk/c1t0d0s0 /dev/rdsk/c1t0d0s0 / ufs 1 no logging
/dev/dsk/c1t0d0s3 /dev/rdsk/c1t0d0s3 /usr ufs 1 no logging
/dev/dsk/c1t0d0s1 /dev/rdsk/c1t0d0s1 /var ufs 1 no -
/dev/dsk/c1t0d0s4 /dev/rdsk/c1t0d0s4 /home ufs 2 yes logging
...
Для получения информации о смонтированных физических файловых системах
используется команда df со следующим синтаксисом:
-
df [ -F ТипФС ] [ -abegklntV ] [ -o специфические_опции ]
[ устройство | каталог | файл | ресурс ... ]
Опции и параметры определяют формат выдаваемой информации и файловые системы, о
которых информирует команда. Чаще всего, команда df вызывается без опций или с
опцией -k. Опция -k выдает информацию об объемах в килобайтах. Для каждой
физической файловой системы выдается отдельная строка, включающая (при
использовании опции -k) специальный файл или имя смонтированного ресурса, общий
объем, использованный объем, доступный объем для использования обычными
пользователями, процент свободного места в файловой системе и точку монтирования.
Рассмотрим примеры выполнения команды df в ОС Solaris:
[kravchuk@arturo 12:11:00 /]$ df -k
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c1t0d0s0 245983 20713 200672 10% /
/dev/dsk/c1t0d0s3 3096090 1782106 1252063 59% /usr
/dev/dsk/c1t0d0p0:boot
10797 1622 9175 16% /boot
/proc 0 0 0 0% /proc
fd 0 0 0 0% /dev/fd
mnttab 0 0 0 0% /etc/mnttab
/dev/dsk/c1t0d0s1 491983 204863 237922 47% /var
swap 324832 16 324816 1% /var/run
swap 337828 13012 324816 4% /tmp
/dev/dsk/c1t0d0s4 2305873 1021225 1238531 46% /home
/dev/dsk/c2t0d0s1 6192197 5633827 496449 92% /fs
[kravchuk@arturo 12:45:58 /]$ df
/ (/dev/dsk/c1t0d0s0 ): 450540 blocks 120616 files
/usr (/dev/dsk/c1t0d0s3 ): 2627968 blocks 338652 files
/boot (/dev/dsk/c1t0d0p0:boot): 18350 blocks -1 files
/proc (/proc ): 0 blocks 3615 files
/dev/fd (fd ): 0 blocks 0 files
/etc/mnttab (mnttab ): 0 blocks 0 files
/var (/dev/dsk/c1t0d0s1 ): 574236 blocks 240784 files
/var/run (swap ): 647568 blocks 43108 files
/tmp (swap ): 647568 blocks 43108 files
/home (/dev/dsk/c1t0d0s4 ): 2569298 blocks 379999 files
/fs (/dev/dsk/c2t0d0s1 ): 1116738 blocks 688872 files
Назад Оглавление Вперёд