Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


Разбивка диска с помощью GPT.

Разбивка диска с помощью GPT (GUIDPartitionTable) - стандарт размещения разделов, на жестком диске.

 GUID Partition Table (GPT) - является частью стандарта EFI (UEFI), который был предложен компанией Intel, в качестве замены BIOS. EFI использует GPT, так же как BIOS, использует Master Boot Record (MBR).

Используемая, в настоящее время схема PC BIOS, использует master boot record (MBR), в начале процесса инициализации диска. MBR начинается с части называемой Master Boot Code, исполняемый двоичный код, служащий для идентификации и загрузки, активного раздела. EFI вместо того, что бы реализовывать аналогичную функциональность, и для обратной совместимости содержит в первом секторе MBR, а уже после него идет Primary Partition Table Header (заголовок GPT), который и является началом GPT.

 GPT использует современную схему адресации logical block addressing (LBA), вместо устаревшей cylinder-head-sector (CHS), используемой MBR (современные реализации MBR тоже используют и LBA). Устаревшая MBR содержится в LBA 0, GPT заголовок начинается с LBA 1 и за ним следует таблица разделов (рис. 1).

 QIP Shot - Image: 2018-02-01 12:06:18

 Рис. 1.

  GPT обеспечивает следующие возможности: 

- максимальная ёмкость 18 экзабайт;

- до 128 разделов на диске;

- есть главная и резервная таблицы разделов;

- чётко определённый и самораспознающийся формат раздела;

- каждый раздел имеет уникальный ID во избежание одинаковых идентификаторов;

-  GPT заголовок и таблица разделовGPT защищены контрольной суммой.

 

1.) Смотрим что у нас на жестком диске и удаляем все разделы.

 

1.1  Информация о разделах: Fixit$ gpart show ipsd0 

 =>     63 312581745 ipsd0 MBR  (149G)       

          63  11293632     1 !12 [active]  (5.4G)  

         11293695 301288113       - free -  (144G)

 

1.2  Удаляем разделы: Fixit$ gpart delete -i 1 ipsd0

 ipsd0s1 deleted

 

1.3  Уничтожаем существующую таблицу разделов (в данном случае - MBR): Fixit$ gpart destroy ipsd0

ipsd0 destroyed

 

1.4  Создаём таблицу GPT:   Fixit$ gpart create -s GPT ipsd0

 ad4 created

 Fixit$ gpart show ipsd0

 =>      34 312581741 ipsd0 GPT  (149G)

           34 312581741       - free —  (149G)

 

 

2.) Создаём разделы.

 

2.1. Раздел для загрузчика.

    Размер раздела для загрузчика не должен быть больше 545 кБ, иначе при загрузке появится сообщение "Boot loader too large" и загрузка остановится.

  По умолчанию началом первого раздела за GPT является 34 блок, но если в качестве целевого жёсткого диска будет использоваться жёсткий диск с 4кБ секторами, то в качестве первого блока для раздела freebsd-boot необходимо использовать не 34, а 40 блок (т.е. сделать необходимое выравнивание).

   Загрузочный раздел начинается по смещению 34 блока от начала диска - сразу после таблицы GPT. Его размер задаём в 256 блоков, это составляет 128 кБайт.

Тип раздела "freebsd-boot" означает, что этот раздел выделен специально под загрузчик FreeBSD: Fixit$ gpart add -b 34 -s 256 -t freebsd-boot ipsd0

 ipsd0p1 added

Параметр -b указывает смещение начального блока создаваемого раздела, а -s - его размер (дополнения к цифрам k, m, g означают, что размер задан не в блоках, а в кило-, мега-, гигабайтах).

 

     2.2.  Создаём раздел для swap-а.

 Можно создать swap и на ZFS, но тогда не будет возможности записи дампа ядра при kernel panic. Размер раздела будет 4 ГБ, в блоках это = 1024*1024*2*4 (в 1кБ два блока).

Тип раздела — freebsd-swap:Fixit$ gpart add -b 290 -s 8388608 -t freebsd-swap -l swap0 ipsd0

 ipsd0p2 added

 

    2.3. Создаём раздел для ZFS пула, отведя ему остатки.

Тип раздела — freebsd-zfs. Начало и конец раздела можно не указывать, если под него выделяется всё оставшееся место на жёстких дисках, как в моём случае.

Fixit$ gpart add -t freebsd-zfs -l disk0 ipsd0

ipsd0p3 added

 

Итоговая таблица GPT будет такой: Fixit$ gpart show ipsd0

 =>     34 312581741 ipsd0 GPT (68G)

          34       256     1 freebsd-boot  (128K)

         290   8388608     2 freebsd-swap  (4.0G)

     8388608 134983357     3 freebsd-zfs  (64G)

 

Можно вывести и по указанным идентификаторам: Fixit$ gpart show -l ipsd0

 =>     34 312581741 ipsd0 GPT (68G)

          34       256     1 boot0  (128K)

         290   8388608     2 swap0  (4.0G)

     8388608 134983357     3 disk0  (64G)

 

 Устанавливаем защитный Protected MBR (pmbr) от программ, не знающих GPT, и GPART загрузчик gptzfsboot:  Fixit$ gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ipsd0

Недавно в утилиту gpart была добавлена новая функциональность: возможность резервного копирования и восстановления таблицы разделов: gpart backup/restore.


Лицензия