# Форматирование носителей для использования с FreeBSD

## Учебное пособие

### Doug White

`<dwhite@resnet.uoregon.edu>`

Март 1997

FreeBSD это зарегистрированная торговая марка FreeBSD Foundation.

Iomega, Zip, и Jaz это или зарегистрированные торговые марки или торговые марки Iomega Corporation в Соединенных Штатах и/или других странах.

Motif, OSF/1 и UNIX это зарегистрированные торговые марки, а IT DialTone и The Open Group это торговые марки Open Group в Соединенных Штатах и других странах.

Многие из обозначений, используемые производителями и продавцами для обозначения своих продуктов, заявляются в качестве торговых марок. Когда такие обозначения появляются в этом документе, и Проекту FreeBSD известно о торговой марке, к обозначению добавляется знак ''™'' или ''®''.

Этот документ описывает, как разбить на слайсы, разделы и отформатировать дисковые и подобные им устройства для использования с FreeBSD. Приводимые примеры были протестированы во FreeBSD 2.2 и должны работать и в других релизах. Текст был дополнен для FreeBSD версии 4.

[ По разделам / Одним файлом ]

## 1. Введение и определения

### 1.1. Обзор

Успешное выполнение добавления дисков в существующую систему является признаком опытности системного администратора. Разбиение на слайсы, разделы и добавление дисков требуют тщательности в подборе команд и их параметров. Одно неверное нажатие, и все содержимое диска может исчезнуть за считанные секунды. Этот документ был написан в попытке упростить этот процесс и избежать ошибок. К счастью, усовершенствования в имеющихся инструментах (в частности, sysinstall) весьма упростили этот процесс в последних релизах FreeBSD.

Существуют два режима форматирования диска:

- режим обеспечения совместимости: Подготовка диска так, чтобы он имел таблицу слайсов, которую можно использовать с другими операционными системами.

- режим эксклюзивного использования, иногда называемый опасным режимом: Форматирование диска без таблицы слайсов. Это упрощает процесс добавления дисков, но другие операционные системы не смогут работать с диском. Термин опасный относится к опасности не распознавания системой диска, отформатированного этим способом.

В большинстве случаев эксклюзивный режим является самым простым в использовании с существующими системами, так как новый диск, как правило, предназначен исключительно для FreeBSD. Однако режим обеспечения совместимости дает максимум возможностей в будущих установках ценой большей сложности.

Кроме выбора режима, имеются два способа разбиения диска на слайсы. Один заключается в использовании инструмента установки системы `/stand/sysinstall`. 2.1.7-RELEASE и более поздние версии `sysinstall` содержат код для облегчения установки дисков во время обычных системных работ, в основном давая доступ к редактору разделов и разметке диска и возможности записать изменения, причем будет обновляться информация только на выбранном диске и слайсе, не затрагивая другие диски. Другой метод состоит в ручном запуске утилит администратором из командной строки. Для режима эксклюзивного использования используются только три или четыре команды, хотя `sysinstall` требует некоторых ухищрений.

### 1.2. Определения

За века существования управления дисками в UNIX® было придумано много новых названий для старых вещей. В следующем словарике даны определения терминов, используемых в этом документе и (надеемся) во FreeBSD вообще.

- режим обеспечения совместимости: Разбиение диска так, что на нем присутствует таблица слайсов, используемая и другими операционными системами. Противоположен режиму эксклюзивного использования.

- (опасный) режим эксклюзивного использования: Форматирование диска без использования таблицы слайсов. Это упрощает процесс добавления дисков, однако другие (не FreeBSD) операционные системы не смогут распознать диск. Противоположен режиму обеспечения совместимости.

- диск: жесткие диски, компакт-диски, магнито-оптические и съемные носители Zip®/Jaz® являются примерами устройствами хранения, наиболее часто используемыми в наши дни. Основной принцип их работы заключается в том, что несколько крутящихся дисков раскручиваются моторчиком, в то время как головка, движущаяся по радиальной линии читает или записывает данные с диска. Запись происходит путем изменения физических свойств диска (магнитного потока, коэффициента отражения поверхности (reflectivity) и т.д.), а чтение, путём ''определения'' изменений тех же физических свойств диска.

