Разбивка нового диска в FreeBSD из командной строки

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

Несмотря на то, что я имею очень давний опыт работы с FreeBSD (c версии 6.0 2005 года), каждый раз при добавлении нового жесткого диска в систему я испытывал некоторые трудности, т.к. во фряхе этот процесс не так прост, как кажется на первый взгляд. Большинство админов «не парятся» и используют для данной работы автоматизированную утилиту sysinstall. Мне эта утилита не очень нравится и не всегда подходит, поэтому я решил, наконец-то, разобраться как же можно все сделать без нее, используя нативные утилиты командной строки (CLI), такие как: gpart, fdisk, bsdlabel и пр.

Теории будет немного – о ней и так уже много написано.

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

Итак, приступим.

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

Способ 1 (для типа диска SATA):

dmesg | grep «SATA» | grep «device»

Вывод примерно такой:

atapci2: <Intel ICH9 SATA300 controller> port 0xa000-0xa007,0x9c00-0x9c03,0x9880-0x9887,0x9800-0x9803,0x9480-0x948f,0x9400-0x940f irq 19 at device 31.2 on pci0
atapci3: <Intel ICH9 SATA300 controller> port 0x9000-0x9007,0x8c00-0x8c03,0x8880-0x8887,0x8800-0x8803,0x8480-0x848f,0x8400-0x840f irq 19 at device 31.5 on pci0
ada0: <ST2000DM001-9YN164 CC4B> ATA-8 SATA 3.x device
ada1: <ST2000DM001-9YN164 CC4B> ATA-8 SATA 3.x device
ada2: <WDC WD15EARS-00Z5B1 80.00A80> ATA-8 SATA 2.x device
ada3: <TOSHIBA DT01ACA200 MX4OABB0> ATA-8 SATA 3.x device

Для конкретики – нас интересует диск ada3.

Способ 2:

sysctl kern.disks
df –H

Сравнив вывод двух этих команд, мы увидим, что разделы диска ada3 не используются в данный момент в системе.

Способ 3:

camcontrol devlist & atacontrol list

Пример вывода:

[1] 2304
atacontrol:
ATA_CAM option is enabled in kernel.
Please use camcontrol instead.
ST2000DM001-9YN164 CC4B>          at scbus0 target 0 lun 0 (ada0,pass0)
ST2000DM001-9YN164 CC4B>          at scbus1 target 0 lun 0 (ada1,pass1)
WDC WD15EARS-00Z5B1 80.00A80>     at scbus3 target 0 lun 0 (ada2,pass2)
TOSHIBA DT01ACA200 MX4OABB0>      at scbus4 target 0 lun 0 (ada3,pass3)

Есть еще много способов посмотреть диски, но этого достаточно.

Как посмотреть подробную информацию о диске уже было описано в этой статье.

camcontrol identify ada3

Теперь нам надо порезать диск на куски (слайсы или разделы).
Смотрим, что в устройствах нет никаких дополнительных устройств, кроме /dev/ada3

ls –l /dev/ada3*
crw-r——  1 root  operator  0x74 12 фев 11:15 /dev/ada3

Посмотреть, какие разделы определены на диске:

gpart show -p ada3
gpart: No such geom: ada3.

Gpart сообщил нам, что на диске ada3 нет никакой схемы разбиения.

Создадим ее.

gpart create -s gpt ada3
34  3907029101  ada3  GPT  (1.8T)
34  3907029101        — free —  (1.8T)

Мне показалось странным, что gpart вдруг «украл» от моего диска 200G пространства. Этому есть объяснение: https://www.freebsd.org/doc/ru_RU.KOI8-R/books/faq/disks.html#disk-more-than-full

Почему FreeBSD считает, что размер моего диска меньше, чем заявляет его производитель?

Производители дисков считают гигабайт равным миллиарду байт, а FreeBSD приравнивает его к 1073741824 байт. Это объясняет, почему, к примеру, в сообщениях при загрузке FreeBSD указывается, что ёмкость диска, объём которого должен быть равным 80 Гбайт, составляет 76319 Мбайт.

Заметьте также, что FreeBSD будет (по умолчанию) резервировать 8% ёмкости диска.

Создаем 1-ый раздел. Ему автоматически присваивается индекс «1» при создании.

gpart add -t freebsd-ufs -l slib2 -a 8 -s 1400gb ada3

Эта команда означает, что надо добавить новый раздел с типом файловой системы UFS (стандартный для FreeBSD), меткой раздела «slib2», смещением (выравниванием) в 8 блоков и размером 170 Гб

В параметре размера диска можно указывать только целые числа, поэтому вместо 1.4tb, надо вводить 1400gb.

Вместо freebsd-ufs можно указать другой тип файловой системы, например freebsd-zfs.

Проверим:

ls –l /dev/ada3*
crw-r——  1 root  operator  0x74 12 фев 11:15 /dev/ada3
crw-r——  1 root  operator  0x95 12 фев 11:22 /dev/ada3p1

gpart show -p ada3
=>        34  3907029101    ada3  GPT  (1.8T)
34           6          — free —  (3.0k)
40  2936012800  ada3p1  freebsd-ufs  (1.4T)
2936012840   971016295          — free —  (463G)

В описаниях команды gpart под опцией «geom» подразумевается логическое имя нашего диска.

Если передумал, и хочешь удалить раздел, чтобы сделать его с другими параметрами:

gpart delete -i 1 ada3

где –i 1 – индекс раздела (в нашем случае 1, /dev/ada3p1)

Аналогично создаем остальные разделы. Последний раздел создаем без указания размера – таким образом этот раздел заберет все оставшееся место на диске.

Вот так выглядит окончательная картина:

34  3907029101    ada3  GPT  (1.8T)
34           6          — free —  (3.0k)
40  2936012800  ada3p1  freebsd-zfs  (1.4T)
2936012840   734003200  ada3p2  freebsd-ufs  (350G)
3670016040   237013088  ada3p3  freebsd-ufs  (113G)
3907029128           7          — free —  (3.5k)

Теперь можно приступать к созданию и монтированию файловых систем.
Создадим файловую систему на разделе /dev/ada3p1

newfs /dev/ada3p1

Список полезных статей на эту тему:

  1. FreeBSD: ручная разметка диска http://citkit.ru/articles/155/
  2. FreeBSD работа с дисками http://linux.cpms.ru/?p=8183
  3. Install FreeBSD 11 on ZFS mirror (GPT or MBR) http://daemon-notes.com/articles/system/install-zfs/gpart
  4. Disk setup on FreeBSD http://www.wonkity.com/~wblock/docs/html/disksetup.html
  5. FreeBSD: ZFS vs UFS, и обе — против всех http://alv.me/freebsd-zfs-vs-ufs-i-obe-protiv-vsex/

11.02.2017

Метки: , ,

Ваш отзыв

Вы должны войти, чтобы оставлять комментарии.