Смекни!
smekni.com

Руководство Системного администратора Linux (стр. 8 из 20)

показывают, что применение дыр дает экономию в 4 Мб. Однако, эти

измерения проводились на системе, где было установлено

относительно мало программ и отсутствовали файлы баз данных. Метод

измерения дыр рассмотрен в приложении B.

4.6.2 Типы файловых систем

Linux поддерживает несколько типов файловых систем. Наиболее

важные из них рассмотрены ниже.

minix Считается самой старой и самой надежной файловой системой,

но достаточно ограниченной в своих возможностях (у файлов

отсутствуют некоторые временные параметры, длина имени файла

ограничена 30-ю символами) и доступных объемах (максимум 64 Мб на

одну файловую систему).

xia Модифицированная версия системы minix, в которой увеличена

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

не pеализует никаких новых возможностей.

ext2 Наиболее богатая функциональными возможностями файловая

система из семейства совместимых с Linux. На данный момент

считается самой популярной системой. Она разработана с учетом

совместимости с последующими версиями, поэтому для установки новой

версии кода системы не требуется устанавливать ее заново.

ext Предыдущая версия системы ext2, не совместима с последующими

версиями. В настоящее время она очень редко включается в пакеты

новых поставляемых систем, т.к. большинство пользователей сейчас


- 42 -

пользуются системой ext2.

В дополнение к рассмотренным выше, в Linux включена поддержка

еще некоторых файловых систем для обеспечения обмена файлами между

другими операционными системами. Эти файловые системы работают

также, как и описанные выше, кроме того, что их функциональные

возможности могут быть значительно ограничены по сравнению с

возможностями, обычно предоставляемыми файловыми системами UNIX.

msdos Обеспечивается совместимость с системой MS-DOS (а также

OS/2 и Windows NT).

umsdos Расширяет возможности драйвера файловой системы MS-DOS

для Linux таким образом, что при работе в Linux, имеется

возможность работы с именами файлов нестандартной длины, просмотра

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

принадлежит файл, а также оперирование с файлами устройств. Это

позволяет использовать обычную систему MS-DOS, так, как если бы

это была система Linux. Таким образом, исключается необходимость

создания отдельного раздела для Linux.

iso9660 Стандартная файловая система для CD-ROM. Довольно

популярное развитие стандарта CD-ROM, выполненное Rock Ridge'м,

которое обеспечивает автоматическую поддержку имен файлов

нестандартной длины.

nfs Сетевая файловая система, обеспечивающая разделение

одной файловой системы между несколькими компьютерами для

предоставления доступа к ее файлам со всех машин.

hpfs Файловая система OS/2.

sysv Файловые системы System V/386, Coherent и Xenix.

Также существует файловая система proc, которая обычно

доступна через каталог /proc. В действительности, она не является

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


- 43 -

Эта система позволяет получить доступ к определенным структурам

данных ядра, к таким, как список процессов (отсюда название). Все

эти структуры выглядят как файловая система и ими можно

оперировать обычными средствами работы с файловой системой.

Например, для получения списка всех процессов, используется

следующая команда:

ttyp5 root ~ $ ls -l /proc

total 0

dr-xr-xr-x 4 root root 0 Jan 31 20:37 1

dr-xr-xr-x 4 liw users 0 Jan 31 20:37 63

dr-xr-xr-x 4 liw users 0 Jan 31 20:37 94

dr-xr-xr-x 4 liw users 0 Jan 31 20:37 95

dr-xr-xr-x 4 root users 0 Jan 31 20:37 98

dr-xr-xr-x 4 liw users 0 Jan 31 20:37 99

-r--r--r-- 1 root root 0 Jan 31 20:37 devices

-r--r--r-- 1 root root 0 Jan 31 20:37 dma

-r--r--r-- 1 root root 0 Jan 31 20:37 filesystems

-r--r--r-- 1 root root 0 Jan 31 20:37 interrupts

-r-------- 1 root root 8654848 Jan 31 20:37 kcore

-r--r--r-- 1 root root 0 Jan 31 11:50 kmsg

-r--r--r-- 1 root root 0 Jan 31 20:37 ksyms

-r--r--r-- 1 root root 0 Jan 31 11:51 loadavg

-r--r--r-- 1 root root 0 Jan 31 20:37 meminfo

-r--r--r-- 1 root root 0 Jan 31 20:37 modules

dr-xr-xr-x 2 root root 0 Jan 31 20:37 net

dr-xr-xr-x 4 root root 0 Jan 31 20:37 self

-r--r--r-- 1 root root 0 Jan 31 20:37 stat

-r--r--r-- 1 root root 0 Jan 31 20:37 uptime

-r--r--r-- 1 root root 0 Jan 31 20:37 version

ttyp5 root ~ $

(В действительности, должно быть еще несколько файлов, не

соответствующих процессам, однако, этот пример немного укорочен.)

Хотя система /proc и называется файловой, ни одна ее часть не

взаимодействует с диском. Она существует только в представлении

ядра и при попытке обращения к какой-либо ее части, создается


- 44 -

впечатление, что эта часть где-то существует, хотя в

действительности это не так. Даже если существует файл /proc/kmem

в несколько мегабайт, он не занимает места но диске.

4.6.3 Какую файловую систему устанавливать?

Обычно мало смысла в пpименении нескольких разных файловых

систем. В настоящее время наиболее популярной считается система

ext2fs и, возможно, является наилучшим выбором. В зависимости от

различных параметров (скорость, производительность, надежность,

совместимость и др.) может оказаться, что установка другой