- слайс: Часть диска. На одном диске по стандартам PC может располагаться до четырех слайсов. Слайсы состоят из последовательно располагающихся секторов. Информация о слайсах записывается в ''таблицу слайсов'', используемую системным BIOS для нахождения загрузочных разделов. Таблица слайсов в терминологии DOS обычно называется таблицей разделов (''Partition Table''). Управляется утилитой fdisk.

- раздел: Часть слайса. Обычно используется для обозначения частей слайса FreeBSD на диске. Каждая файловая система и область подкачки на диске располагаются в разделе. Управляется утилитой disklabel.

- сектор: Самая малая часть диска. Один сектор, как правило, хранит 512 байт данных.

### 1.3. Предостережения & Ловушки

Подготовка диска не является простым процессом. Весьма возможно уничтожение содержимого других дисков вашей системы, если не быть аккуратным.

Тщательно проверяйте свою работу. Очень просто уничтожить информацию не на том диске при работе с этими командами. Если сомневаетесь, обратитесь к сообщениям, выдаваемым при загрузке ядра, для определения верного имени устройства.

Излишне говорить, что мы не отвечаем за какую бы то ни было порчу данных или оборудования, с которыми вы можете столкнуться. Работайте на свой страх и риск!

### 1.4. Zip, Jaz и другие сменные носители

Сменные диски могут быть отформатированы точно так же, как обычные жесткие диски. Для определения параметров диска достаточно подключить привод к системе и вставить туда диск во время загрузки. Просмотрите вывод команды `dmesg` и удостоверьтесь, что в нем присутствуют ваше устройство и размер диска. Если ядро выдает

    Can't get the size

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

## 2. Форматирование дисков в режиме эксклюзивного использования

### 2.1. Введение

В этом разделе подробно описано, как сделать диски полностью предназначенными для FreeBSD. Помните, что иногда диски, подготовленные для режима эксклюзивного использования, не могут быть загрузочными в архитектуре PC.

### 2.2. Подготовка дисков в режиме эксклюзивного использования при помощи утилиты sysinstall

`/stand/sysinstall`, программа установки системы, в последних версиях была расширена так, что позволяет сделать процесс подготовки дисков простой задачей. Редакторы fdisk и disklabel, встроенные в sysinstall, являются инструментами с графическим пользовательским интерфейсом, устраняющими большинство неясностей при разбиении дисков. Для версий FreeBSD 2.1.7 и выше это, наверное, самый простой способ подготовки дисков.

1. Запустите sysinstall как пользователь root, набрав

       # /stand/sysinstall

   в командной строке.

2. Выберите пункт `Index`.

3. Выберите пункт `Partition`.

4. Выберите диск для редактирования с помощью клавиш управления курсором и клавиши пробела.

5. Если вы используете этот диск полностью для FreeBSD, выберите `A`.

6. Когда будет задан вопрос о том, действительно ли вы хотите это сделать, ответьте `Yes`.

7. Выберите `Write`.

8. При выдаче предупреждения Writing on installed systems, ответьте `Yes`.

9. Когда будет задан вопрос по поводу установки менеджера загрузки, выберите `None`, тем самым оставив MBR без изменений. Это необходимо лишь при новой инсталляции FreeBSD если не планируется установка диска в другую машину.

10. Нажмите ENTER в ответ на сообщение ''Wrote FDISK partition information out successfully''.

11. Выберите `Quit` для выхода из редактора FDISK и нажмите ESCAPE для возврата в меню Index.

12. Выберите пункт `Label` из меню Index.

13. Разметьте диск так, как это нужно. Для работы с единственным разделом нажмите `C` для создания раздела, примите размер по умолчанию, установите тип раздела в Filesystem и укажите точку монтирования (которая не используется).

