Bsdadmin.ru

Записки администратора FreeBSD

Путь на сайте

Домашняя Mans FreeBSD по-русски bsdlabel - чтение и запись метки диска

bsdlabel - чтение и запись метки диска

НАЗВАНИЕ
     bsdlabel - чтение и запись метки диска

СИНТАКСИС
     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, в  для более подробного ознакомле-
             ния.)

     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)

Домашняя Mans FreeBSD по-русски bsdlabel - чтение и запись метки диска