mdraid + mdadm + GPT+clone partitions

Итак, уже давно используются диски большого обьема. И вместо обычного MBR сейчас уже в ходу .

Как известно, sfdisk не умеет работать с GPT, и в случае замены диска скопировать разделы с помощью этой утилиты уже не получится:
# sfdisk -s /dev/sda
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util sfdisk doesn't support GPT. Use GNU Parted.

Что же делать ?

Используем sgdisk из пакета gdisk!
gdisk - GPT fdisk text-mode partitioning tool

Ставим gdisk
aptitude update && aptitude install gdisk

Исходные данные:
/dev/sdb - рабочий диск
/dev/sda - новый, который будем добавлять в софтовый рейд

Смотрим таблицу разделов на рабочем диске:

# gdisk -l /dev/sdb
GPT fdisk (gdisk) version 0.8.1
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sdb: 5860533168 sectors, 2.7 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): 20791725-AF2B-43FB-AFBA-744DC12DAD67
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 5860533134
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number  Start (sector)    End (sector)  Size       Code  Name
   1            4096         1052671   512.0 MiB   FD00
   2         1052672      2517635071   1.2 TiB     FD00
   3      2517635072      5860533134   1.6 TiB     FD00
   4            2048            4095   1024.0 KiB  EF02

Копируем таблицу разделов с рабочего диска на замененный:
# sgdisk -R=/dev/sda /dev/sdb
The operation has completed successfully.

Назначаем новый уникальный GUID для нового диска (/dev/sda):
# sgdisk -G /dev/sda
The operation has completed successfully.

Описание опций:
-R, --replicate=second_device_filename
Replicate the main device's partition table on the specified second device. Note that the replicated partition table is an exact copy, including all GUIDs; if the device should have its own unique GUIDs, you should use the -G option on the new disk.

-G, --randomize-guids
Randomize the disk's GUID and all partitions' unique GUIDs (but not their partition type code GUIDs). This function may be used after cloning a disk in order to render all GUIDs once again unique

Проверяем разметку на новом диске:

# gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.1
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 5860533168 sectors, 2.7 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): 9EA611CD-476C-486E-9F3C-C58BB831239A
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 5860533134
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number  Start (sector)    End (sector)  Size       Code  Name
   1            4096         1052671   512.0 MiB   FD00
   2         1052672      2517635071   1.2 TiB     FD00
   3      2517635072      5860533134   1.6 TiB     FD00
   4            2048            4095   1024.0 KiB  EF02

После того как разделы на новом диске соответствют разделам на рабочем диске, можно добавить их в наш SWRAID, как обычно, используя mdadm:

# mdadm -a /dev/md0 /dev/sda1
mdadm: added /dev/sda1

# mdadm -a /dev/md1 /dev/sda2
mdadm: added /dev/sda2

# mdadm -a /dev/md2 /dev/sda3
mdadm: added /dev/sda3

Проверяем состояние рейда:

# cat /proc/mdadm
Personalities : [1]
md2 : active 1 sdb3[1]
      1671447871 blocks super 1.2 [2/1] [_U]
md1 : active 1 sda2[2] sdb2[1]
      1258290040 blocks super 1.2 [2/1] [_U]
      [===>.................]  recovery = 16.1% (203303680/1258290040) finish=163.4min speed=107590K/sec
md0 : active 1 sda1[2] sdb1[1]
      524276 blocks super 1.2 [2/2] [UU]
unused devices: <none>

После того как синхронизировался boot раздел (я всегда выношу /boot в отдельный раздел), ставим груб на новый диск:
# grub-install /dev/sda
# update-grub

На этом все.
Диск заменен и добавлен в SWRAID.

One comment on “mdraid + mdadm + GPT+clone partitions

  1. # sgdisk -R=/dev/sda /dev/sdb

    В CentOS 7.1 так не сработало =(
    Похоже очепятка.

    Корректно отрабатывают
    # sgdisk -R /dev/sda /dev/sdb

    или
    #sgdisk —replicate=/dev/target /dev/source

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*