14. Нажмите `W`, когда все закончите и захотите продолжить. Файловая система будет размечена вновь, если вы не указали противное (для новых разделов вам это делать необходимо!). Вы получите сообщение об ошибке:

        Error mounting /mnt/dev/ad2s1e on /mnt/blah : No such file or directory

    Проигнорируйте это сообщение.

15. Выйдите по нескольким нажатиям клавиши ESCAPE.

### 2.3. Подготовка диска к использованию в эксклюзивном режиме из командной строки

Выполните следующие команды, заменяя `ad2` на имя вашего диска.

    # dd if=/dev/zero of=/dev/ad2 count=2
    # disklabel /dev/ad2 | disklabel -B -R -r ad2 /dev/stdin
    We only want one partition, so using slice 'c' should be fine:
    # newfs /dev/ad2c

Если вам нужно отредактировать метку диска для создания нескольких разделов (например, раздела подкачки), выполните следующее:

    # dd if=/dev/zero of=/dev/ad2 count=2
    # disklabel /dev/ad2 > /tmp/label
    Edit disklabel to add partitions:
    # vi /tmp/label
    # disklabel -B -R -r ad2 /tmp/label
    newfs partitions appropriately

Теперь ваш диск готов к работе.

## 3. Создание дисков для использования в режиме совместимости

### 3.1. Введение

При подготовке дисков для использования в эксклюзивном режиме проще всего воспользоваться командной строкой, но этого делать не следует при подготовке дисков для использования в режиме совместимости. Утилита командной строки `fdisk` требует сложных вычислений и глубокого понимания устройства таблицы слайсов, что дано не каждому. При подготовке дисков для использования в режиме совместимости используйте sysinstall.

### 3.2. Подготовка дисков, используемых в режиме совместимости, при помощи sysinstall

1. Запустите sysinstall, работая как пользователь root, набрав

       # /stand/sysinstall

   в командной строке.

2. Выберите пункт меню `Index`.

3. Выберите пункт меню `Partition`.

4. Выберите диск для работы при помощи клавиш управления курсором и клавиши SPACE.

5. Если вы собираетесь использовать для FreeBSD весь диск, нажмите `A`.

6. Когда будет выдан вопрос:

       Do you want to do this with a true partition entry so as to remain
       cooperative with any future possible operating systems on the
       drive(s)?

   ответьте `yes`.

7. Выберите `Write`.

8. Когда будет выдано диалоговое окно для установки менеджера загрузки, выберите None при помощи клавиши SPACE, а затем нажмите ENTER для подтверждения.

9. Выберите `Quit` для выхода из FDISK.

10. После выдачи предупреждения о менеджере загрузки, выберите `None` снова.

11. Выберите пункт `Label` из меню Index.

12. Разметьте диск так, как вам нужно. В случае единственного раздела примите размер по умолчанию, тип с наличием файловой системы и точку монтирования (которая не будет использоваться).

13. Файловая система будет вновь создана, если вы не задали обратное (эту операцию обязательно нужно делать для новых разделов!). Вы получите сообщение об ошибке:

        Error mounting /mnt/dev/ad2s1e on /mnt/blah : No such file or directory

    Проигнорируйте его.

14. Выйдите, последовательно нажимая ESCAPE.

Теперь ваш новый диск готов к использованию.

## 4. Другие операции с диском

### 4.1. Добавление пространства для подкачки

При росте системы может расти и требование к объему виртуальной памяти. Хотя добавление дискового пространства для подкачки в случае уже имеющихся дисков является очень сложной задачей, можно подготовить новый диск с дополнительным пространством для подкачки.

Для добавления пространства подкачки при добавлении диска к системе:

1. При разбиении диска на разделы, отредактируйте метку диска, выделив некоторое объем диска для раздела `b', а остаток распределив в другие разделы, например, `a' или `e'. Размеры указываются в блоках по 512 байт.

