Гид по технологиям

Установка GRUB и добавление /dev/sda в RAID1 на работающей LVM

5 min read Linux Обновлено 28 Sep 2025
GRUB и добавление /dev/sda в RAID1 на LVM
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)

  1. Проверить текущее состояние: df -h, cat /proc/mdstat, pvdisplay, vgdisplay, lvdisplay.
  2. Установить GRUB на дополнительный диск через grub или grub-install.
  3. Изменить тип раздела /dev/sda1 на fd (Linux raid autodetect) через fdisk.
  4. Добавить /dev/sda1 в /dev/md0: mdadm –add /dev/md0 /dev/sda1.
  5. Проверить статус синхронизации в /proc/mdstat.
  6. Обновить /etc/mdadm.conf командой mdadm –examine –scan > /etc/mdadm.conf.
  7. Перезагрузиться и проверить загрузку.
  8. Мониторить логи и здоровье массивов периодически.

Чеклист ролей: системный администратор

  • Перед изменениями: создать снапшоты/бэкапы.
  • Обновить /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), адаптируйте шаги под вашу среду.

Примечание: инструкция описывает общий рабочий процесс и предоставляет примеры вывода команд — заменяйте примеры на реальные значения вашей системы при выполнении.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Скрыть активность в Friends на Instagram
Конфиденциальность

Скрыть активность в Friends на Instagram

Переезд на RAID1 и установка GRUB
Системное администрирование

Переезд на RAID1 и установка GRUB

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

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

Corneal Key Logger: PIN из селфи
Безопасность

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

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

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

Установка BoltWire на Ubuntu 18.04
Инструкции

Установка BoltWire на Ubuntu 18.04