18.6. Метки дисковых устройств

Перевод на русский язык Денис Пеплин.

Во время загрузки системы, ядро FreeBSD создает файлы для обнаруженных устройств. Этот метод обнаружения устройств создает некоторые проблемы, например если новое дисковое устройство подключается через USB. Может получиться так, что этому диску будет присвоено имя устройства da0, а устройство с прежним именем da0 получит следующее имя, da1. Это приведет к проблемам монтирования файловых систем, записанных в /etc/fstab. На самом деле, это может даже помешать загрузке системы.

Одно из решений состоит в расположении SCSI устройств в таком порядке, чтобы новые устройства, добавляемые к SCSI контроллеру, занимали свободные номера устройств. Но что делать с USB устройствами, которые могут занять место основного SCSI диска? Это случается потому, что USB устройства обычно тестируются до SCSI контроллера. Решение может состоять в подключении этих устройств после загрузки системы. Другое решение - использование ATA диска и исключение SCSI устройств из /etc/fstab.

Есть и лучшее решение. С помощью утилиты glabel, администратор или пользователь могут пометить дисковые устройства и использовать эти метки в /etc/fstab. Поскольку glabel сохраняет метки в последнем секторе заданного устройства, они сохраняются и после перезагрузки. Используя эти метки вместо имени устройств, можно всегда смонтировать файловую систему независимо от назначенного имени устройства.

Замечание: Очевидно, что метки должны быть постоянными. Утилита glabel может использоваться для создания как временных, так и постоянных меток. Только постоянные метки сохраняются после перезагрузок. Прочтите glabel(8) для получения более подробной информации о различии между метками.

18.6.1. Типы меток и примеры

Существует два типа меток, основной (generic) тип и метки файловой системы. Различие между метками заключается в автоопределении постоянных меток и в том факте, что метки этого типа сохраняются после перезагрузок. Эти метки доступны через специальный каталог в /dev, имя которого определяется на основе типа файловой системы. Например, метки файловых систем UFS2 будут расположены в каталоге /dev/ufs2.

Основной тип меток не сохраняется при перезагрузки. Эти метки создаются в каталоге /dev/label и хорошо подходят для экспериментов.

Постоянные метки могут быть помещены на файловую систему с помощью утилит tunefs или newfs. Пример команды для создания постоянной метки на файловой системе UFS2 без уничтожения данных:

# tunefs -L home /dev/da3

Внимание: Если файловая система заполнена, это может привести к повреждению данных; в случае заполненной файловой системы надо или удалить ненужные файлы, или не добавлять метки.

Метка должна появиться в /dev/ufs2 и может быть добавлена в /etc/fstab:

/dev/ufs2/home     /home            ufs     rw              2      2

Замечание: Во время запуска tunefs файловая система не должна быть смонтирована.

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

# mount /home

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

# glabel destroy home

Если модуль ядраgeom_label.ko указан в /boot/loader.conf и загружается вместе с системой, или в ядре указана опция GEOM_LABEL, метку устройства можно изменять без какого-либо негативного для системы эффекта.

Файловая система может быть создана с меткой по умолчанию путем использования флага -L команды newfs. Обратитесь к странице справочника newfs(8) за более подробной информацией.

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.