GRUB и добавление /dev/sda в RAID1 на Debian
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-массивов:
reboot7 Подготовка /dev/sda
Если всё прошло успешно, в выводе df -h должен появиться /dev/md0:
df -hserver1:~# 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/mdstatserver1:~# 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.
pvdisplayserver1:~# 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:~#vgdisplayserver1:~# 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:~#lvdisplayserver1:~# 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/mdstatserver1:~# 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 настроен и работает.
Методология — краткий план действий
- Установить GRUB на целевые диски (hd0 и hd1) через grub shell.
- Перезагрузить и проверить, что /dev/md0 виден в системе.
- Проверить /proc/mdstat, pvdisplay, vgdisplay, lvdisplay.
- Изменить тип раздела /dev/sda1 на fd через fdisk.
- Добавить /dev/sda1 в /dev/md0: mdadm –add.
- Обновить /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.
Быстрый план отката (если загрузка не удалась)
- Загрузиться с live-USB.
- Проверить /proc/mdstat и состояние md-устройств.
- Восстановить /boot из резервной копии или установить GRUB вручную на нужный диск.
- Восстановить прежнюю таблицу разделов (если есть дамп) и перезагрузиться.
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.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента