Инструменты пользователя

Инструменты сайта


unix:gpt

Установка диска в 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
unix/gpt.txt · Последние изменения: Sun, 05 Feb 2012 00:47 (внешнее изменение)