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

GRUB и добавление /dev/sda в RAID1 на Debian

• 3 min read • Системное администрирование • Обновлено 23 Nov 2025
GRUB и добавление /dev/sda в RAID1
GRUB и добавление /dev/sda в RAID1

6 Подготовка GRUB

Далее необходимо установить загрузчик GRUB на второй жесткий диск /dev/sdb:

grub

В shell GRUB выполните следующие команды:

root (hd0,0)
grub> root (hd0,0)  
 Filesystem type is ext2fs, partition type 0x83  
  
grub>
setup (hd0)
grub> 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)"...  17 sectors are embedded.  
succeeded  
 Running "install /grub/stage1 (hd0) (hd0)1+17 p (hd0,0)/grub/stage2 /grub/menu.lst"... succeeded  
Done.  
  
grub>

Укажите корень и установите GRUB и для второго диска:

root (hd1,0)
grub> root (hd1,0)  
 Filesystem type is ext2fs, partition type 0xfd  
  
grub>
setup (hd1)
grub> setup (hd1)  
 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 (hd1)"...  17 sectors are embedded.  
succeeded  
 Running "install /grub/stage1 (hd1) (hd1)1+17 p (hd1,0)/grub/stage2 /grub/menu.lst"... succeeded  
Done.  
  
grub>

Завершите работу GRUB:

quit

Вернувшись в обычную оболочку, перезагрузите систему и убедитесь, что она загружается с RAID-массивов:

reboot

7 Подготовка /dev/sda

Если всё прошло успешно, в выводе df -h должен появиться /dev/md0:

df -h
server1:~# df -h  
Filesystem            Size  Used Avail Use% Mounted on  
/dev/mapper/debian-root  
                      4.2G  748M  3.2G  19% /  
tmpfs                 126M     0  126M   0% /lib/init/rw  
udev                   10M  108K  9.9M   2% /dev  
tmpfs                 126M     0  126M   0% /dev/shm  
/dev/md0              236M   32M  192M  15% /boot  
server1:~#

Вывод cat /proc/mdstat должен выглядеть так:

cat /proc/mdstat
server1:~# cat /proc/mdstat  
Personalities : [raid1]  
md1 : active raid1 sda5[0] sdb5[1]  
      4988032 blocks [2/2] [UU]  
  
md0 : active raid1 sdb1[1]  
      248896 blocks [2/1] [_U]  
  
unused devices:   
server1:~#

Аналогично проверьте pvdisplay, vgdisplay и lvdisplay — примерные ожидаемые выводы приведены ниже и соответствуют активному LVM-набору поверх md1.

pvdisplay
server1:~# pvdisplay  
  --- Physical volume ---  
  PV Name               /dev/md1  
  VG Name               debian  
  PV Size               4.76 GB / not usable 3.12 MB  
  Allocatable           yes (but full)  
  PE Size (KByte)       4096  
  Total PE              1217  
  Free PE               0  
  Allocated PE          1217  
  PV UUID               rwRQ4h-Cxii-coUC-ibA0-2tV0-umae-3XC083  
  
server1:~#
vgdisplay
server1:~# vgdisplay  
  --- Volume group ---  
  VG Name               debian  
  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               4.75 GB  
  PE Size               4.00 MB  
  Total PE              1217  
  Alloc PE / Size       1217 / 4.75 GB  
  Free  PE / Size       0 / 0  
  VG UUID               4UfyCV-s32P-uZ5R-asRH-9Jjg-pkF6-d5wi32  
  
server1:~#
lvdisplay
server1:~# lvdisplay  
  --- Logical volume ---  
  LV Name                /dev/debian/root  
  VG Name                debian  
  LV UUID                N58aS0-n1uV-32gb-S51m-kP75-sfA5-38SMVo  
  LV Write Access        read/write  
  LV Status              available  
  # open                 1  
  LV Size                4.19 GB  
  Current LE             1072  
  Segments               1  
  Allocation             inherit  
  Read ahead sectors     auto  
  - currently set to     256  
  Block device           253:0  
  
  --- Logical volume ---  
  LV Name                /dev/debian/swap_1  
  VG Name                debian  
  LV UUID                IGWTnc-Zgmr-pKW8-Jcp6-URYF-2j2D-Ile6kQ  
  LV Write Access        read/write  
  LV Status              available  
  # open                 2  
  LV Size                580.00 MB  
  Current LE             145  
  Segments               1  
  Allocation             inherit  
  Read ahead sectors     auto  
  - currently set to     256  
  Block device           253:1  
  
server1:~#

Теперь нужно изменить тип раздела /dev/sda1 на Linux raid autodetect:

