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

Настройка /dev/sda и GRUB для RAID1 на Debian Lenny

• 3 min read • Linux • Обновлено 23 Nov 2025
RAID1 на Debian Lenny: /dev/sda и GRUB
RAID1 на Debian Lenny: /dev/sda и GRUB

Кратко: проверьте текущие md-устройства, измените типы разделов на /dev/sda на “Linux raid autodetect”, добавьте разделы в массивы mdadm, дождитесь синхронизации, обновите /etc/mdadm/mdadm.conf и скорректируйте конфигурацию GRUB. Обновите initramfs и перезагрузите систему — после этого сервер должен загружаться с программного RAID1.

Проверка состояния RAID перед началом

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

df -h
server1:~# df -h  
Filesystem            Size  Used Avail Use% Mounted on  
/dev/md2              5.3G  749M  4.3G  15% /  
tmpfs                 126M     0  126M   0% /lib/init/rw  
udev                   10M  108K  9.9M   2% /dev  
tmpfs                 126M     0  126M   0% /dev/shm  
/dev/md0              228M   30M  187M  14% /boot  
server1:~#

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

cat /proc/mdstat
server1:~# cat /proc/mdstat  
Personalities : [raid1]  
md2 : active raid1 sdb3[1]  
      5550336 blocks [2/1] [_U]  
  
md1 : active (auto-read-only) raid1 sdb2[1]  
      497920 blocks [2/1] [_U]  
  
md0 : active raid1 sdb1[1]  
      240832 blocks [2/1] [_U]  
  
unused devices:   
server1:~#

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

Изменение типа разделов на /dev/sda

Нужно поменять типы трёх разделов на /dev/sda на «Linux raid autodetect» (0xfd). Используем fdisk:

fdisk /dev/sda

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

server1:~# fdisk /dev/sda

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): <-- t  
Partition number (1-4): <-- 2  
Hex code (type L to list codes): <-- fd  
Changed system type of partition 2 to fd (Linux raid autodetect)

Command (m for help): <-- t  
Partition number (1-4): <-- 3  
Hex code (type L to list codes): <-- fd  
Changed system type of partition 3 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:~#

Примечание: это нормально, если устройство занято; таблица будет пересчитана после перезагрузки. Тем не менее можно продолжить и добавить разделы в массивы — mdadm будет работать с указанными блок-устройствами.

Добавление разделов /dev/sda в RAID-массивы

Добавьте соответствующие разделы в массивы md0, md1 и md2:

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

После этого проверьте статус синхронизации:

cat /proc/mdstat

Пример прогресса синхронизации:

server1:~# cat /proc/mdstat  
Personalities : [raid1]  
md2 : active raid1 sda3[2] sdb3[1]  
      5550336 blocks [2/1] [_U]  
      [===>.................]  recovery = 15.9% (888704/5550336) finish=2.3min speed=32914K/sec  
  
md1 : active raid1 sda2[2] sdb2[1]  
      497920 blocks [2/1] [_U]  
        resync=DELAYED  
  
md0 : active raid1 sda1[0] sdb1[1]  
      240832 blocks [2/2] [UU]  
  
unused devices:   
server1:~#

Подсказка: запустите watch для наблюдения за прогрессом в реальном времени:

watch cat /proc/mdstat

Чтобы выйти из watch — нажмите CTRL+C.

Дождитесь полного завершения синхронизации. После этого вывод будет выглядеть так:

server1:~# cat /proc/mdstat  
Personalities : [raid1]  
md2 : active raid1 sda3[0] sdb3[1]  
      5550336 blocks [2/2] [UU]  
  
md1 : active raid1 sda2[0] sdb2[1]  
      497920 blocks [2/2] [UU]  
  
md0 : active raid1 sda1[0] sdb1[1]  
      240832 blocks [2/2] [UU]  
  
unused devices:   
server1:~#

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

После успешной синхронизации обновите конфигурацию mdadm, чтобы новые массивы были зафиксированы в конфиге:

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 Mon, 17 Aug 2009 16:38:27 +0200
# by mkconf $Id$
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=757afd26:543267ab:325ecf68:79913751
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=1e5f2139:0806d523:325ecf68:79913751
ARRAY /dev/md2 level=raid1 num-devices=2 UUID=bc2dffb8:047b4ed5:325ecf68:79913751

Сохраните изменения и закройте редактор.

Настройка GRUB для загрузки с RAID

