Страница Справочника bsdlabel.8
BSDLABEL(8) Справочник системного администратора FreeBSD BSDLABEL(8)
НАЗВАНИЕ
bsdlabel -- чтение и запись метки BSD
СИНТАКСИС
bsdlabel [-A] диск | -f файл
bsdlabel -w [-An] [-B [-b загрузчик]] [-m машина] диск | -f файл [тип]
bsdlabel -e [-An] [-B [-b загрузчик]] [-m машина] диск | -f файл
bsdlabel -R [-An] [-B [-b загрузчик]] [-m машина] [-f] диск | -f файл
файл_прототипа
ОПИСАНИЕ
Утилита bsdlabel устанавливает, проверяет или изменяет метку BSD в раз-
деле диска или в файле, содержащем образ раздела. Кроме того, bsdlabel
может установить на диск код загрузчика.
Имя дискового устройства
При указании устройства (т.е., когда опция -f не используется) префикс
/dev/ может быть опущен и bsdlabel добавит его автоматически.
Общие опции
Опция -A включает обработку традиционных частей метки BSD. Если опция не
указана, эти поля автоматически инициализируются подходящими значениями.
Опция -f говорит bsdlabel о том, что вместо раздела диска нужно будет
оперировать с файлом.
Опция -n прерывает работу bsdlabel сразу перед тем, как диск был бы моди-
фицирован, и вместо записи результата на диск просто показывает его.
Опция -m машина заставляет bsdlabel использовать формат другой архитек-
туры. В настоящее время допустимыми значениями являются i386, amd64,
ia64, pc98 и alpha. Если эта опция опускается, утилита bsdlabel будет
использовать формат машины, на которой она работает.
Чтение метки диска
Чтобы просмотреть имеющуюся метку диска, используйте bsdlabel так:
bsdlabel [-A] [-m машина] диск
Аргумент диск указывает на желаемый диск, и может быть задан в виде da0
или /dev/da0. Эта команда отобразит текущую конфигурацию разделов.
Запись стандартной метки
Чтобы записать стандартную метку, используйте bsdlabel так:
bsdlabel -w [-An] [-m машина] диск [тип]
Если указан тип диска, будет использована соответствующая запись из файла
disktab(5), в противном случае будет записана стандартная метка.
Редактирование существующей метки диска
Чтобы отредактировать существующую метку диска, используйте bsdlabel так:
bsdlabel -e [-An] [-m машина] диск
Эта команда открывает дисковую метку в редакторе по умолчанию, после
редактирования проверяет её на корректность и записывает её на диск.
Восстановление метки диска из файла
Чтобы восстановить метку диска из файла, используйте bsdlabel так:
bsdlabel -R [-An] [-m машина] диск файл_прототипа
Утилита bsdlabel позволяет восстановить метку диска, которая была предва-
рительно сохранена в файл в формате ASCII. Файл прототипа должен иметь
тот же формат, что используется при чтении или редактировании метки.
Комментарии начинаются со знака `#' и продолжаются до конца строки.
Установка загрузчика
Если указана опция -B, код загрузчика будет cчитан из файла /boot/boot и
записан на диск. Опция -b загрузчик позволяет задать другой файл с кодом
загрузчика.
ФАЙЛЫ
/boot/boot Образ стандартного загрузчика.
/etc/disktab Файл описания дисков.
ФОРМАТ СОХРАНЯЕМОГО ФАЙЛА
Утилита bsdlabel использует ASCII формат для чтения, редактирования и
восстановления метки диска. Формат метки следующий:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 81920 16 4.2BSD 2048 16384 5128
b: 1091994 81936 swap
c: 1173930 0 unused 0 0 # "raw" part, don't edit
Если указана опция -A, то формат будет таким:
# /dev/da1c:
type: SCSI
disk: da0s1
label:
flags:
bytes/sector: 512
sectors/track: 51
tracks/cylinder: 19
sectors/cylinder: 969
cylinders: 1211
sectors/unit: 1173930
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 81920 16 4.2BSD 1024 8192 16
b: 160000 81936 swap
c: 1173930 0 unused 0 0 # "raw" part, don't edit
Строки, начинающиеся с символа `#' являются комментариями.
Таблица разделов может иметь до 8 разделов. Каждый раздел содержит сле-
дующую информацию:
# Идентификатор раздела. Обозначается одной латинской буквой в
интервале от `a' до `h'. По договорённости, раздел `c' зарезер-
вирован для описания диска в целом.
size Размер раздела в секторах, K (килобайтах - 1024), M (мегабайтах -
1024*1024), G (гигабайтах - 1024*1024*1024), % процентах после
удаления всех разделов с фиксированным размером, кроме раздела
`c'), или * (всё свободное место, оставшееся после разделов с
фиксированным размером и разделов, описанных в процентах). Для
раздела `c' размер * обозначает весь диск. Допустимо указание
суффиксов K, M и G в нижнем регистре. Размер и суффикс должны
быть указаны без пробелов между ними.
Пример: 2097152, 1G, 1024M и 1048576K все обозначают один и тот
же размер (с учётом 512-байтовых секторов).
offset Смещение начала раздела относительно начала диска в секторах, или
*, чтобы утилита bsdlabel сама посчитала правильное значение
(конец предыдущего раздела плюс один, раздел `c' игнорируется).
Для раздела `c', * обозначает нулевое смещение. Первый раздел
должен иметь смещение 16, потому что первые 16 секторов зарезер-
вированы под метаданные.
fstype Описывает назначение раздела. Пример выше показывает все исполь-
зуемые в настоящий момент типы разделов. Для файловых систем UFS
и разделов ccd(4) используется тип 4.2BSD. Для дисков Vinum
используется тип vinum. К другим часто встречающимся типам отно-
сятся swap и unused. По соглашению, раздел `c' представляет
собой весь слайс и должен иметь тип unused, хотя утилита bsdlabel
не заставляет придерживаться этого соглашения. Утилита bsdlabel
также знает о других типах разделов, которые не используются в
настоящее время. (Смотрите определения, начинающиеся с
FS_UNUSED, в <sys/disklabel.h> для более подробного ознакомле-
ния.)
fsize Только для файловых систем 4.2BSD, размер фрагмента; см.
newfs(8).
bsize Только для файловых систем 4.2BSD, размер блока; см. newfs(8).
bps/cpg
Только для файловых систем 4.2BSD, количество цилиндров в группе;
см. newfs(8).
ПРИМЕРЫ
Показать метку первого слайса диска da0, полученную через /dev/da0s1:
bsdlabel da0s1
Записать метку da0s1, хранящуюся в ядре, в файл savedlabel. В дальнейшем
этот файл может быть использован для восстановления метки с помощью опции
-R:
bsdlabel da0s1 > savedlabel
Создать метку на da0s1:
bsdlabel -w /dev/da0s1
Прочитать метку с da0s1, отредактировать её и записать результат на диск:
bsdlabel -e da0s1
Прочитать метку da0s1, отредактировать её, и показать, какой бы была
новая метка (в секторах). Эта команда не записывает новую метку, ни в
ядро, ни на диск:
bsdlabel -e -n da0s1
Записать стандартную метку на da0s1. Чтобы впоследствии отредактировать
разделы и параметры файловых систем, воспользуйтесь другой командой,
bsdlabel -e:
bsdlabel -w da0s1
Восстановить метку диска на da0s1 на основе информации, полученной из
файла savedlabel:
bsdlabel -R da0s1 savedlabel
Показать, какой бы была метка на da0s1, используя конфигурацию разделов в
файле label_layout. Полезно для определения актуального дискового про-
странства, выделяемого под разделы, при использовании схемы разбиения на
разделы на основе % и *:
bsdlabel -R -n da0s1 label_layout
Установить новый загрузчик на da0s1. Код загрузчика берётся из файла
/boot/boot:
bsdlabel -B da0s1
Установить новую метку и загрузчик. Код загрузчика берётся из файла
newboot в текущем рабочем каталоге:
bsdlabel -w -B -b newboot /dev/da0s1
Полностью стереть всю предыдущую информацию на диске, создав на её месте
новый загрузочный диск с таблицей DOS-разделов, состоящей из одного
слайса на весь диск. Инициализировать метку на этом слайсе, затем отре-
дактировать её. Команды dd(1) не являются обязательными, но могут потре-
боваться, чтобы некоторые BIOSы правильно распознали диск:
dd if=/dev/zero of=/dev/da0 bs=512 count=32
fdisk -BI da0
dd if=/dev/zero of=/dev/da0s1 bs=512 count=32
bsdlabel -w -B da0s1
bsdlabel -e da0s1
Пример метки диска с использованием новых типов размера разделов, таких
как %, M, G и *, который может быть использован в качестве исходного
файла для ``bsdlabel -R ad0s1 new_label_file'':
# /dev/ad0s1:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 400M 16 4.2BSD 4096 16384 75 # (Cyl. 0 - 812*)
b: 1G * swap
c: * * unused
e: 204800 * 4.2BSD
f: 5g * 4.2BSD
g: * * 4.2BSD
ДИАГНОСТИКА
Драйверы устройств ядра не позволят уменьшить размер раздела диска или
изменить его смещение, если раздел используется системой.
СОВМЕСТИМОСТЬ
Поскольку для хранения количества секторов используется тип u_int32_t,
BSD метки ограничены максимумом в 2^32-1 секторов. Обычно это означает 2
терабайта дискового пространства. Диски большего размера могут быть
поделены на части, используя другие методы, например gpt(8).
Разные операционные системы семейства BSD используют немного отличающиеся
версии меток, которые в целом несовместимы друг с другом.
СМОТРИ ТАКЖЕ
ccd(4), geom(4), md(4), disktab(5), boot0cfg(8), fdisk(8), gpt(8),
newfs(8)
FreeBSD 6.2 29 декабря 2006 FreeBSD 6.2