fdisk /dev/sda

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

server1:~# fdisk /dev/sda

Command (m for help): <– t
Partition number (1-5): <– 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.
server1:~#

После изменения можно добавить /dev/sda1 в RAID-массив /dev/md0:

mdadm --add /dev/md0 /dev/sda1

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

cat /proc/mdstat
server1:~# cat /proc/mdstat  
Personalities : [raid1]  
md1 : active raid1 sda5[0] sdb5[1]  
      4988032 blocks [2/2] [UU]  
  
md0 : active raid1 sda1[0] sdb1[1]  
      248896 blocks [2/2] [UU]  
  
unused devices:   
server1:~#

Обновите /etc/mdadm/mdadm.conf, чтобы конфигурация отражала текущие массивы:

cp /etc/mdadm/mdadm.conf_orig /etc/mdadm/mdadm.conf  
mdadm --examine --scan >> /etc/mdadm/mdadm.conf

Пример содержимого /etc/mdadm/mdadm.conf после генерации:

cat /etc/mdadm/mdadm.conf
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

# by default, scan all partitions (/proc/partitions) for MD superblocks.
# alternatively, specify devices to scan, using wildcards if desired.
DEVICE partitions

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST 

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays

# This file was auto-generated on Wed, 19 Aug 2009 16:13:09 +0200
# by mkconf $Id$
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=00d834dc:29cbe6c1:325ecf68:79913751
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=8ce23a63:d17dd58b:325ecf68:79913751

Перезагрузите систему:

reboot

Система должна загрузиться без проблем. Поздравляем — программный RAID1 поверх LVM настроен и работает.

Методология — краткий план действий

  1. Установить GRUB на целевые диски (hd0 и hd1) через grub shell.
  2. Перезагрузить и проверить, что /dev/md0 виден в системе.
  3. Проверить /proc/mdstat, pvdisplay, vgdisplay, lvdisplay.
  4. Изменить тип раздела /dev/sda1 на fd через fdisk.
  5. Добавить /dev/sda1 в /dev/md0: mdadm –add.
  6. Обновить /etc/mdadm/mdadm.conf и перезагрузиться.

Важно: при перезаписи таблицы разделов ядро может продолжать использовать старую таблицу до перезагрузки — это нормальное поведение после изменения таблицы через fdisk.

Чек-листы по ролям

Администратору (подготовка и контроль):

  • Убедиться в наличии бэкапа важных данных перед изменениями.
  • Подготовить live- или rescue-среду на случай проблем с загрузкой.
  • Проверить выводы mdadm, pvdisplay, vgdisplay и lvdisplay.

Оператору (выполнение команд):

  • Выполнить установку GRUB через grub shell на оба диска.
  • Изменить тип раздела через fdisk и добавить его в mdadm.
  • Обновить mdadm.conf и запустить перезагрузку.

Фактбокс — ключевые элементы

  • Цель: настроить отказоустойчивую загрузку (GRUB) и добавить второй диск в RAID1.
  • Основные устройства: /dev/md0 (boot), /dev/md1 (LVM PV).
  • Команды: grub, fdisk, mdadm, mdadm –examine –scan, pvdisplay/vgdisplay/lvdisplay.

Быстрый план отката (если загрузка не удалась)

  1. Загрузиться с live-USB.
  2. Проверить /proc/mdstat и состояние md-устройств.
  3. Восстановить /boot из резервной копии или установить GRUB вручную на нужный диск.
  4. Восстановить прежнюю таблицу разделов (если есть дамп) и перезагрузиться.
flowchart TD
  A[Начало] --> B{GRUB установлен на обоих дисках?}
  B -- Да --> C{/dev/md0 в df -h?}
  B -- Нет --> D[Установить GRUB на оба диска]
  D --> C
  C -- Да --> E[Изменить тип /dev/sda1 на fd и mdadm --add]
  C -- Нет --> F[Проверить LVM и mdadm, исправить ошибки]
  E --> G[Обновить mdadm.conf и перезагрузить]
  G --> H[Успех]
  F --> D

Критерии приёмки

  • /dev/md0 отображается в df -h и монтируется как /boot.
  • /proc/mdstat показывает состояние [UU] для обоих массивов (оба диска в массиве).
  • pvdisplay/vgdisplay/lvdisplay показывают ожидаемые PV/VG/LV.
  • После перезагрузки система корректно загружается с RAID1.

Краткое резюме: процедура гарантирует, что загрузчик установлен на обоих дисках, раздел /dev/sda1 отмечен как RAID, добавлен в /dev/md0, конфигурация mdadm обновлена, и система успешно загружается с программного RAID1 поверх LVM.

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро