Прочитал много мануалов на эту тему и понял, что во всех их есть недопонимание сути процесса, и их нельзя использовать для четкой работы с дисками. Сложилось такое впечатление, что разные авторы переписывают куски текста друг у друга, так и не удосужившись до конца разобраться с этим до конца.
Несмотря на то, что я имею очень давний опыт работы с 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
Пример вывода:
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
Список полезных статей на эту тему:
- FreeBSD: ручная разметка диска http://citkit.ru/articles/155/
- FreeBSD работа с дисками http://linux.cpms.ru/?p=8183
- Install FreeBSD 11 on ZFS mirror (GPT or MBR) http://daemon-notes.com/articles/system/install-zfs/gpart
- Disk setup on FreeBSD http://www.wonkity.com/~wblock/docs/html/disksetup.html
- FreeBSD: ZFS vs UFS, и обе — против всех http://alv.me/freebsd-zfs-vs-ufs-i-obe-protiv-vsex/
11.02.2017
Метки: camcontrol , gpart , newfs