2. При создании новых файловых систем на диске, НЕ делайте этого для раздела `c'. Вместо этого выполните создание новых файловых систем для разделов, не содержащих пространство для подкачки.

3. Добавьте такую строчку в файл `/etc/fstab`:

       /dev/ad0b                       none            swap    sw 0 0

   Замените здесь `/dev/ad0b` на имя устройства с только что добавленным пространством.

4. Чтобы сделать пространство для подкачки немедленно доступным, воспользуйтесь командой `swapon`.

       # swapon /dev/da0b
       swapon:  added /dev/da0b as swap space

### 4.2. Копирование содержимого дисков

Предоставил: Renaud Waldura (`<renaud@softway.com>`)

Для переноса файлов с вашего старого диска на новый, выполните:

    # mount /dev/ad2 /mnt
    # pax -r -w -p e /usr/home /mnt
    # umount /mnt
    # rm -rf /usr/home/*
    # mount /dev/ad2 /usr/home

### 4.3. Объединение дисков с помощью CCD

Команды предоставил: Stan Brown (`<stanb@awod.com>`)

Драйвер CCD (Concatenated Disk Driver) позволяет вам использовать несколько идентичных дисков как один диск. Объединение дисков может повысить производительность через распределение операций чтения и записи между дисками. Обратитесь к страницам справочной системы ccd(4) и ccdconfig(8) или к домашней странице CCD для получения подробной информации.

Вам больше не нужно компилировать специальное ядро для использования ccd. Когда вы запускаете команду `ccdconfig`, она загрузит соответствующий KLD, если в ядре нет поддержки CCD.

Вы можете строить объединенные диски в разделах типа 4.2BSD. Если вы хотите использовать весь диск, то вам все равно нужно создать новый раздел. Например, `disklabel -e` может выдавать:

    #        size   offset    fstype   [fsize bsize bps/cpg]
      c: 60074784        0    unused        0     0     0   # (Cyl.    0 - 59597)

Вы не сможете использовать раздел c для CCD, так как он имеет тип unused. Вместо этого создайте новый раздел точно такого же размера, но типа 4.2BSD:

    #        size   offset    fstype   [fsize bsize bps/cpg]
      c: 60074784        0    unused        0     0     0   # (Cyl.    0 - 59597)
       e: 60074784        0    4.2BSD        0     0     0   # (Cyl.    0 - 59597)

Для создания нового CCD выполните следующие команды. Здесь описано, как объединить три диска; просто добавляйте или убирайте устройства по мере необходимости. Помните, что объединяемые диски должны быть идентичными.

    # cd /dev ; sh MAKEDEV ccd0

    # disklabel -r -w da0 auto
    # disklabel -r -w da1 auto
    # disklabel -r -w da2 auto

    # disklabel -e da0
    Add partition e with type 4.2BSD
    # disklabel -e da1
    Add partition e with type 4.2BSD
    # disklabel -e da2
    Add partition e with type 4.2BSD

    # ccdconfig ccd0 273 0 /dev/da0e /dev/da1e /dev/da2e

    # newfs /dev/ccd0c

Значение 273 задает размер блока данных. Это число секторов диска, (каждый по 512 байт) в каждом блоке данных в CCD. Он должен быть равен по крайней мере 128 kB, и должен быть степенью числа 2.

Теперь вы можете смонтировать и использовать ваш CCD через устройство `/dev/ccd0c`.

Более мощной и гибкой альтернативой для CCD является Vinum. Обратитесь к домашней странице проекта Vinum для получения подробной информации.

## 5. Благодарности

Автор выражает благодарности тем, кто принимал участие в этом проекте:

- Darryl Okahata (`<darrylo@hpnmhjw.sr.hp.com>`) за понятное описание настройки диска для режима эксклюзивного использования, которое я постоянно использую в списке рассылки FreeBSD-questions.

- Jordan K. Hubbard `<jkh@FreeBSD.org>` за то, что он сделал sysinstall подходящим инструментом для выполнения таких работ.

- John Fieber (`<jfieber@indiana.edu>`) за создание примеров и предоставление информации о DocBook DTD, на основе чего написан этот документ.

- Greg Lehey `<grog@FreeBSD.org>` за проверку моей работы и указания на неточности, а также за поддержку.

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

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.