Содержание
Установка диска в FreeBSD
Старый стандартный способ: fdisk(8) и bsdlabel(8)
Наше дисковое устройство которое будем настраивать: da0
Создаем один большой слайс размером в весь диск и создаем загрузочный блок в нем:
# fdisk -BI da0
Запишим пустую метку для первого слайса
# bsdlabel -w -B da0s1
Редактируем метки для создания разделов (партиций). По умолчанию естественно используется vi
# bsdlabel -e da0s1
Пустой раздел a занимат пространство всего диска.
# /dev/da0s1: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 78172211 16 unused 0 0 c: 78172227 0 unused 0 0 # "raw" part, don't edit
Делим пространство раздела a по своему усмотрению. Раздел c оставляем нетронутым. В качестве размерных единиц можно использовать K, M, G. Должно получиться что то вроде этого:
# /dev/da0s1: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 1G 16 4.2BSD 0 0 # / b: 4G * swap c: 78172227 0 unused 0 0 # "raw" part, don't edit d: 1G * 4.2BSD # var e: 1G * 4.2BSD # tmp f: * * 4.2BSD # usr
Форматируем разделы, задаем им метки. Включаем soft update для лучшей производительности:
# glabel label swap /dev/da0s1b # newfs -L rootfs /dev/da0s1a # newfs -L varfs -U /dev/da0s1d # newfs -L tmpfs -U /dev/da0s1e # newfs -L usrfs -U /dev/da0s1f
Новый альтернативный метод: gpart(8)
Будем настраивать ada0.
Если диск был в использовании, на нем скорее всего осталась старая разметка. Удалим ее:
gpart destroy -F ada0 ada0 destroyed
Теперь создадим gpart-схему:
gpart create -s gpt /dev/ada0 ada0 created
Создадим загрузочный раздел размером 128к, в котором будет находиться загрузчик. Назначим этому разделу GPT-метку gpboot, она будет видна в /dev/gpt.
gpart add -f freebsd-boot -l gpboot -s 128K ada0 ada0p1 added
Установим GPT-boot-код в загрузочный раздел:
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0 bootcode written to ada0
Создадим корневой раздел для / размером 2G. Он должен начинаться с границы 1М, для правильного выравнивания на дисках с 4К размером сектора. Это совместимо с GPT-разметкой в WIN-7. Назначим разделу GPT-метку gprootfs.
gpart add -t freebsd-ufs -l gprootfs -b 1M -s 2G ada0 ada0p2 added
Создадим оставшиеся разделы: swap, /tmp, /var, /usr. В последней команде опустим параметр в опции -s, т. е. не будем задавать размер. В этом случае будет использовано все свободное пространство раздела.
gpart add -t freebsd-swap -l gpswap -s 2G ada0 ada0p3 added gpart add -t freebsd-ufs -l gptmpfs -s 3G ada0 ada0p4 added gpart add -t freebsd-ufs -l gpvarfs -s 6G ada0 ada0p5 added gpart add -t freebsd-ufs -l gpusrfs ada0 ada0p6 added gpart show -l -p ada0 => 34 78242909 ada0 GPT (37G) 34 256 ada0p1 gpboot (128K) 290 1758 - free - (879K) 2048 4194304 ada0p2 gprootfs (2.0G) 4196452 4194303 ada0p3 gpswap (2.0G) 8390656 6291456 ada0p4 gptmpfs (3.0G) 14682112 12582912 ada0p5 gpvarfs (6.0G) 27265024 50977919 ada0p6 gpusrfs (24G)
Если что то не получилось, можно удалить разделы по одному и начать все заново. В новых версиях для удаления всех сразу можно использовать команду gpart destroy -F ada0 Например удалим 2 последних созданных раздела с номерами 5 и 6:
gpart delete -i 6 ada0 ada0p6 deleted gpart delete -i 5 ada0 ada0p5 deleted
Отформатируем наши разделы. Для всех, кроме корневого используем softupdate для лучшего быстродействия.
newfs /dev/gpt/gprootfs newfs -U /dev/gpt/gptmpfs newfs -U /dev/gpt/gpvarfs newfs -U /dev/gpt/gpusrfs