Откройте /boot/grub/menu.lst и найдите текущую запись загрузки: она, вероятно, указывает на /dev/sdb (hd1,0). Чтобы обеспечить загрузку и с /dev/sda при отказе /dev/sdb, продублируйте первую stanza и замените hd1 на hd0. Закомментируйте остальные stanza, чтобы файл выглядел примерно так:

vi /boot/grub/menu.lst
[...]
## ## End Default Options ##

title           Debian GNU/Linux, kernel 2.6.26-2-686
root            (hd1,0)
kernel          /vmlinuz-2.6.26-2-686 root=/dev/md2 ro quiet
initrd          /initrd.img-2.6.26-2-686

title           Debian GNU/Linux, kernel 2.6.26-2-686
root            (hd0,0)
kernel          /vmlinuz-2.6.26-2-686 root=/dev/md2 ro quiet
initrd          /initrd.img-2.6.26-2-686

#title          Debian GNU/Linux, kernel 2.6.26-2-686
#root           (hd0,0)
#kernel         /vmlinuz-2.6.26-2-686 root=/dev/sda3 ro quiet
#initrd         /initrd.img-2.6.26-2-686

#title          Debian GNU/Linux, kernel 2.6.26-2-686 (single-user mode)
#root           (hd0,0)
#kernel         /vmlinuz-2.6.26-2-686 root=/dev/sda3 ro single
#initrd         /initrd.img-2.6.26-2-686

#title          Debian GNU/Linux, kernel 2.6.26-1-686
#root           (hd0,0)
#kernel         /vmlinuz-2.6.26-1-686 root=/dev/sda3 ro quiet
#initrd         /initrd.img-2.6.26-1-686

#title          Debian GNU/Linux, kernel 2.6.26-1-686 (single-user mode)
#root           (hd0,0)
#kernel         /vmlinuz-2.6.26-1-686 root=/dev/sda3 ro single
#initrd         /initrd.img-2.6.26-1-686

### END DEBIAN AUTOMAGIC KERNELS LIST

Также найдите строку kopt и замените в ней /dev/sda3 на /dev/md2 (не удаляйте символ # в начале, если он там есть):

[...]
# kopt=root=/dev/md2 ro
[...]

Обновление initramfs и перезагрузка

После правки GRUB выполните обновление initramfs:

update-initramfs -u

Затем перезагрузите систему:

reboot

После перезагрузки система должна успешно загрузиться с RAID1.

Схема успешной установки программного RAID1 и проверка загрузки

Контрольный список перед завершением

  • Проверить, что /proc/mdstat показывает все массивы с [UU].
  • Убедиться, что /etc/mdadm/mdadm.conf содержит записи ARRAY для всех md-устройств.
  • Обновить initramfs и скопировать/правильно настроить конфигурацию GRUB для обоих дисков.
  • Иметь план отката и резервные копии важных данных.

Когда это может не сработать

  • Аппаратные проблемы: если контроллер дисков или кабели неисправны, синхронизация может провалиться.
  • Разные размеры разделов: если sda и sdb имеют разные размеры разделов, массив может не принять диск или создать несовместие.
  • Использование нестандартного загрузчика или UEFI-конфигурации: инструкции рассчитаны на классический BIOS + GRUB legacy; для UEFI требуется другой подход.

Откат и аварийный план (коротко)

  1. Если синхронизация остановилась или массив поломан — не удаляйте рабочий член массива.
  2. Используйте mdadm –examine для диагностики суперблоков.
  3. При необходимости верните старую mdadm.conf из резервной копии.
  4. В экстренном случае — загрузитесь с live-образа и восстановите конфигурацию разделов/GRUB вручную.

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

  • Все массивы отображаются как [UU] в /proc/mdstat.
  • /etc/mdadm/mdadm.conf содержит ARRAY для md0, md1, md2.
  • Система успешно загружается после перезагрузки без вмешательства оператора.

Краткая шпаргалка команд

  • Просмотр пространства: df -h
  • Статус md: cat /proc/mdstat
  • Добавление раздела в массив: mdadm –add /dev/mdX /dev/sdXN
  • Сканирование для конфигурации: mdadm –examine –scan
  • Обновление initramfs: update-initramfs -u

Итого: после выполнения всех шагов вы получите отказоустойчивую загрузку с программным RAID1 на Debian Lenny.

Wn: Вы успешно настроили программный RAID1 на работающей системе Debian Lenny.

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