файловой системы будет более приемлемым вариантом.

4.6.4 Установка файловой системы

Файловая система устанавливается, т.е. инициализируется, при

помощи команды mkfs(8). В действительности, существуют отдельные

программы для каждого типа файловой системы. Команда mkfs только

запускает требуемую программу в зависимости от типа

устанавливаемой системы. Тип файловой системы указывается при

помощи опции -t fstype.

Параметры, передаваемые программам, вызываемым mkfs, слегка

различаются. Наиболее важные из них рассмотрены ниже (для более

подробной информации см. руководство).

-t fstype Указывается тип файловой системы.

-c Производится поиск плохих блоков и, соответственно,

инициализация списка плохих блоков.

-l filename Считывается начальный список плохих блоков из файла

filename.

Для установки файловой системы ext2 на дискету, используется

следующая последовательность команд:

ttyp5 root ~ $ fdformat -n /dev/fd0H1440


- 45 -

Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.

Formatting ... done

ttyp5 root ~ $ badblocks /dev/fd0H1440 1440 > bad-blocks

ttyp5 root ~ $ mkfs -t ext2 -l bad-blocks /dev/fd0H1440

mke2fs 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10

360 inodes, 1440 blocks

72 blocks (5.00%) reserved for the super user

First data block=1

Block size=1024 (log=0)

Fragment size=1024 (log=0)

1 block group

8192 blocks per group, 8192 fragments per group

360 inodes per group

Writing inode tables: done

Writing superblocks and filesystem accounting information: done

ttyp5 root ~ $

В первую очередь дискета форматируется (параметр -n

предотвращает проверку на наличие плохих блоков). Затем

производится поиск плохих блоков при помощи команды badblocks,

вывод которой перенаправлен в файл bad-blocks. И, наконец,

файловая система устанавливается с инициализацией списка найденных

плохих блоков.

Вместо использования badblocks, команде mkfs может быть

указан параметр -c, как это видно из примера, рассмотренного ниже.

ttyp5 root ~ $ mkfs -t ext2 -c /dev/fd0H1440

mke2fs 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10

360 inodes, 1440 blocks

72 blocks (5.00%) reserved for the super user

First data block=1

Block size=1024 (log=0)

Fragment size=1024 (log=0)

1 block group

8192 blocks per group, 8192 fragments per group

360 inodes per group


- 46 -

Checking for bad blocks (read-only test): done

Writing inode tables: done

Writing superblocks and filesystem accounting information: done

ttyp5 root ~ $

Указание параметра -c намного удобнее, чем применение команды

badblocks, но ее использование необходимо для проверки файловой

системы после ее установки.

Установка файловых систем на жесткий диск или его раздел

аналогична установке на дискету, исключая форматирование.

4.6.5 Монтирование и демонтирование

Перед работой с файловой системой, она должна быть

смонтирована. При этом операционная система выполняет некоторые

действия, обеспечивающие функционирование монтируемой системы. Так

как все файлы в системе UNIX принадлежат одной структуре

каталогов, то эта операция обеспечивает работу с файловой

системой, как с каталогом уже смонтированной.

Рассмотрим три различные файловые системы. Если две последние

системы (2-ю и 3-ю) соответственно смонтировать к каталогам /home

и /usr первой системы, то в итоге образуется файловая система с

единой структурой каталогов (4).

1] 2] 3]

/ ддбддддд bin / ддбдддддд abc / ддбдддддд bin

Ё Ё Ё

цддддд dev цдддддд liw цдддддд etc

Ё Ё Ё

цддддд home юдддддд ftp юдддддд lib

Ё

цддддд etc

Ё

цддддд lib


- 47 -

Ё

юддддд usr

4]

/ ддбдддбд usr

Ё Ё

Ё цдддддд lib

Ё Ё

Ё цдддддд etc

Ё Ё

Ё юдддддд bin

Ё

цддддд lib

Ё

цддддд etc

Ё

цдддбд home

Ё Ё

Ё цдддддд ftp

Ё Ё

Ё цдддддд liw

Ё Ё

Ё юдддддд abc

Ё

цддддд bin

Ё

юддддд dev

В примере, рассмотреном ниже, показано, как это сделать.

ttyp5 root ~ $ mount /dev/hda2 /home

ttyp5 root ~ $ mount /dev/hda3 /usr

ttyp5 root ~ $

Команда mount(8) принимает два параметра. Первый их них -

файл устройства, соответствующий диску или разделу, на котором

раположена файловая система. Вторым параметром является имя


- 48 -

каталога, к которому будет монтироваться система. После выполнения

этих команд содержимое файловых систем отображается в каталогах

/home и /usr соответственно. Также можно сказать, что раздел

/dev/hda2 смонтирован к каталогу /home, а /dev/hda3 - к каталогу

/usr. Существует различие между файлом устройства, /dev/hda2, и

монтируемым каталогом, /home. Файл устройства предоставляет доступ

к 'сырым' данным, расположенным на диске, а монтируемый каталог -

к файлам. Такой каталог называется узлом монтирования.

Монтируемый каталог не обязательно должен быть пустым, хотя

он должен существовать. Однако все файлы, в нем расположенные,

будут недоступны после монтирования файловой системы. (Открытые

ранее файлы будут также доступны, а файлы, являющиеся жесткими

ссылками из других каталогов, будут доступны с использованием имен

ссылок.) Таким образом, никакого ущерба не наносится и это даже

может быть полезно. Например, некоторые делают каталог /tmp

символической ссылкой на каталог /usr/tmp. При загрузке системы,