Gpart

Материал из wiki.lissyara.su
Перейти к: навигация, поиск

Gpart - утилита управления дисковыми разделами с поддержкой GEOM классов (появилась во FreeBSD 7.0, вероятно заменит собой gpt которой уже нет в 8-CURRENT).

Причины внедрения

По историческим причинам во FreeBSD существует несколько утилит для работы с разделами диска, например fdisk, bsdlabel и другие. Наличие различных утилит, с одинаковой функциональностью, в настоящее время, осложняет дальнейшее развитие, и одной из попыток исправить сложившееся положение является разработка утилиты gpart.

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

Возможности

Поддерживаемые схемы разделов

  • APM
  • BSD
  • GPT
  • MBR
  • PC98
  • VTOC8

Ключи

  • add
  • bootcode
  • commit
  • create
  • delete
  • destroy
  • modify
  • set
  • show
  • undo
  • unset

Типы разделов

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

  • efi                    - Системный раздел для компьютеров использующих Extensible Firmware Interface (EFI), "!c12a7328-f81f-11d2-ba4b-00a0c93ec93ab"
  • freebsd            - Устаревший тип раздела используемый BSD disklabel, не рекомендован к применению при использовании APM и GPT схем.
Раздел имеет идентификаторы "!165" для MBR, "!FreeBSD" для APM, и "!516e7cb4-6ecf-11d6-8ff8-00022d09712b" для GPT.
  • freebsd-boot    - Выделенный загрузочный сектор "!83bd6b9d-7f41-11dc-be0b-001560b84f0f"
  • freebsd-swap   -Выделенный раздел подкачки, "!FreeBSD-swap" для APM, и "!516e7cb5-6ecf-11d6-8ff8-00022d09712b" для GPT
  • freebsd-ufs      - Раздел содержащий UFS или UFS2 файловую систему. "!FreeBSD-UFS" для APM, и "!516e7cb6-6ecf-11d6-8ff8-00022d09712b" для GPT
  • freebsd-vinum - Раздел содержащий Vinum том. "!FreeBSD-Vinum" для APM, и "!516e7cb8-6ecf-11d6-8ff8-00022d09712b" для GPT
  • freebsd-zfs      - Раздел содержащий ZFS том. "!FreeBSD-ZFS" для APM, и "!516e7cba-6ecf-11d6-8ff8-00022d09712b" для GPT
  • mbr                 - Раздел являющийся под-разделом (MBR). "!024dee41-33e7-11d3-9d69-0008c781f39f" для GPT

План развития

  • Добавить поддержку VTOC16 схемы.
  • Probe schemes based on the partition type.
  • Добавить ioctl, чтобы процесс получения соответствующего раздела типа открыл устройства. Это позволяет fsck, монтировать или Newfs на нерест правильный бинарник или swapon она позволяет отказаться от устройства.
  • Добавить опцию "resize", чтобы разрешить изменения размера существующих разделов.
  • Добавить опцию "move", чтобы разрешить перемещение/перемещения(moving/relocating) разделов. Хорошо бы в будущем реализовать перемещение смонтированых/открытых разделов.
  • Добавить опцию "recover", чтобы позволить востанавливать таблицы разделов (GPT) нуждающиеся в этом.

Примеры использования

Создание GPT схемы на диске da0.

      /sbin/gpart create -s GPT da0

Выделенный GPT загрузочный код в MBR размером 15 блоков (7680 bytes).

       /sbin/gpart bootcode -b /boot/pmbr da0

Создание выделенного freebsd-boot раздела в 128 блоков (64 KB) чего в принципе хватит и для загрузки ZFS раздела.

        /sbin/gpart add -b 34 -s 128 -t freebsd-boot da0
             /sbin/gpart bootcode -p /boot/gptboot -i 1 da0

Просмотр состояния диска, приведен момент сразу после создания boot раздела

        /sbin/gpart show da0
             =>     34  3905340  da0  GPT  (1.9G)
                    34      128    1  freebsd-boot  (64K)
                   162  3905212       - free -  (1.9G)

Создание раздела примерно в 1Гб (2.000.000 блоков) под файловую систему ufs

        /sbin/gpart add -b 162 -s 2000000 -t freebsd-ufs da0

Просмотр состояния диска

       /sbin/gpart show da0
            =>     34  3905340  da0  GPT  (1.9G)
                   34      128    1  freebsd-boot  (64K)
                  162  2000000    2  freebsd-ufs  (977M)
              2000162  1905212       - free -  (930M)

Ссылки

RFC: making gpart default (Англ.) Обсуждение в рассылке freebsd-arch
Wiki/Gpart (Англ.) Страничка вики от разработчика, основные возможности и планы
"GUID" GPT howto (Англ.) Как перевести 7.1 на использование GPT