Настройка /dev/sda и GRUB для RAID1 на Debian Lenny
Кратко: проверьте текущие md-устройства, измените типы разделов на /dev/sda на “Linux raid autodetect”, добавьте разделы в массивы mdadm, дождитесь синхронизации, обновите /etc/mdadm/mdadm.conf и скорректируйте конфигурацию GRUB. Обновите initramfs и перезагрузите систему — после этого сервер должен загружаться с программного RAID1.
Проверка состояния RAID перед началом
Если всё прошло успешно, в выводе df -h вы должны увидеть /dev/md0 и /dev/md2:
df -hserver1:~# 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/mdstatserver1:~# 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.

Контрольный список перед завершением
- Проверить, что /proc/mdstat показывает все массивы с [UU].
- Убедиться, что /etc/mdadm/mdadm.conf содержит записи ARRAY для всех md-устройств.
- Обновить initramfs и скопировать/правильно настроить конфигурацию GRUB для обоих дисков.
- Иметь план отката и резервные копии важных данных.
Когда это может не сработать
- Аппаратные проблемы: если контроллер дисков или кабели неисправны, синхронизация может провалиться.
- Разные размеры разделов: если sda и sdb имеют разные размеры разделов, массив может не принять диск или создать несовместие.
- Использование нестандартного загрузчика или UEFI-конфигурации: инструкции рассчитаны на классический BIOS + GRUB legacy; для UEFI требуется другой подход.
Откат и аварийный план (коротко)
- Если синхронизация остановилась или массив поломан — не удаляйте рабочий член массива.
- Используйте mdadm –examine для диагностики суперблоков.
- При необходимости верните старую mdadm.conf из резервной копии.
- В экстренном случае — загрузитесь с 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.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента