Итак, уже давно используются диски большого обьема. И вместо обычного MBR сейчас уже в ходу gpt.
Как известно, 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 : [raid1] md2 : active raid1 sdb3[1] 1671447871 blocks super 1.2 [2/1] [_U] md1 : active raid1 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 raid1 sda1[2] sdb1[1] 524276 blocks super 1.2 [2/2] [UU] unused devices:
После того как синхронизировался boot раздел (я всегда выношу /boot в отдельный раздел), ставим груб на новый диск:
# grub-install /dev/sda
# update-grub
На этом все.
Диск заменен и добавлен в SWRAID.
# sgdisk -R=/dev/sda /dev/sdb
В CentOS 7.1 так не сработало =(
Похоже очепятка.
Корректно отрабатывают
# sgdisk -R /dev/sda /dev/sdb
или
#sgdisk –replicate=/dev/target /dev/source