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

Настройка RAID1 и установка GRUB на Debian

• 4 min read • Linux • Обновлено 23 Nov 2025
Настройка RAID1 и установка GRUB на Debian
Настройка RAID1 и установка GRUB на Debian

4 Создание RAID-массивов

Создадим RAID-массивы /dev/md0, /dev/md1 и /dev/md2. /dev/sdb1 добавится в /dev/md0, /dev/sdb2 в /dev/md1, /dev/sdb3 в /dev/md2. Разделы /dev/sda1, /dev/sda2 и /dev/sda3 сейчас нельзя добавить (система загружается с них), поэтому в командах используется placeholder missing:

mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1  
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2  
mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/sdb3

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

cat /proc/mdstat

Ожидаемый вывод покажет три деградированных массива. В индикаторах статуса [U] или [U] означает, что массив деградирован, а [UU] — что массив исправен:

server1:~# cat /proc/mdstat  
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]  
md2 : active raid1 sdb3[1]  
      4594496 blocks [2/1] [_U]  
  
md1 : active raid1 sdb2[1]  
      497920 blocks [2/1] [_U]  
  
md0 : active raid1 sdb1[1]  
      144448 blocks [2/1] [_U]  
  
unused devices:   
server1:~#

Коротко: массивы созданы, но один из дисков отсутствует — поэтому массивы пока в состоянии degraded. После добавления второго раздела каждый массив должен перейти в состояние [UU].

Создание файловых систем и swap

Создаём файловые системы ext3 на /dev/md0 и /dev/md2 и активируем swap на /dev/md1:

mkfs.ext3 /dev/md0  
mkswap /dev/md1  
mkfs.ext3 /dev/md2

Обновление /etc/mdadm/mdadm.conf

Сохраните оригинал конфигурации и добавьте автоопределённые массивы в конфиг:

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

Посмотрите содержимое файла:

cat /etc/mdadm/mdadm.conf

В конце файла вы увидите записи для трёх RAID-массивов. Например:

| # 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 # This file was auto-generated on Mon, 26 Nov 2007 21:22:04 +0100 # by mkconf $Id: mkconf 261 2006-11-09 13:32:35Z madduck $ ARRAY /dev/md0 level=raid1 num-devices=2 UUID=72d23d35:35d103e3:01b5209e:be9ff10a ARRAY /dev/md1 level=raid1 num-devices=2 UUID=a50c4299:9e19f9e4:01b5209e:be9ff10a ARRAY /dev/md2 level=raid1 num-devices=2 UUID=99fee3a5:ae381162:01b5209e:be9ff10a |

(Содержимое конфигурации оставлено как есть — это автоматическая запись mdadm.)

5 Настройка системы под RAID1

Смонтируем новые массивы (swap не монтируем):

mkdir /mnt/md0  
mkdir /mnt/md2
mount /dev/md0 /mnt/md0  
mount /dev/md2 /mnt/md2

Проверьте список монтированных томов:

mount

Пример вывода:

server1:~# mount  
/dev/sda3 on / type ext3 (rw,errors=remount-ro)  
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)  
proc on /proc type proc (rw,noexec,nosuid,nodev)  
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)  
udev on /dev type tmpfs (rw,mode=0755)  
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)  
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)  
/dev/sda1 on /boot type ext3 (rw)  
/dev/md0 on /mnt/md0 type ext3 (rw)  
/dev/md2 on /mnt/md2 type ext3 (rw)  
server1:~#

Обновление /etc/fstab

Замените в /etc/fstab ссылки на физические разделы на RAID-устройства: /dev/sda1 → /dev/md0, /dev/sda2 → /dev/md1, /dev/sda3 → /dev/md2. Откройте файл редактором:

vi /etc/fstab

Ожидаемое содержимое:

| # /etc/fstab: static file system information. # # proc /proc proc defaults 0 0 /dev/md2 / ext3 defaults,errors=remount-ro 0 1 /dev/md0 /boot ext3 defaults 0 2 /dev/md1 none swap sw 0 0 /dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 |

Обновление /etc/mtab

Аналогично замените /dev/sda1 → /dev/md0 и /dev/sda3 → /dev/md2 в /etc/mtab:

vi /etc/mtab

Пример содержимого после правки:

| /dev/md2 / ext3 rw,errors=remount-ro 0 0 tmpfs /lib/init/rw tmpfs rw,nosuid,mode=0755 0 0 proc /proc proc rw,noexec,nosuid,nodev 0 0 sysfs /sys sysfs rw,noexec,nosuid,nodev 0 0 udev /dev tmpfs rw,mode=0755 0 0 tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0 devpts /dev/pts devpts rw,noexec,nosuid,gid=5,mode=620 0 0 /dev/md0 /boot ext3 rw 0 0 |

Подготовка GRUB: fallback и дублирование stanza

