Учебно-методические материалы для студентов кафедры АСОИУ

ЛР №7. Управление файловой системой

Основными задачами администрирования файловых систем являются создание, подключение (монтирование) и отключение (демонтирование) физических файловых систем, а также поддержание их целостности путем проверки.

Цель работы

Ознакомиться со средствами администрирования файловых систем в Unix/Linux.

Методические указания

Управление разделами

Жесткие диски могут быть разделены на один или более логических дисков, называемых разделами (partition). Это разделение описано в таблице разделов (partition table), расположенной в нулевом секторе жесткого диска.

Для управления таблицей разделов в UNIX-системах используются специальные программы, такие как fdisk, cfdisk, mkfs, sfdisk или parted.

fdisk - это интерактивная программа, позволяющая манипулировать таблицей разделов. Общий синтаксис вызова программы fdisk:

fdisk [<опции>] <устройство>
<опции>
- необязательные опции командной строки (см. man 8 fdisk)
<устройство>
- одно из устройств хранения, имена которых формируюся по правилам, указанным в табл. 1 и табл. 2.

Табл. 1. Номенклатура накопителей

Канал IDE Основной Дополнительный
первый второй первый второй
Master hda hdb hde hdf
Slave hdc hdd hdg hdh

Табл. 2. Номенклатура первичных разделов на накопителях IDE

Раздел Primary Master Primary Slave Secondary Master Secondary Slave
Первый hda1 hdb1 hdc1 hdd1
Второй hda2 hdb2 hdc2 hdd2
Третий hda3 hdb3 hdc3 hdd3
Четвертый hda4 hdb4 hdc4 hdd4
Примечания
- Логические тома внутри расширенного раздела (extended partition) получают номера, начиная с пятого.
- Устройства SCSI (а также SATA и USB-накопители) называются sd[буква]

Пример вызова fdisk для получения информации о разделах:

stilo:/home/aag # fdisk -l /dev/sda
Диск /dev/sda: 80.0 ГБ, 80026361856 байт
255 heads, 63 sectors/track, 9729 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00093ac6
Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 1 1912 15358108+ 7 HPFS/NTFS
/dev/sda2 1913 4590 21511035 f W95 расшир. (LBA)
/dev/sda3 * 4591 6646 16514820 83 Linux
/dev/sda4 6647 9729 24764197+ 83 Linux
/dev/sda5 1913 4462 20482843+ b W95 FAT32
/dev/sda6 4463 4590 1028128+ 82 Linux своп / Solaris

Команда cfdisk решает те же задачи, что и fdisk, но обладает более удобным пользовательским интерфейсом (рис. 1).

Использование cfdisk

Рис. 1. Интерфейс программы cfdisk

На вновь созданных разделах необходимо разместить файловые системы, которые планируется использовать.

Создание физической файловой системы

Создать файловую систему можно с помощью команды mkfs. Эта команда создает файловую систему на указанном устройстве. В действительности, mkfs - это просто фронт-энд для разнообразных программ создания файловых систем, доступных в Linux (см. man по следующим командам: mkdosfs, mke2fs, mkfs.bfs, mkfs.ext2, mkfs.ext3, mkfs.minix, mkfs.msdos, mkfs.vfat, mkfs.xfs, mkfs.xiafs и др.).

Команда mkfs имеет следующий синтаксис:

mkfs [-V] [-t тип_фс] [опции_фс] <устройство> [размер]
- t тип_фс
Тип создаваемой файловой системы (ext2, ext3, fat, xfs и др.). Тип должен быть либо указан здесь, либо в файле таблицы стандартных файловых систем (/etc/fstab) путем сопоставления устройства с записью в таблице.
опции_фс
Опции, специфичные для создаваемой файловой системы
<устройство>
Имя раздела, на котором создается файловая система
-V
Выдает результирующую командную строку, но не выполняет команду. Командная строка генерируется с использованием опций и аргументов, указанных пользователем, путем добавления к ним информации, взятой из таблицы стандартных файловых систем. Используется для проверки правильности параметров.
размер
Задает количество блоков в файловой системе.

Специфические опции и операнды зависят от конкретного типа создаваемой файловой системы. Подробности использования команды mkfs и специальных команд вида mkfs.fstype доступны в справочной системе

Проверка и восстановление целостности файловых систем

Программа 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) разделены пробелами и символами табуляции, и представляют, соответственно:

Если в поле нет значения, используется дефис (-). Рассмотрим пример записей из таблицы стандартных файловых систем из ОС 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

Задания к работе

  1. Ознакомиться с номенклатурой накопителей в Linux
  2. Определить количество свободного места на диске (df)
  3. Определить, какие устройства хранения информации автоматически подключаются (монтируются) в вашей системе (cat /etc/fstab)
  4. Определить, какие файловые системы смонтированы в системе (cat /etc/mtab)
  5. Определить, какие на какие разделы поделен жесткий диск в вашей системе (fdisk -l жесткий_диск)
  6. Подключить логический раздел с файловой системой FAT или NTFS в точку монтирования /mnt/win. Убедиться, что выбрана корректная таблица кодировки русского языка и файлы с русскими именами отображаются правильно
  7. Повторить п.2
  8. В каталоге /home/win создать каталог linux, перейти в него и создать текстовый файл, содержащий вашу фамилию, имя и номер группы.
  9. Отмонтировать раздел, подключенный в п.5.
  10. С помощью встроенного текстового редактора mc или любого другого редактора открыть файл /etc/fstab. Изменить его так, чтобы раздел, указанный в п.5, подключался в /home/win автоматически, при загрузке компьютера
  11. Перезагрузить систему и убедиться, что п.10 выполнен правильно и Windows-раздел монтируется при загрузке.
  12. Завершить работу

CC-BY-CA Анатольев А.Г., 11.01.2013