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

Подготовка /dev/sda и GRUB2 для RAID1 на Debian Squeeze

• 4 min read • Linux • Обновлено 22 Nov 2025
RAID1: подготовка /dev/sda и GRUB2 на Debian
RAID1: подготовка /dev/sda и GRUB2 на Debian

TL;DR

Кратко: проверьте, что /dev/md0 и /dev/md2 доступны, смените типы разделов на /dev/sda на “Linux raid autodetect”, добавьте их в массивы mdadm, дождитесь завершения синхронизации, обновите /etc/mdadm/mdadm.conf, удалите устаревший скрипт GRUB и установите загрузчик на оба диска. В статье есть чек‑листы, команды для проверки и раздел с распространёнными проблемами.

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

Если всё прошло верно, в выводе команды df -h вы увидите /dev/md0 и /dev/md2:

df -h

root@server1:~#\u00a0df\u00a0-h
Filesystem\u00a0\u00a0\u00a0\u00a0\u000Size\u00a0\u00a0Used\u00a0Avail\u00a0Use%\u00a0Mounted\u00a0on
/dev/md2\u00a0\u00a0\u00a04.0G\u00a0\u00a0714M\u00a0\u00a03.1G\u00a019%\u00a0/
tmpfs\u00a0\u00a0\u00a0\u00a0249M\u00a0\u00a0\u00a00\u00a0\u00a0249M\u00a0\u00a0\u00a00%\u00a0/lib/init/rw
udev\u00a0\u00a0\u00a0\u00a0244M\u00a0\u00a0\u00a0132K\u00a0\u00a0244M\u00a0\u00a01%\u00a0/dev
tmpfs\u00a0\u00a0\u00a0\u00a0249M\u00a0\u00a0\u00a00\u00a0\u00a0249M\u00a0\u00a0\u00a00%\u00a0/dev/shm
/dev/md0\u00a0\u00a0\u00a0\u00a0472M\u00a0\u00a0\u0025M\u00a0\u00a0423M\u00a06%\u00a0/boot
root@server1:~#


Вывод команды cat /proc/mdstat должен показывать текущее состояние массивов:

cat /proc/mdstat


root@server1:~#\u00a0cat\u00a0/proc/mdstat  
Personalities\u00a0:\u00a0[raid1]  
md2\u00a0:\u00a0active\u00a0raid1\u00a0sdb3[1]  
4241396\u00a0blocks\u00a0super\u00a01.2\u00a0[2/1]\u00a0[_U]    
  
md1\u00a0:\u00a0active\u00a0(auto-read-only)\u00a0raid1\u00a0sdb2[1]  
499700\u00a0blocks\u00a0super\u00a01.2\u00a0[2/1]\u00a0[_U]    
  
md0\u00a0:\u00a0active\u00a0raid1\u00a0sdb1[1]  
498676\u00a0blocks\u00a0super\u00a01.2\u00a0[2/1]\u00a0[_U]    
  
unused\u00a0devices:\u00a0  
root@server1:~#

Теперь нужно изменить тип трёх разделов на /dev/sda на Linux raid autodetect. Запустите:

fdisk /dev/sda

Пример интерактивной сессии fdisk (сохраните изменения командой w):

root@server1:~#\u00a0fdisk\u00a0/dev/sda  
  
WARNING:\u00a0DOS-compatible\u00a0mode\u00a0is\u00a0deprecated.\u00a0It's\u00a0strongly\u00a0recommended\u00a0to  
switch\u00a0off\u00a0the\u00a0mode\u00a0(command\u00a0'c')\u00a0and\u00a0change\u00a0display\u00a0units\u00a0to  
sectors\u00a0(command\u00a0'u').  
  
Command\u00a0(m\u00a0for\u00a0help): <--\u00a0t  
Partition\u00a0number\u00a0(1-4): <--\u00a01  
Hex\u00a0code\u00a0(type\u00a0L\u00a0to\u00a0list\u00a0codes): <--\u00a0fd  
Changed\u00a0system\u00a0type\u00a0of\u00a0partition\u00a01\u00a0to\u00a0fd\u00a0(Linux\u00a0raid\u00a0autodetect)  
  
Command\u00a0(m\u00a0for\u00a0help): <--\u00a0t  
Partition\u00a0number\u00a0(1-4): <--\u00a02  
Hex\u00a0code\u00a0(type\u00a0L\u00a0to\u00a0list\u00a0codes): <--\u00a0fd  
Changed\u00a0system\u00a0type\u00a0of\u00a0partition\u00a02\u00a0to\u00a0fd\u00a0(Linux\u00a0raid\u00a0autodetect)  
  
