Лекция №21
Тема: «Создание и монтирование файловых систем»
Создание файловой системы «вручную». Команда mkfs
Создать файловую систему на разделе жесткого диска или внешнем носителе — это значит разметить его сектора на структуры данных, специфические для этой файловой системы (суперблок, список i-узлов, блоки данных). В DOS/Windows этот процесс называется форматированием. В UNIX-системах понятие форматирования не используется, а процедура и соответствующая команда так и называются — создание файловой системы.
В ходе установки Linux файловые системы на разделах жесткого диска создал для вас инсталлятор, и переделывать за ним ничего не нужно. Ручное создание ФС может понадобиться при подключении нового диска или, что гораздо чаще, дискеты. Выполняет его команда mkfs:
mkfs [-t <тип>] [опции_ФС] ФС [блоков]
Типы и описание файловых систем, поддерживаемых Linux, вы найдете в справочной системе по команде man fs. Ясно, что если вы «отформатируете» дискету с типом vfat, то она будет читаться и из-под Windows, а если с типом ext2/ext3 — только из-под Linux.
Если не указывать тип, то будет создана ФС с типом по умолчанию — в настоящий момент это ext2.
В качестве аргумента ФС можно указывать либо имя устройства (/dev/fd0), либо точку монтирования (/media/usbdisk). Последним аргументом можно указать количество блоков, которые нужно отвести под новую файловую систему.
Опции_ФС — это параметры, специфические для файловой системы определенного типа. Например, для ext2/ext3 можно указать:
-b <размер_блока> (по умолчанию 4096 байт, но может быть и 1024 или 2048);
-N <количество_i-узлов>,
-i <байт_на_i-узел>.
Утилита mkfs передает эти опции настоящему конструктору ФС, которого вызывает в зависимости от указанного типа. Установленные у вас конструкторы можно найти по команде ls /sbin/mkfs*, а список опций конкретной ФС посмотреть на man-странице соответствующего конструктора (например, man mkfs.vfat).
Для ext3fs после ключа -J можно указать опции журналирования: size=<размер> — размер журнального файла в мегабайтах, и device=<устройство> — внешний журнал, заранее созданный на другом разделе.
Преобразовать существующий раздел ext2fs в ext3fs можно без перезагрузки системы, простым добавлением журнала командой tune2fs:
# tune2fs -j /dev/hd5
Дополнительные конструкторы (для ReiserFS, XFS и т.п.) устанавливаются из пакетов reiserfsprogs и xfsprogs соответственно.
В результате на новом разделе образуется корневой каталог новой файловой системы и в нем — подкаталог /lost+found. Не удаляйте этот подкаталог: утилита fsck, предназначенная для проверки целостности ФС, помещает в него найденные куски нарушенных файлов.
Настройка автоматического монтирования при загрузке компьютера. Команда mount
Чтобы с новой файловой системой можно было работать, она должна быть при помощи операции монтирования включена в общее дерево каталогов. Чтобы разделы жесткого диска автоматически монтировались при загрузке системы и демонтировались при останове. Для этого их нужно прописать в файл /etc/fstab, который читает команда mount в ходе начальной загрузки.
Каждая строка этого файла соответствует одной файловой системе и состоит из шести полей, разделенных пробельными символами:
<устройство> <точка_монтирования> <тип> <опции> <дамп> <номер_fsck>
Устройство — это файл устройства, к которому подключен раздел (например, /dev/hda5). Для сетевой файловой системы здесь должно быть указано имя сервера и каталог на нем.
Точка_монтирования — это имя каталога, к которому файловая система будет подключена. Он должен существовать и (желательно) быть пустым. Для раздела подкачки (swap) значение этого поля не используется, но в файле /etc/fstab присутствовать все равно должно.
Вместо типа ФС можно указать значение auto: в этом случае команда mount попытается определить тип самостоятельно.
Дамп — это отметка о необходимости резервного копирования данной ФС программой dump. Значение 1 говорит о том, что резервировать нужно, значение 0 — нет.
Номер_fsck: утилита fsck обычно запускается перед автоматическим монтированием ФС, проверяет ее на целостность и пытается исправить найденные ошибки. Это процедура долгая, и для ускорения загрузки можно либо отключить проверку для некоторых ФС (значение 0), либо для некоторых разделов запускать ее параллельно. Значение этого поля задает порядок проверки разных ФС: если номера одинаковые, то системы будут проверяться параллельно. Ясно, что ускорение может получиться только в том случае, когда параллельно проверяемые разделы находятся на разных физических дисках.
Программа установки создала файл /etc/fstab, в котором перечислены все ваши Linux-разделы (корневой, swap, /home). Теперь нужно сделать так, чтобы из-под Linux были видны данные на ваших Windows-разделах. Проверьте, поддерживает ли ваше ядро типы ФС на Windows-разделах (cat /proc/filesystems, в выводе команды должны присутствовать слова vfat и/или ntfs). Обычно ядро, поставляемое с дистрибутивом, собрано без поддержки NTFS — если ваш Windows-раздел отформатирован с этим типом, то вам придется либо пересобрать ядро, либо, что гораздо проще, конвертировать раздел в тип FAT32.
Итак, после всех этих проверок нужно вписать в файл /etc/fstab строку:
/dev/hda6 /mnt/disk_e vfat rw,codepage=866,iocharset=utf8
…и получил каталог /mnt/disk_e, всем файлам в котором приписан в качестве владельца root, а в качестве прав доступа — rwx-rxr-x. Если вас такой режим доступа не устраивает и хочется иметь право писать в этот каталог от имени непривилегированного пользователя, прочитайте на man-странице команды mount об опциях uid, gid и umask.
Контрольные вопросы:
- Что подразумевается под созданием файловой системы на разделе жесткого диска?
- Какой тип файловой системы позволяет увидеть том Windows из-под Linux?
- Перечислите опции файловых систем.
- Какая команда позволяет вызвать справку?
- Перечислите опции журналирования для ext3fc.
- Опишите способ преобразования одной файловой системы в другую.
- Укажите подкаталог, в котором хранится корневой каталог новой файловой системы.
- Как выполнить автоматическое монтирование при загрузке компьютера?