Установка GRUB и добавление /dev/sda в RAID1 на работающей LVM
Коротко: устанавливаем GRUB на второй диск, проверяем состояние md-устройств и LVM, меняем тип раздела на /dev/sda1 на Linux raid autodetect, добавляем его в массив /dev/md0 и обновляем /etc/mdadm.conf. В конце перезагружаем и проверяем, что система корректно загружается с зеркала RAID.
О чём статья
Эта инструкция показывает, как подготовить загрузчик GRUB и добавить второй диск (/dev/sda) в уже работающую конфигурацию программного RAID1 поверх LVM. Поддерживаются шаги установки GRUB, проверка статуса md-устройств, изменение типа раздела и обновление конфигурации mdadm. Предполагается, что у вас уже настроен RAID на /dev/sdb и LVM поверх /dev/md1, и что вы хотите синхронизировать /dev/sda как зеркальный диск.
Важно: перед выполнением любых операций сделайте резервную копию критичных данных и, по возможности, проверьте процедуру на тестовой машине.
Требования и предпосылки
- Права root или sudo.
- Установленные пакеты: grub (или grub-legacy, если у вас старая система), mdadm, lvm2.
- Второй физический диск /dev/sdb уже настроен в RAID; цель — сделать /dev/sda зеркалом.
- Знание текущей схемы разделов и устройств (df, cat /proc/mdstat, pvdisplay, vgdisplay, lvdisplay).
Важно: команды и выводы в материалах ниже приведены в оригинальном виде — используйте их как шаблон и адаптируйте под вашу систему.
Подготовка GRUB
Необходимо установить загрузчик GRUB на второй физический диск /dev/sdb (в примере это уже настроено) и затем на /dev/sda. Начнём с установки на второй диск через интерактивную оболочку grub:
grub
В интерактивной оболочке GRUB введите следующие команды (пример для первого диска в окружении grub):
root (hd0,0)
Вывод оболочки может выглядеть так:
grub> root (hd0,0)
root (hd0,0)
Filesystem type is ext2fs, partition type 0x83
grub>
Затем запускаем установку GRUB в MBR целевого диска (в примере hd0 — соответствие между grub и /dev/* зависит от вашей нумерации):
setup (hd0)
Пример вывода:
grub> setup (hd0)
setup (hd0)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... yes
Checking if "/grub/stage2" exists... yes
Checking if "/grub/e2fs_stage1_5" exists... yes
Running "embed /grub/e2fs_stage1_5 (hd0)"... 15 sectors are embedded.
succeeded
Running "install /grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/grub/stage2 /grub/grub.conf"... succeeded
Done.
grub>
Повторите те же действия для второго диска в терминале grub (в примере hd1):
root (hd1,0)
setup (hd1)
Завершите сессии командой:
quit
После возврата в обычную оболочку выполните перезагрузку, чтобы убедиться, что система может загрузиться с RAID-массивов:
reboot
Примечание: если ваша нумерация дисков отличается (например, grub видит другой порядок дисков), сопоставьте (hd0)/(hd1) с /dev/sdX заранее.
Подготовка /dev/sda и добавление в /dev/md0
После успешной установки GRUB и удачной загрузки проверьте доступность /dev/md0:
df -h
Ожидаемый пример вывода:
[root@server1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
8.6G 1.4G 6.8G 18% /
/dev/md0 99M 16M 79M 17% /boot
tmpfs 250M 0 250M 0% /dev/shm
[root@server1 ~]#
Проверим состояние md-устройств:
cat /proc/mdstat
Пример ожидаемого вывода до добавления /dev/sda1:
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[1]
104320 blocks [2/1] [_U]
md1 : active raid1 sdb2[1] sda2[0]
10377920 blocks [2/2] [UU]
unused devices:
[root@server1 ~]#
А также выводы LVM-инструментов, чтобы убедиться, что тома целы (pvdisplay, vgdisplay, lvdisplay). Примеры вывода приведены далее и должны совпадать по смыслу с вашей конфигурацией.
pvdisplay
[root@server1 ~]# pvdisplay
--- Physical volume ---
PV Name /dev/md1
VG Name VolGroup00
PV Size 9.90 GB / not usable 22.69 MB
Allocatable yes (but full)
PE Size (KByte) 32768
Total PE 316
Free PE 0
Allocated PE 316
PV UUID u6IZfM-5Zj8-kFaG-YN8K-kjAd-3Kfv-0oYk7J
[root@server1 ~]#
vgdisplay
[root@server1 ~]# vgdisplay
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 9
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 9.88 GB
PE Size 32.00 MB
Total PE 316
Alloc PE / Size 316 / 9.88 GB
Free PE / Size 0 / 0
VG UUID ZPvC10-cN09-fI0S-Vc8l-vOuZ-wM6F-tlz0Mj
[root@server1 ~]#
lvdisplay
[root@server1 ~]# lvdisplay
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID vYlky0-Ymx4-PNeK-FTpk-qxvm-PmoZ-3vcNTd
LV Write Access read/write
LV Status available
# open 1
LV Size 8.88 GB
Current LE 284
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol01
VG Name VolGroup00
LV UUID Ml9MMN-DcOA-Lb6V-kWPU-h6IK-P0ww-Gp9vd2
LV Write Access read/write
LV Status available
# open 1
LV Size 1.00 GB
Current LE 32
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
[root@server1 ~]#
Теперь нужно изменить тип первого раздела на /dev/sda1 на «Linux raid autodetect» (код fd) с помощью fdisk:
fdisk /dev/sda
Пример интеракции fdisk (вводы показаны как <–):
[root@server1 ~]# fdisk /dev/sda
The number of cylinders for this disk is set to 1305.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): <-- t
Partition number (1-4): <-- 1
Hex code (type L to list codes): <-- fd
Changed system type of partition 1 to fd (Linux raid autodetect)
Command (m for help): <-- w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@server1 ~]#
После изменения типа раздела добавьте /dev/sda1 в массив /dev/md0:
mdadm --add /dev/md0 /dev/sda1
Проверьте состояние массива заново:
cat /proc/mdstat
После добавления /dev/sda1 вы должны увидеть, что md0 стал активным с двумя устройствами:
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda1[0] sdb1[1]
104320 blocks [2/2] [UU]
md1 : active raid1 sdb2[1] sda2[0]
10377920 blocks [2/2] [UU]
unused devices:
[root@server1 ~]#
Обновите конфигурацию mdadm, чтобы она отражала текущее состояние массивов:
mdadm --examine --scan > /etc/mdadm.conf
Проверить содержимое можно так:
cat /etc/mdadm.conf
Пример ожидаемой записи в файле:
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=0a96be0f:bf0f4631:a910285b:0f337164
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=f9e691e2:8d25d314:40f42444:7dbe1da1
Наконец, перезагрузите систему ещё раз, чтобы убедиться, что загрузчик и RAID корректно настроены:
reboot
Ожидается, что система загрузится без проблем с зеркальной конфигурации RAID.
Критерии приёмки
- /dev/md0 отображается в df -h и смонтирован как /boot (или в соответствии с вашей схемой).
- В /proc/mdstat для md0 и md1 отображается [UU] (оба зеркальных устройства доступны).
- pvdisplay/vgdisplay/lvdisplay показывают ожидаемые размеры и доступность LVM-томов.
- /etc/mdadm.conf содержит записи для всех активных массивов.
- Система успешно перезагружается и загружается с RAID-массивов.
Проверки и отладка — краткий контрольный список админа
- Перед началом: снять резервную копию /boot, конфигурации LVM и mdadm.
- Проверьте табличку разделов: fdisk -l /dev/sda /dev/sdb.
- После изменения partition type убедитесь, что kernel перечитал таблицу (reboot при необходимости).
- Если mdadm –add не добавляет устройство, посмотрите dmesg и /var/log/messages на предмет ошибок диска.
- Если grub не устанавливается на диск, проверьте совместимость MBR/GPT и версию GRUB (legacy vs GRUB2).
Когда этот подход не сработает
- Если у вас GPT-диски без BIOS-файловой области и старая версия grub-legacy, установка в MBR может не пройти. Для GPT рассмотрите установку grub2 с esp.
- Если на дисках есть аппаратный RAID-контроллер, тогда управляйте зеркалированием через контроллер, а не mdadm (вмешательство может привести к конфликтам).
- Если раздел /boot слишком мал или повреждён, GRUB может не установить stage1/2; проверьте файловую систему и размер /boot.
Альтернативные подходы и модели принятия решения
- Установка GRUB2: использовать grub2-install вместо старого grub, особенно на современных системах и GPT-дисках.
- Использовать dd или sgdisk для копирования таблицы разделов между дисками перед настройкой RAID, если требуется точное зеркалирование разделов.
- Для критичных систем использовать двустороннюю проверку загрузки: установить и протестировать загрузку с каждого физического диска в отдельности в контролируемом окне техобслуживания.
Быстрая методология (шаги 1–8)
- Проверить текущее состояние: df -h, cat /proc/mdstat, pvdisplay, vgdisplay, lvdisplay.
- Установить GRUB на дополнительный диск через grub или grub-install.
- Изменить тип раздела /dev/sda1 на fd (Linux raid autodetect) через fdisk.
- Добавить /dev/sda1 в /dev/md0: mdadm –add /dev/md0 /dev/sda1.
- Проверить статус синхронизации в /proc/mdstat.
- Обновить /etc/mdadm.conf командой mdadm –examine –scan > /etc/mdadm.conf.
- Перезагрузиться и проверить загрузку.
- Мониторить логи и здоровье массивов периодически.
Чеклист ролей: системный администратор
- Перед изменениями: создать снапшоты/бэкапы.
- Обновить /etc/mdadm.conf и сохранить резервную копию оригинала.
- Обновить загрузчик на обоих дисках.
- Проверить синхронизацию RAID и LVM-тома после добавления диска.
- Запланировать окно обслуживания для перезагрузки и проверки.
Короткое резюме
Вы установили GRUB на второй диск, убедились в целостности md-устройств и LVM, поменяли тип раздела /dev/sda1 на Linux raid autodetect, добавили /dev/sda1 в массив /dev/md0, обновили /etc/mdadm.conf и успешно перезагрузили систему. Постоянно проверяйте /proc/mdstat и логи, чтобы вовремя заметить возможные деградации массива.
Важно: если у вас нестандартная конфигурация (GPT, UEFI, аппаратный RAID), адаптируйте шаги под вашу среду.
Примечание: инструкция описывает общий рабочий процесс и предоставляет примеры вывода команд — заменяйте примеры на реальные значения вашей системы при выполнении.
Похожие материалы

Скрыть активность в Friends на Instagram
Переезд на RAID1 и установка GRUB

Установить Windows 11 25H2 — Release Preview

Corneal Key Logger: PIN из селфи

Тачпад не работает в Windows 10 — как исправить
