Главная | Контакты | Настройки СМЕНИТЬ ПАЛИТРУ:

Главная > Программы

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

2004 г
перевод В. Кравчук

НАЗВАНИЕ

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

SYNOPSIS

bsdlabel [-A] диск
bsdlabel -w [-An] [-B [-b boot ]] [-m машина ] диск [ тип ]
bsdlabel -e [-An] [-B [-b boot ]] [-m машина ] диск
bsdlabel -R [-An] [-B [-b boot ]] [-m машина ] диск файл_прототип

ОПИСАНИЕ

Утилита bsdlabel устанавливает, проверяет или изменяет метку BSD на разделе диска. Кроме того, bsdlabel может устанавливать код начальной загрузки.

Имя дискового устройства

При указании устройства префикс /dev/ можно не указывать; утилита bsdlabel автоматически будет его добавлять.

Общие опции

Опция -A разрешает обработку исторических частей метки BSD. Если эта опция не указана, для этих полей устанавливаются подходящие значения.

Опция -n останавливает программу bsdlabel непосредственно перед изменением диска, и выдает результаты вместо того, чтобы их записывать.

Аргумент -m машина требует от утилиты bsdlabel использовать структуру, подходящую для указанной машины.

Чтение метки диска

Для проверки метки на диске используйте утилиту bsdlabel без опций:

bsdlabel [-A] [-m машина ] диск

Параметр диск задает диск, который нас интересует, и может иметь вид da0 или /dev/da0. Представленная команда выдаст информацию о структуре раздела.

Запись стандартной метки

Для записи стандартной метки используйте форму:

bsdlabel -w [-An] [-m машина ] диск [ тип ]

Если тип диска указан, будет использована запись с соответствующим именем из файла disktab(5); в противном случае используется стандартная структура диска.

Редактирование существующей метки диска

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

bsdlabel -e [-An] [-m машина ] диск

Эта команда открывает метку диска в стандартном редакторе, а когда редактор завершает работу, метка проверяется и, если она корректна, записывается на диск.

Восстановление метки диска из файла

Для восстановления метки диска из файла используйте форму:

bsdlabel -R [-An] [-m машина ] диск файл_прототип

Утилита bsdlabel может восстановить метку диска, которая была ранее сохранена в файле в текстовом формате. Файл-прототип, использованный для создания метки, должен быть в том же формате, что и выдаваемый при чтении или редактировании метки. Комментарии начинаются символом '#' и продолжаются до конца строки.

Установка начальных загрузчиков

Если указан аргумент -B, код начальной загрузки будет читаться из файла /boot/boot и записываться на диск. Аргумент -b boot позволяет использовать другой файл.

ФАЙЛЫ

/boot/boot Стандартный образ загрузки. /etc/disktab Файл описания диска.

ФОРМАТ СОХРАНЕННОГО ФАЙЛА

Утилита bsdlabel использует текстовую версию метки при проверке, редактировании или восстановлении метки диска. Формат ее следующий:

8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 81920 0 4.2BSD 10248192 16 
b: 160000 81920 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 0 4.2BSD 1024 8192 16
b: 160000 81920 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 ', * будет интерпретироваться как смещение 0.

fstype Описывает назначение раздела. Пример показывает все используемые сейчас типы разделов. Для файловых систем UFS и разделов ccd используйте тип 4.2BSD. Для дисков Vinum используйте тип vinum. Также используются типы swap (область подкачки) и unused (не используемый раздел). По договоренности, раздел 'c' представляет всю секцию (slice) и должен быть типа unused, хотя утилита bsdlabel выполнение этой договоренности и не проверяет. Утилита bsdlabel также знает и ряд других типов разделов, которые сейчас не используются. (Подробнее см. определения, начиная с FS_UNUSED, в заголовочном файле <sys/disklabel.h>.)

fsize Только для файловых систем 4.2BSD и LFS, - размер фрагмента. Стандартные значения: 1024 - для разделов менее 1 Гбайта, 4096 - для разделов размером 1 Гбайт и более.

bsize Только для файловых систем 4.2BSD и LFS, - размер блока. Стандартные значения: 8192 - для разделов менее 1 Гбайта, 16384 - для разделов размером 1 Гбайт и более.

bps/cpg Для файловых систем типа 4.2BSD, - количество цилиндров в группе. Для файловых систем LFS, - значение сдвига сегмента (segment shift value). По умолчанию - 16 для разделов размером меньше 1 Гбайта и 64 для разделов размером 1 Гбайт и более.

ПРИМЕРЫ

bsdlabel da0s1

Выдать метку первой секции диска da0, которой соответствует устройство /dev/da0s1 .

bsdlabel da0s1 > savedlabel

Записать текущую метку (in-core label) для устройства da0s1 в файл savedlabel. Этот файл можно использовать с опцией -R для восстановления метки в дальнейшем.

bsdlabel -w /dev/da0s1

Создать метку для диска da0s1.

bsdlabel -e da0s1

Прочитать метку для da0s1, отредактировать ее и установить на диск результат.

bsdlabel -e -n da0s1

Прочитать метку с диска da0s1, отредактировать и показать, какой ( в секторах) будет новая метка. Новая метка не устанавливается, ни в памяти, ни на диске.

bsdlabel -w da0s1

Записать стандартную метку на диск da0s1. Для редактирования разделов и информации о типах файловых систем используется другая команда - bsdlabel -e .

bsdlabel -R da0s1 savedlabel

Восстановить в памяти и на диске метку для da0s1 на базе информации в файле savedlabel .

bsdlabel -R -n da0s1 label_layout

Выдать вид метки для da0s1 при использовании структуры разделов, указанной в файле label_layout. Это полезно для определения того, сколько всего места будут занимать разделы, размер которых задан с помощью % или *.

bsdlabel -B da0s1

Установить новую загрузочную запись (bootstrap) на da0s1. Код загрузки берется из файла /boot/boot .

bsdlabel -w -B -b newboot /dev/da0s1

Установить новую метку и загрузочную запись. Код загрузки берется из файла newboot в текущем рабочем каталоге.

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

Полностью "стереть" прежнюю информацию на диске, создавая новый загрузочный диск с таблицей разделов DOS, содержащей одну секцию, занимающую весь диск. Проинициализировать метку этой секции и отредактировать ее. Команды dd(1) - не обязательны, но могут понадобиться для некоторых версий BIOS, чтобы они могли правильно распознать диск.

Вот пример метки диска, использующий разные единицы измерения для разделов ( % , M, G и *), которую можно задать в исходном файле для команды "bsdlabel -R ad0s1c файл_новой_метки ":

# /dev/ad0s1c:
   8 partitions:
   # size offset fstype [fsize bsize bps/cpg]
   a: 400M 0 4.2BSD 4096 16384 75 # (Cyl. 0 - 812*)
   b: 1G * swap
   c: * * unused
   e: 204800 * 4.2BSD
   f: 5g * 4.2BSD
   g: * * 4.2BSD

ДИАГНОСТИКА

Драйверы устройств ядра не позволяют уменьшать размер раздела диска или изменять смещение раздела, пока он открыт.

FreeBSD 4.9 15 марта 2003 года

Материал взят с сайта: http://citforum.ru/operating_systems/manpages/freebsd/BSDLABEL.8.shtml

Главная > Программы