Откройте /boot/grub/menu.lst и добавьте строку fallback 1 сразу после default 0:

vi /boot/grub/menu.lst

Пример:

default         0
fallback        1

Это означает: если загрузка первого (нулевого) ядра не удастся, загрузится запасной вариант (fallback 1).

Далее найдите блоки с описанием ядер. Скопируйте первый stanza и вставьте перед ним, изменив root=/dev/sda3 на root=/dev/md2 и root (hd0,0) на root (hd1,0):

| [...] ## ## End Default Options ## title Debian GNU/Linux, kernel 2.6.18-4-486 RAID (hd1) root (hd1,0) kernel /vmlinuz-2.6.18-4-486 root=/dev/md2 ro initrd /initrd.img-2.6.18-4-486 savedefault title Debian GNU/Linux, kernel 2.6.18-4-486 root (hd0,0) kernel /vmlinuz-2.6.18-4-486 root=/dev/sda3 ro initrd /initrd.img-2.6.18-4-486 savedefault title Debian GNU/Linux, kernel 2.6.18-4-486 (single-user mode) root (hd0,0) kernel /vmlinuz-2.6.18-4-486 root=/dev/sda3 ro single initrd /initrd.img-2.6.18-4-486 savedefault ### END DEBIAN AUTOMAGIC KERNELS LIST |

root (hd1,0) ссылается на /dev/sdb, который уже является частью RAID. После перезагрузки система попытается загрузиться с RAID; при неудаче — откатится к /dev/sda.

Обновление initramfs и копирование данных

Обновите initramfs, чтобы в него попали новые настройки и модули для RAID:

update-initramfs -u

Скопируйте корень и /boot на соответствующие RAID-разделы (смонтированы в /mnt/md2 и /mnt/md0):

cp -dpRx / /mnt/md2
cd /boot  
cp -dpRx . /mnt/md0

Флаги cp: -d сохраняет ссылки, -p сохраняет права/времена, -R рекурсивно, -x не переходить на другие файловые системы.

6 Подготовка GRUB (часть 1)

Установим загрузчик GRUB на второй HDD (/dev/sdb). Запустите grub-взаимодействие:

grub

В оболочке GRUB выполните последовательность команд (пример работы ниже):

root (hd0,0)

Вы увидите сообщение о типе файловой системы:

grub> root (hd0,0)  
 Filesystem type is ext2fs, partition type 0x83

Далее выполните установку на первый диск (в данном примере hd0):

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)"...  15 sectors are embedded.  
succeeded  
 Running "install /grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/grub/stage2 /grub/menu.lst"... succeeded  
Done.  
  
grub>

Повторите для второго диска (hd1):

root (hd1,0)
setup (hd1)

Завершите и выйдите:

quit

После этого перезагрузите систему:

reboot

Если всё настроено верно, система загрузится с RAID; если нет — сработает fallback и загрузка пройдёт с исходного диска.

Чек-лист перед перезагрузкой

  • Убедитесь, что /etc/mdadm/mdadm.conf содержит записи ARRAY для всех md-устройств.
  • /etc/fstab и /etc/mtab обновлены и ссылаются на /dev/mdX.
  • Файлы скопированы: корневая файловая система на /mnt/md2, /boot на /mnt/md0.
  • Выполнен update-initramfs -u.
  • GRUB установлен на обоих дисках (hd0 и hd1), добавлен fallback.
  • Есть доступ к консоли/серийному порту на случай проблем с загрузкой.

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

  • После перезагрузки система успешно загружается в обычном режиме.
  • В выводе cat /proc/mdstat массивы находятся в состоянии [UU] (после синхронизации) либо хотя бы не сломаны.
  • /boot и / корневой раздел смонтированы с устройств /dev/md0 и /dev/md2 соответственно.
  • swap активен на /dev/md1.

План отката и действия при ошибке

  • Если система не загружается, воспользоваться fallback в GRUB (он загрузит старую запись с /dev/sda).
  • Через live/резервный носитель или режим восстановления смонтируйте оригинальные разделы и восстановите /etc/fstab и /boot/menu.lst из резервной копии.
  • Если требуется вернуть прежнее состояние загрузчика, повторно выполните установку GRUB на /dev/sda и восстановите оригинальные записи.

Быстрые проверки после загрузки

  • cat /proc/mdstat — проверить состояние md.
  • mount | grep md — проверить, что / и /boot смонтированы с /dev/md2 и /dev/md0.
  • swapon -s — проверить активный swap на /dev/md1.
  • dmesg | grep md — посмотреть сообщения ядра по RAID.

Итог

Вы создали три RAID1-массива, подготовили файловые системы и swap, обновили конфигурации mdadm/fstab/mtab, скопировали систему на новые массивы, установили GRUB на оба диска и подготовили систему к загрузке с RAID. Если следовать чек-листу и критериям приёмки, риск простоев минимален.

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

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