<< Предыдущий раздел | /\ Содержание | >> Следующий раздел
В Unix, в отличие от Dos/Windows, разным разделам дисков не присваиваются разные буквы, а все они образуют единое дерево директорий. Процесс добавления ("приклейки") раздела в любое место дерева называется монтированием (mounting). Разделы могут монтироваться как автоматически при загрузке, так и во время работы системы. "Отклейка" раздела от дерева называется размонтированием (unmounting).
При монтировании надо указывать системе три параметра: раздел, который надо смонтировать, директорию, в которой должен быть "виден" этот раздел (ее называют точкой монтирования -- mount point), и тип файловой системы. Кроме того, можно указывать дополнительные параметры -- например то, что смонтировать следует только для чтения (readonly).
Монтировать перед использованием надо даже съемные носители -- CD и дискеты, а перед "выемкой" -- размонтировать. Впрочем, для упрощения работы со съемными носителями есть специальные программы-автомонтировщики, которые автоматически монтируют диск при обращении к нему.
Для ссылки на физический раздел всегда используется файл устройства, расположенный в директории /dev/. В разных клонах Unix используются разные способы именования физических разделов на дисках. Рассмотрим тот, который используется в Linux.
Все IDE-устройства в Linux имеют имена, начинающиеся на "hd" (Hard Drive), а SCSI-диски -- "sd" (SCSI Drive). Первый IDE-диск называется hda, второй -- hdb, третий -- hdc и т.д.
Разделы на дисках называются так же, как и сам диск, с добавлением числа, обозначающего номер раздела. Основные (primary) разделы имеют номера от 1 до 4, а дополнительные (logical) -- от 5 до 16. Даже если есть только один основной раздел, а остальные -- логические, то первый логический раздел будет иметь номер 5, а номера 2,3,4 будут неиспользованы.
Например, /dev/hda2 -- второй раздел первого IDE-диска; /dev/hdd7 -- седьмой (логический) раздел четвертого IDE-диска (slave-диск на втором IDE-контроллере).
Такая схема более удобна, чем используемая в Dos/Windows, где при добавлении/удалении нового диска или раздела часть букв дисков обязательно "съезжает".
Большинство современных CD-ROM для PC также подключаются к IDE. Поскольку на компакт-дисках нет разделов, то для ссылки на CD-ROM используется имя IDE-устройства -- чаще всего /dev/hdc. Инсталлятор обычно распознает CD-ROM и делает в /dev/ символьный линк типа cdrom->/dev/hdc.
Для монтирования служит команда mount. Обычно используется следующий формат:
mount -t тип устройство директория
В ключе "-t" указывается тип файловой системы.
Название | Система |
---|---|
ext2 | Основная файловая система Linux (second extended filesystem) |
msdos | Система MS-DOS (имена 8.3) |
vfat | Система Windows95 (включая FAT32 в ядрах 2.2) |
hpfs | Система OS/2 |
ntfs | Система WindowsNT (в ядрах 2.2) |
iso9660 | Система CD-ROM -- включая стандартную ISO9660, RockRidge (9660 с расширениями Unix), Joliet (система для CD в Windows95/NT) |
nfs | Сетевая файловая система Unix |
proc | Специальная система ядра Unix |
Пример (смонтировать раздел Windows95 C: (первый раздел первого диска)) в директорию /mnt/c):
mount -t vfat /dev/hda1 /mnt/c
|
Директория, в которую производится монтирование, должна существовать -- сам ее mount не сделает. |
Для указания дополнительных опций используется ключ "-o", которому указывается список опций, разделенных запятыми (без пробелов!).
Одна из самых часто используемых опций -- "ro", означающая монтирование только для чтения (ReadOnly). Ее противоположность -- "rw" (Read/Write).
Чтобы при монтировании разделов Dos/Window правильно обрабатывались имена файлов с русскими буквами, следует указывать опции "codepage=866,iocharset=koi8-r" (означает "кодировка на диске -- cp866, кодировка на экране и клавиатуре -- koi8-r"). Пример:
mount -t vfat /dev/hda1 /mnt/c -o codepage=866,iocharset=koi8-r
Для размонтирования используется команда umount. Ей можно указать или имя устройства, или точку монтирования. Для приведенного выше примера команды
иumount /dev/hda1
сделают одно и то же.umount /mnt/c
Если какие-то файлы или директории из этой файловой системы используются, то umount выдаст ошибку и ничего не сделает:
bobby:~# umount /mnt/c umount: /mnt/c: device is busy bobby:~# _ |
Под "использованием" директории понимается также то, что для какого-то процесса эта директория является текущей. Например, добиться занятости /mnt/c можно, просто выполнив в любом окне команду cd /mnt/c.
Чтобы узнать, кто является "виновником", можно воспользоваться командой fuser с ключом "-m" или программой lsof.
В файле /etc/fstab (File Systems TABle) содержится информация о файловых системах -- что надо монтировать при загрузке, а также то, какие типы файловых систем и точки монтирования следует использовать для определенных устройств.
Каждая строка в /etc/fstab содержит информацию об одной файловой системе и состоит из 6 полей, разделенных пробелами. Формат строки следующий:
device mountpoint fstype options dump_freq fsck_passno
Первые 4 поля мы уже рассмотрели.
В поле "dump_freq" указывается информация для программы dump (сколь часто следует выполнять резервное копирование данной файловой системы), при добавлении строк в fstab в нем можно указывать 0.
Поле "fsck_passno" используется при загрузке программой fsck (File System Check -- произносится "эфэсчек"). При добавлении строк в fstab в нем следует указывать 2 для файловых систем Unix (ext2) и 0 для NFS и систем msdos/vfat/ntfs и т.д.
Пример файла /etc/fstab:
# # /etc/fstab # #device mountpoint filesystemtype options dump fsckorder /dev/hda4 / ext2 defaults 1 1 /dev/hda1 /mnt/c vfat defaults 0 0 /dev/hda2 /usr ext2 defaults,ro 0 2 /dev/hda3 swap swap defaults 0 0 /dev/fd0 /mnt/floppy ext2 noauto 0 0 /dev/cdrom /mnt/cdrom iso9660 noauto,ro 0 0 |
Если не требуется указывать никаких опций, то надо использовать ключевое слово "defaults", чтобы сохранять формат. Ключевое слово "noauto" означает, что эту систему не надо автоматически монтировать при загрузке.
|
Во многих текстовых редакторах по умолчанию включен автоматический перенос слов (word wrap). Поскольку строки в /etc/fstab обычно длинные, перед внесением изменений следует выключить автоперенос. В joe для этого надо нажать <Ctrl+T> и в появившемся меню выключить пункт Word Wrap. |
Разделы для свопинга указываются в этом же файле и имеют тип "swap". Но эти строки командой mount пропускаются.
Если файловая система указана в /etc/fstab (пусть с опцией noauto), то при ручном монтировании команде mount достаточно указать лишь один параметр -- или имя устройства, или точку монтирования. Все остальное будет взято из /etc/fstab.
Следует заметить, что Linux подразумевает использование на дискетах системы ext2, а не msdos или vfat. Так что при монтировании дискеты в формате Dos следует использовать команду
.mount -t vfat /mnt/floppy
Следует посмотреть man-страницы mount(8), umount(8), fstab(5), fuser(1), lsof(8).
Кроме того, много полезной информации содержится в главах 4 и 9 книги "UNIX: руководство системного администратора".
<< Предыдущий раздел | /\ Содержание | >> Следующий раздел