Command\u00a0(m\u00a0for\u00a0help): <--\u00a0t  
Partition\u00a0number\u00a0(1-4): <--\u00a03  
Hex\u00a0code\u00a0(type\u00a0L\u00a0to\u00a0list\u00a0codes): <--\u00a0fd  
Changed\u00a0system\u00a0type\u00a0of\u00a0partition\u00a03\u00a0to\u00a0fd\u00a0(Linux\u00a0raid\u00a0autodetect)  
  
Command\u00a0(m\u00a0for\u00a0help): <--\u00a0w  
The\u00a0partition\u00a0table\u00a0has\u00a0been\u00a0altered!  
  
Calling\u00a0ioctl()\u00a0to\u00a0re-read\u00a0partition\u00a0table.  
Syncing\u00a0disks.  
root@server1:~#

После этого добавьте новые разделы в соответствующие RAID‑массивы:

mdadm --add /dev/md0 /dev/sda1
mdadm --add /dev/md1 /dev/sda2
mdadm --add /dev/md2 /dev/sda3

Проверка состояния синхронизации:

cat /proc/mdstat

Пример, где идёт восстановление:

root@server1:~#\u00a0cat\u00a0/proc/mdstat  
Personalities\u00a0:\u00a0[raid1]  
md2\u00a0:\u00a0active\u00a0raid1\u00a0sda3[2]\u00a0sdb3[1]  
4241396\u00a0blocks\u00a0super\u00a01.2\u00a0[2/1]\u00a0[_U]  
[==========>..........]\u00a0\u00a0recovery\u00a0=\u00a054.6%\u00a0(2319808/4241396)\u00a0finish=0.7min\u00a0speed=45058K/sec  
  
md1\u00a0:\u00a0active\u00a0raid1\u00a0sda2[2]\u00a0sdb2[1]  
499700\u00a0blocks\u00a0super\u00a01.2\u00a0[2/2]\u00a0[UU]  
  
md0\u00a0:\u00a0active\u00a0raid1\u00a0sda1[2]\u00a0sdb1[1]  
498676\u00a0blocks\u00a0super\u00a01.2\u00a0[2/2]\u00a0[UU]  
  
unused\u00a0devices:\u00a0  
root@server1:~#

Совет: запустите watch cat /proc/mdstat для непрерывного обновления. Чтобы выйти, нажмите CTRL+C.

Дождитесь завершения синхронизации — в конце статус mdN должен показывать [UU] для каждого RAID1:

root@server1:~#\u00a0cat\u00a0/proc/mdstat  
Personalities\u00a0:\u00a0[raid1]  
md2\u00a0:\u00a0active\u00a0raid1\u00a0sda3[2]\u00a0sdb3[1]  
4241396\u00a0blocks\u00a0super\u00a01.2\u00a0[2/2]\u00a0[UU]  
  
md1\u00a0:\u00a0active\u00a0raid1\u00a0sda2[2]\u00a0sdb2[1]  
499700\u00a0blocks\u00a0super\u00a01.2\u00a0[2/2]\u00a0[UU]  
  
md0\u00a0:\u00a0active\u00a0raid1\u00a0sda1[2]\u00a0sdb1[1]  
498676\u00a0blocks\u00a0super\u00a01.2\u00a0[2/2]\u00a0[UU]  
  
unused\u00a0devices:\u00a0  
root@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 должен содержать сгенерированные строки ARRAY. Пример:

# 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 Tue, 24 May 2011 14:09:09 +0200
# by mkconf 3.1.4-1+8efb9d1
ARRAY /dev/md/0 metadata=1.2 UUID=b40c3165:17089af7:5d5ee79b:8783491b name=server1.example.com:0
ARRAY /dev/md/1 metadata=1.2 UUID=62e4a606:878092a0:212209c5:c91b8fef name=server1.example.com:1
ARRAY /dev/md/2 metadata=1.2 UUID=94e51099:d8475c57:4ff1c60f:9488a09a name=server1.example.com:2

8 Подготовка GRUB2

Удалите устаревший скрипт /etc/grub.d/09_swraid1_setup (он больше не нужен при корректно собранном grub.cfg):

rm -f /etc/grub.d/09_swraid1_setup

Обновите конфигурацию GRUB и initramfs:

update-grub
update-initramfs -u

Проверьте /boot/grub/grub.cfg: в секциях ### BEGIN /etc/grub.d/10_linux ### записи menuentry должны ссылаться на /dev/md0 вместо (hd0) или (hd1). После этого установите GRUB на оба диска, чтобы система могла загрузиться и при потере одного из дисков:

grub-install /dev/sda
grub-install /dev/sdb

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

reboot

Система должна загрузиться нормально.

Важно: убедитесь, что вы устанавливаете загрузчик в запись MBR (для BIOS) на обоих дисках. На системах с UEFI процедура отличается — используйте grub-efi и ESP.


