.\" Copyright (c) 1987, 1988, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Symmetric Computer Systems. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)disklabel.8 8.2 (Berkeley) 4/19/94 .\" %FreeBSD: src/sbin/bsdlabel/bsdlabel.8,v 1.68 2006/12/29 16:28:38 ru Exp % .\" $FreeBSDru: frdp/doc/ru_RU.KOI8-R/man/man8/bsdlabel.8,v 1.1 2006/12/29 16:33:54 ru Exp $ .\" $FreeBSD$ .\" .Dd 29 декабря 2006 .Dt BSDLABEL 8 .Os .Sh НАЗВАНИЕ .Nm bsdlabel .Nd чтение и запись метки BSD .Sh СИНТАКСИС .Nm .Op Fl A .Ar диск | Fl f Ar файл .Nm .Fl w .Op Fl \&An .Op Fl B Op Fl b Ar загрузчик .Op Fl m Ar машина .Ar диск | Fl f Ar файл .Op Ar тип .Nm .Fl e .Op Fl \&An .Op Fl B Op Fl b Ar загрузчик .Op Fl m Ar машина .Ar диск | Fl f Ar файл .Nm .Fl R .Op Fl \&An .Op Fl B Op Fl b Ar загрузчик .Op Fl m Ar машина .Op Fl f .Ar диск | Fl f Ar файл .Ar файл_прототипа .Sh ОПИСАНИЕ Утилита .Nm устанавливает, проверяет или изменяет метку .Bx в разделе диска или в файле, содержащем образ раздела. Кроме того, .Nm может установить на диск код загрузчика. .Ss Имя дискового устройства При указании устройства (т.е., когда опция .Fl f не используется) префикс .Pa /dev/ может быть опущен и .Nm добавит его автоматически. .Ss Общие опции Опция .Fl A включает обработку традиционных частей метки .Bx . Если опция не указана, эти поля автоматически инициализируются подходящими значениями. .Pp Опция .Fl f говорит .Nm о том, что вместо раздела диска нужно будет оперировать с файлом. .Pp Опция .Fl n прерывает работу .Nm сразу перед тем, как диск был бы модифицирован, и вместо записи результата на диск просто показывает его. .Pp Опция .Fl m Ar машина заставляет .Nm использовать формат другой архитектуры. В настоящее время допустимыми значениями являются .Cm i386 , amd64 , ia64 , pc98 и .Cm alpha . Если эта опция опускается, утилита .Nm будет использовать формат машины, на которой она работает. .Ss Чтение метки диска Чтобы просмотреть имеющуюся метку диска, используйте .Nm так: .Pp .Nm .Op Fl A .Op Fl m Ar машина .Ar диск .Pp Аргумент .Ar диск указывает на желаемый диск, и может быть задан в виде .Pa da0 или .Pa /dev/da0 . Эта команда отобразит текущую конфигурацию разделов. .Ss Запись стандартной метки Чтобы записать стандартную метку, используйте .Nm так: .Pp .Nm .Fl w .Op Fl \&An .Op Fl m Ar машина .Ar диск .Op Ar тип .Pp Если указан .Ar тип диска, будет использована соответствующая запись из файла .Xr disktab 5 , в противном случае будет записана стандартная метка. .Ss Редактирование существующей метки диска Чтобы отредактировать существующую метку диска, используйте .Nm так: .Pp .Nm .Fl e .Op Fl \&An .Op Fl m Ar машина .Ar диск .Pp Эта команда открывает дисковую метку в редакторе по умолчанию, после редактирования проверяет её на корректность и записывает её на диск. .Ss Восстановление метки диска из файла Чтобы восстановить метку диска из файла, используйте .Nm так: .Pp .Nm .Fl R .Op Fl \&An .Op Fl m Ar машина .Ar диск файл_прототипа .Pp Утилита .Nm позволяет восстановить метку диска, которая была предварительно сохранена в файл в формате .Tn ASCII . Файл прототипа должен иметь тот же формат, что используется при чтении или редактировании метки. Комментарии начинаются со знака .Ql # и продолжаются до конца строки. .Ss Установка загрузчика Если указана опция .Fl B , код загрузчика будет cчитан из файла .Pa /boot/boot и записан на диск. Опция .Fl b Ar загрузчик позволяет задать другой файл с кодом загрузчика. .Sh ФАЙЛЫ .Bl -tag -width ".Pa /etc/disktab" -compact .It Pa /boot/boot Образ стандартного загрузчика. .It Pa /etc/disktab Файл описания дисков. .El .Sh ФОРМАТ СОХРАНЯЕМОГО ФАЙЛА Утилита .Nm использует .Tn ASCII формат для чтения, редактирования и восстановления метки диска. Формат метки следующий: .Bd -literal -offset 4n 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 .Ed .Pp Если указана опция .Fl A , то формат будет таким: .Bd -literal -offset 4n # /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 .Ed .Pp Строки, начинающиеся с символа .Ql # являются комментариями. .Pp Таблица разделов может иметь до 8 разделов. Каждый раздел содержит следующую информацию: .Bl -tag -width indent .It Ar # Идентификатор раздела. Обозначается одной латинской буквой в интервале от .Ql a до .Ql h . По договорённости, раздел .Ql c зарезервирован для описания диска в целом. .It Ar size Размер раздела в секторах, .Cm K (килобайтах - 1024), .Cm M (мегабайтах - 1024*1024), .Cm G (гигабайтах - 1024*1024*1024), .Cm % процентах .Em после удаления всех разделов с фиксированным размером, кроме раздела .Ql c ) , или .Cm * (всё свободное место, оставшееся .Em после разделов с фиксированным размером и разделов, описанных в процентах). Для раздела .Ql c размер .Cm * обозначает весь диск. Допустимо указание суффиксов .Cm K , M и .Cm G в нижнем регистре. Размер и суффикс должны быть указаны без пробелов между ними. .Pp Пример: 2097152, 1G, 1024M и 1048576K все обозначают один и тот же размер (с учётом 512-байтовых секторов). .It Ar offset Смещение начала раздела относительно начала диска в секторах, или .Cm * , чтобы утилита .Nm сама посчитала правильное значение (конец предыдущего раздела плюс один, раздел .Ql c игнорируется). Для раздела .Ql c , .Cm * обозначает нулевое смещение. Первый раздел должен иметь смещение 16, потому что первые 16 секторов зарезервированы под метаданные. .It Ar fstype Описывает назначение раздела. Пример выше показывает все используемые в настоящий момент типы разделов. Для файловых систем .Tn UFS и разделов .Xr ccd 4 используется тип .Cm 4.2BSD . Для дисков Vinum используется тип .Cm vinum . К другим часто встречающимся типам относятся .Cm swap и .Cm unused . По соглашению, раздел .Ql c представляет собой весь слайс и должен иметь тип .Cm unused , хотя утилита .Nm не заставляет придерживаться этого соглашения. Утилита .Nm также знает о других типах разделов, которые не используются в настоящее время. (Смотрите определения, начинающиеся с .Dv FS_UNUSED , в .In sys/disklabel.h для более подробного ознакомления.) .It Ar fsize Только для файловых систем .Cm 4.2BSD , размер фрагмента; см.\& .Xr newfs 8 . .It Ar bsize Только для файловых систем .Cm 4.2BSD , размер блока; см.\& .Xr newfs 8 . .It Ar bps/cpg Только для файловых систем .Cm 4.2BSD , количество цилиндров в группе; см.\& .Xr newfs 8 . .El .Sh ПРИМЕРЫ Показать метку первого слайса диска .Pa da0 , полученную через .Pa /dev/da0s1 : .Pp .Dl "bsdlabel da0s1" .Pp Записать метку .Pa da0s1 , хранящуюся в ядре, в файл .Pa savedlabel . В дальнейшем этот файл может быть использован для восстановления метки с помощью опции .Fl R : .Pp .Dl "bsdlabel da0s1 > savedlabel" .Pp Создать метку на .Pa da0s1 : .Pp .Dl "bsdlabel -w /dev/da0s1" .Pp Прочитать метку с .Pa da0s1 , отредактировать её и записать результат на диск: .Pp .Dl "bsdlabel -e da0s1" .Pp Прочитать метку .Pa da0s1 , отредактировать её, и показать, какой бы была новая метка (в секторах). Эта команда .Em не записывает новую метку, ни в ядро, ни на диск: .Pp .Dl "bsdlabel -e -n da0s1" .Pp Записать стандартную метку на .Pa da0s1 . Чтобы впоследствии отредактировать разделы и параметры файловых систем, воспользуйтесь другой командой, .Nm Fl e : .Pp .Dl "bsdlabel -w da0s1" .Pp Восстановить метку диска на .Pa da0s1 на основе информации, полученной из файла .Pa savedlabel : .Pp .Dl "bsdlabel -R da0s1 savedlabel" .Pp Показать, какой бы была метка на .Pa da0s1 , используя конфигурацию разделов в файле .Pa label_layout . Полезно для определения актуального дискового пространства, выделяемого под разделы, при использовании схемы разбиения на разделы на основе .Cm % и .Cm * : .Pp .Dl "bsdlabel -R -n da0s1 label_layout" .Pp Установить новый загрузчик на .Pa da0s1 . Код загрузчика берётся из файла .Pa /boot/boot : .Pp .Dl "bsdlabel -B da0s1" .Pp Установить новую метку и загрузчик. Код загрузчика берётся из файла .Pa newboot в текущем рабочем каталоге: .Pp .Dl "bsdlabel -w -B -b newboot /dev/da0s1" .Pp Полностью стереть всю предыдущую информацию на диске, создав на её месте новый загрузочный диск с таблицей DOS-разделов, состоящей из одного слайса на весь диск. Инициализировать метку на этом слайсе, затем отредактировать её. Команды .Xr dd 1 не являются обязательными, но могут потребоваться, чтобы некоторые .Tn BIOS Ns ы правильно распознали диск: .Bd -literal -offset indent 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 .Ed .Pp Пример метки диска с использованием новых типов размера разделов, таких как .Cm % , M , G и .Cm * , который может быть использован в качестве исходного файла для .Dq Li "bsdlabel -R ad0s1 new_label_file" : .Bd -literal -offset 4n # /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 .Ed .Sh ДИАГНОСТИКА Драйверы устройств ядра не позволят уменьшить размер раздела диска или изменить его смещение, если раздел используется системой. .Sh СОВМЕСТИМОСТЬ Поскольку для хранения количества секторов используется тип .Vt u_int32_t , .Bx метки ограничены максимумом в 2^32-1 секторов. Обычно это означает 2 терабайта дискового пространства. Диски большего размера могут быть поделены на части, используя другие методы, например .Xr gpt 8 . .Pp Разные операционные системы семейства .Bx используют немного отличающиеся версии меток, которые в целом несовместимы друг с другом. .Sh СМОТРИ ТАКЖЕ .Xr ccd 4 , .Xr geom 4 , .Xr md 4 , .\" Xr bsdlabel 5 , .Xr disktab 5 , .Xr boot0cfg 8 , .Xr fdisk 8 , .Xr gpt 8 , .Xr newfs 8