Разбиваем диск с помощью fdisk, bsdlabel, newfs
Случается такое, что приходится работать с новым диском в ситуации когда вызвать sysinstall нет возможности. Например при работе с LifeCD или при установке в различных датацентрах или при восстановлении информации тут же с загрузившись с полумервого диска, когда нет возможности забрать сервер с собой(тут часто административные вопросы мешают) и нет возможности воспользоваться CD или DVD диском.
Первым делом подключив новый диск, мы увидим его в списке устройств.
К примеру для пусть он будет /dev/ad6.
Теперь мы должны сделать на нем слайс. Для этого нам поможет fdisk.
Вызываем его вот так:
fdisk -BI /dev/ad6
Он должен написать что то типа:
******* Working on device /dev/ad6 *******
По окончанию работы fdisk вывалится в командную строку. Это мы создали слайс на весь диск.
А в списке устройств появится /dev/ad6s1
Теперь можно приступать к разбиению слайса на разделы. Для этого служит bsdlabel.
bsdlabel – утилита для просмотра и редактирования разделов на слайсе. Если мы натравим bsdlabel на слайс на ad0, уже разбитый
bsdlabel /dev/ad0s1
то увидим примерно такое:
# /dev/ad0s1: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 759808 0 4.2BSD 0 0 0 b: 1998074 759808 swap c: 14666337 0 unused 0 0 # "raw" part, don't edit d: 1087488 2757882 4.2BSD 0 0 0 e: 614400 3845370 4.2BSD 0 0 0 f: 10206567 4459770 4.2BSD 0 0 0
Тут мы видим набор букв a:, b:, c: – это имена разделов, при этом c: нельзя использовать, он в любом случае должен оставаться неразбитый. Цифры size – это размер раздела в блоках, а offset – это сколько блоков до начала этого раздела.
4.2BSD – тип файловой системы. Для FreeBSD ufs – всегда будет 4.2BSD.
Но нам же нужно создать свой раздел.
Сам слайс мы создали, теперь нужно разметить слайс и поставить загрузчик.
Для этого выполним команду:
bsdlabel -wB /dev/ad6s1
И теперь можно посмотреть на слайс с помощью bsdlabel:
bsdlabel /dev/ad6s1
И увидем мы 2 раздела:
# /dev/ad6s1: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 1465149089 16 unused 0 0 c: 1465149105 0 unused 0 0 # "raw" part, don't edit
Первый a: отсутствует файловая система, он то нам и нужен, его и будем править. И c: он помечен как don’t edit, его трогать не будем.
Итак, если нам нужно создать 1 раздел, то делаем так:
bsdlabel -e /dev/ad6s1
Он у нас откроется в редакторе. В том редакторе который у вас прописан в переменной окружения EDITOR, по умолчанию это vi.
Вид будет такой:
# /dev/ad6s1: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 1465149089 16 unused 0 0 c: 1465149105 0 unused 0 0 # "raw" part, don't edit ~ ~ ~ ~ ~
И заменяем unused на 4.2BSD
# /dev/ad6s1: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 1465149089 16 4.2BSD 0 0 c: 1465149105 0 unused 0 0 # "raw" part, don't edit
Все. Раздел мы создали. Теперь можно его форматировать:
newfs -U /dev/ad6s1a
флаг -U означает что мы включили SoftUpdate, без него диск будет работать в Async режиме.
Вроде все просто. А что делать если надо сделать несколько разделов. Тут процедура не намного сложнее.
Открываем в том же bsdlabel -e:
bsdlabel -e /dev/ad6s1
И вписываем в таком виде:
# size offset fstype [fsize bsize bps/cpg] a: 10G 16 4.2BSD 0 0 0 b: 20G * 4.2BSD 0 0 0 d: * * 4.2BSD 0 0 0 c: 1465149105 0 unused 0 0 # "raw" part, don't edit
Как видите я не считал размер в блоках, я не считал offset, я отдал это все на откуп bsdlabel. Указал желаемые размеры разделов для первых двух. А для поледнего указал одни *, это означает использовать все текущее пространство. После этого форматируем разделы с помощью newfs:
newfs -U /dev/ad6s1a newfs -U /dev/ad6s1b newfs -U /dev/ad6s1d
В общем то и все. Не так страшно ручное разбиение.



