Источник, спасибо автору поста.
Исходные данные
Имеем два жестких диска: /dev/sda и /dev/sdb. Из них созданы четыре программных RAID-массива:
Для получения информации о состоянии массивов выполняем:
О том, что массивы в порядке, указывает наличии двух букв U в квадратных кавычках каждого массива - [UU]. Если массив поврежден, буква U меняется на _. Для данного примера:
Массивы не сихронизированы и виновен в этом сбойный диск /dev/sdb, будем его менять.
Удаление поврежденного жесткого диска
Перед установкой нового жесткого диска необходимо удалить из массива поврежденный диск. Для этого выполняем следующую последовательность команд:
Бывают ситуации, когда не все программные RAID-массивы повреждены:
В таком случае не удастся удалить рабочий раздел из массива. Необходимо сначала пометить его как сбойный, а только потом удалять:
Подготовка нового жесткого диска
Оба диска в массиве должны иметь абсолютно одинаковое разбиение. В зависимости от используемого типа таблицы разделов (MBR или GPT) необходимо использовать соответствующие утилиты для копирования таблицы разделов.
Для жесткого диска с MBR используем утилиту sfdisk:
где /dev/sda - диск источник, /dev/sdb - диск назначения.
Для жесткого диска с GPT используем утилиту sgdisk из GPT fdisk:
где /dev/sda - диск источник, /dev/sdb - диск назначения. Вторая строка назначает новому жесткому диску случайный UUID.
Добавление нового жесткого диска
Осталось добавить новый, размеченный жесткий диск в массивы и установить на нем загрузчик:
После этого начнется процесс синхронизации. Время синхронизации зависит от объема жесткого диска:
Если в системе используется загрузчик GRUB2 достаточно выполнить следующие команды (при этом нет необходимости дожидаться окончания процесса синхронизации):
После окончания синхронизации можете вздохнуть спокойно - ваши данные опять в безопасности.
Исходные данные
Имеем два жестких диска: /dev/sda и /dev/sdb. Из них созданы четыре программных RAID-массива:
- /dev/md0 - swap
- /dev/md1 - /boot
- /dev/md2 - /
- /dev/md3 - /data
Для получения информации о состоянии массивов выполняем:
# cat /proc/mdstat Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md3 : active raid1 sda4[0] sdb4[1] 1822442815 blocks super 1.2 [2/2] [UU] md2 : active raid1 sda3[0] sdb3[1] 1073740664 blocks super 1.2 [2/2] [UU] md1 : active raid1 sda2[0] sdb2[1] 524276 blocks super 1.2 [2/2] [UU] md0 : active raid1 sda1[0] sdb1[1] 33553336 blocks super 1.2 [2/2] [UU] unused devices:
О том, что массивы в порядке, указывает наличии двух букв U в квадратных кавычках каждого массива - [UU]. Если массив поврежден, буква U меняется на _. Для данного примера:
- [_U] - поврежден /dev/sda
- [U_] - поврежден /dev/sdb
# cat /proc/mdstat Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md3 : active raid1 sda4[0] sdb4[1](F) 1822442815 blocks super 1.2 [2/1] [U_] md2 : active raid1 sda3[0] sdb3[1](F) 1073740664 blocks super 1.2 [2/1] [U_] md1 : active raid1 sda2[0] sdb2[1](F) 524276 blocks super 1.2 [2/1] [U_] md0 : active raid1 sda1[0] sdb1[1](F) 33553336 blocks super 1.2 [2/1] [U_] unused devices:
Массивы не сихронизированы и виновен в этом сбойный диск /dev/sdb, будем его менять.
Удаление поврежденного жесткого диска
Перед установкой нового жесткого диска необходимо удалить из массива поврежденный диск. Для этого выполняем следующую последовательность команд:
# mdadm /dev/md0 -r /dev/sdb1 # mdadm /dev/md1 -r /dev/sdb2 # mdadm /dev/md2 -r /dev/sdb3 # mdadm /dev/md3 -r /dev/sdb4
Бывают ситуации, когда не все программные RAID-массивы повреждены:
# cat /proc/mdstat Personalities : [raid1] md3 : active raid1 sda4[0] sdb4[1](F) 1822442815 blocks super 1.2 [2/1] [U_] md2 : active raid1 sda3[0] sdb3[1](F) 1073740664 blocks super 1.2 [2/1] [U_] md1 : active raid1 sda2[0] sdb2[1](F) 524276 blocks super 1.2 [2/1] [U_] md0 : active raid1 sda1[0] sdb1[1] 33553336 blocks super 1.2 [2/1] [UU] unused devices:
В таком случае не удастся удалить рабочий раздел из массива. Необходимо сначала пометить его как сбойный, а только потом удалять:
# mdadm /dev/md0 -f /dev/sdb1
# cat /proc/mdstat Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md3 : active raid1 sda4[0] sdb4[1](F) 1822442815 blocks super 1.2 [2/1] [U_] md2 : active raid1 sda3[0] sdb3[1](F) 1073740664 blocks super 1.2 [2/1] [U_] md1 : active raid1 sda2[0] sdb2[1](F) 524276 blocks super 1.2 [2/1] [U_] md0 : active raid1 sda1[0] sdb1[1](F) 33553336 blocks super 1.2 [2/1] [U_] unused devices: # mdadm /dev/md0 -r /dev/sdb1 # mdadm /dev/md1 -r /dev/sdb2 # mdadm /dev/md2 -r /dev/sdb3 # mdadm /dev/md3 -r /dev/sdb4
Подготовка нового жесткого диска
Оба диска в массиве должны иметь абсолютно одинаковое разбиение. В зависимости от используемого типа таблицы разделов (MBR или GPT) необходимо использовать соответствующие утилиты для копирования таблицы разделов.
Для жесткого диска с MBR используем утилиту sfdisk:
#sfdisk -d /dev/sda | sfdisk --force /dev/sdb
где /dev/sda - диск источник, /dev/sdb - диск назначения.
Для жесткого диска с GPT используем утилиту sgdisk из GPT fdisk:
#sgdisk -R /dev/sdb /dev/sda #sgdisk -G /dev/sdb
где /dev/sda - диск источник, /dev/sdb - диск назначения. Вторая строка назначает новому жесткому диску случайный UUID.
Добавление нового жесткого диска
Осталось добавить новый, размеченный жесткий диск в массивы и установить на нем загрузчик:
# mdadm /dev/md0 -a /dev/sdb1 # mdadm /dev/md1 -a /dev/sdb2 # mdadm /dev/md2 -a /dev/sdb3 # mdadm /dev/md3 -a /dev/sdb4
После этого начнется процесс синхронизации. Время синхронизации зависит от объема жесткого диска:
# cat /proc/mdstat Personalities : [raid1] md3 : active raid1 sdb4[1] sda4[0] 1028096 blocks [2/2] [UU] [==========>..........] resync = 50.0% (514048/1028096) finish=97.3min speed=65787K/sec md2 : active raid1 sdb3[1] sda3[0] 208768 blocks [2/2] [UU] md1 : active raid1 sdb2[1] sda2[0] 2104448 blocks [2/2] [UU] md0 : active raid1 sdb1[1] sda1[0] 208768 blocks [2/2] [UU] unused devices:
Если в системе используется загрузчик GRUB2 достаточно выполнить следующие команды (при этом нет необходимости дожидаться окончания процесса синхронизации):
#grub-install /dev/sdb #update-grub
После окончания синхронизации можете вздохнуть спокойно - ваши данные опять в безопасности.