Контрольные команды и наблюдение

  • df -h — проверить подключённые файловые системы
  • cat /proc/mdstat — текущее состояние RAID и прогресс синхронизации
  • mdadm –detail /dev/mdX — подробная информация по массиву
  • mdadm –examine /dev/sdXY — посмотреть суперблок на разделе
  • watch cat /proc/mdstat — следить за прогрессом в реальном времени

Распространённые проблемы и способы решения

  1. Синхронизация не стартует или массив остаётся в состоянии [_U]:
  • Проверьте, что вы добавили правильный раздел: mdadm –examine /dev/sda3
  • Если суперблоки конфликтуют, рассмотрите mdadm –zero-superblock /dev/sdXn перед повторным добавлением.
  • Используйте mdadm –add –force /dev/mdX /dev/sdXn лишь при явной необходимости.
  1. grub-install завершился с ошибкой:
  • Для BIOS: попробуйте grub-install –recheck /dev/sda
  • Если вы находитесь в chroot (например, от live‑CD), убедитесь, что /proc, /sys и /dev смонтированы в chroot и что /boot присутствует.
  • Для UEFI: установите grub-efi и убедитесь, что размер и содержимое ESP корректны; используйте efibootmgr для управления записями.
  1. После перезагрузки система не поднимается с RAID:
  • Загрузитесь с живого носителя, соберите массивы: mdadm –assemble –scan
  • Проверьте /etc/mdadm/mdadm.conf и /boot/grub/grub.cfg, обновите initramfs: update-initramfs -u
  • Переустановите GRUB на оба диска.

Когда это не подойдёт

  • На системах с UEFI (GPT) используется другой набор команд и ESP; grub-install для UEFI отличается.
  • Если корневая система использует LVM поверх RAID, дополнительные шаги требуются (активация томов LVM перед монтированием).
  • NVMe‑диски имеют именование /dev/nvme0n1p1 — учитывайте это при работе с разделами.

Альтернативные подходы

  • Аппаратный RAID контроллер — удерживает RAID вне ОС, но лишает гибкости mdadm и переносимости.
  • Использовать файловые инструменты резервного копирования и зеркалирование на уровне файлов (rsync) вместо RAID1 — полезно при разных требованиях к отказоустойчивости.
  • ZFS/RAIDZ как альтернатива: предоставляет контроль целостности, снимки и другие возможности, но требует иной модели управления.

Краткая методология (минимум шагов)

  1. Подтвердите работу текущих md‑устройств (cat /proc/mdstat).
  2. Измените типы разделов на втором диске (fdisk /dev/sda -> type fd).
  3. Добавьте разделы в массивы (mdadm –add).
  4. Дождитесь синхронизации (watch cat /proc/mdstat).
  5. Обновите mdadm.conf и initramfs.
  6. Установите GRUB на оба диска.
  7. Перезагрузите и проверьте загрузку с обоих дисков по очереди при необходимости.

Чек-лист для ролей

  • Системный администратор:

    • Проверить конфигурацию /etc/mdadm/mdadm.conf.
    • Убедиться в наличии backup конфигов и копий важных данных перед изменениями.
    • Установить GRUB на оба диска и проверить загрузку.
  • Оператор/инженер смены:

    • Наблюдать за синхронизацией mdstat.
    • Документировать время и скорость ресинхронизации.
    • Проверить состояние массивов после перезагрузки.

Диаграмма принятия решения при проблемах с загрузкой

flowchart TD
  A[Сервер не загружается] --> B{Доступен ли rescue/boot media?}
  B -- Нет --> Z[Свяжитесь с поддержкой/физическим доступом]
  B -- Да --> C[Загрузиться в rescue]
  C --> D[mdadm --assemble --scan]
  D --> E{MD устройства активны?}
  E -- Нет --> F[Проверить суперблоки и логи]
  E -- Да --> G[Переустановить GRUB на оба диска]
  G --> H[Обновить initramfs]
  H --> I[Перезагрузить и проверить]

Глоссарий (1 строка)

  • mdadm — утилита для управления ПО RAID в Linux.
  • RAID1 — зеркалирование данных между дисками для отказоустойчивости.
  • /proc/mdstat — виртуальный файл с текущим статусом md‑массивов.
  • mdadm.conf — конфигурационный файл с описанием массивов для автоподключения.
  • grub-install — команда установки загрузчика GRUB на устройство.

Итог

  • После добавления разделов /dev/sdaN в массивы дождитесь завершения синхронизации и обновите mdadm.conf.
  • Удалите /etc/grub.d/09_swraid1_setup, обновите grub и установите его на оба диска.
  • Проверьте загрузку и имейте план восстановления для UEFI или сложных конфигураций (LVM, ZFS и т.д.).

Примечание: выполняйте операции с разделами и установкой загрузчика с учётом особенностей вашей системы (BIOS/UEFI, GPT/MBR, LVM/ZFS).

Поделиться: 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 быстро