Перенос корневого раздела Debian на програмный raid

Начальные условия:

Диск на котором в данный момент установлен Debian - /dev/sda (/dev/sda1 - /boot, /dev/sda2 - /)

Диск который мы добавили /dev/sdb, идентичный /dev/sda

 

Задача:

Создать массив програмный raid1(зеркало) и перенсти на него OS.

 

Решение:

1. Копируем таблицу разделов на /dev/sdb

#sfdisk -d /dev/sda | sfdisk /dev/sdb

Меняем тип разделов на fd (linux raid) - комманда t в fdisk, не забываем сохранить изменения (w)

#fdisk /dev/sda

#fdisk /dev/sdb

Возможно, после этого этапа потребуется перезагрузка.

 

2. Создаём масивы, указав один из дисков массива как отсутствующий:

#apt-get install mdadm

#mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sdb1

#mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sdb1

 

3. Создаём файловую систему на получившихся массивах:

#mkfs.ext2 /dev/md0

#mkfs.ext4 /dev/md1

 

4. Создаём точку монтирования для нового корневого раздела, монтируем его:

#mkdir /mnt/newroot

#mount /dev/md1 /mnt/newroot

 

5. Копируем содержимое корневого раздела:

#cp -ax / /mnt/newroot

 

6. Монтируем и копируем загрузочный раздел:

#mount /dev/md0 /mnt/newroot/boot

#cp -ax /boot /mnt/newroot

 

7. Создаём необходимое окружение, выполняем chroot:

#mount -o bind /dev /mnt/newroot/dev

#mount -t proc none /mnt/newroot/proc

#mount -t sysfs none /mnt/newroot/sys

#chroot /mnt/newroot

 

8. Выясняем UUID файловых систем, правим /etc/mtab, /etc/fstab:

#blkid /dev/md0

#blkid /dev/md1

Полученные значения UUID вписываем в соответствующие строки /etc/fstab

Правим /etc/mtab, указываем для / - /dev/md1, для /boot - /dev/md1

 

9. Сохраняем конфигурацию mdadm:

#mdadm --detail --scan >> /etc/mdadm/mdadm.conf

 

10. Обновляем initramfs и конфигурацию загрузчика:

#update-initramfs -u -k all

#update-grub

 

11. Устанавливаем загрузчик

#grub-install /dev/sda

#grub-install /dev/sdb

перезагружаемся.

12. Проверяем что мы загрузились с raid:

#mount

для / и /boot должны быть указаны /dev/md1 и /dev/md0 соответственно

 

13. Добавляем разделы старого диска к массиву:

#mdadm --add /dev/md0 /dev/sda1

#mdadm --add /dev/md1 /dev/sda1

14. Наблюдаем, как синхронизируются массивы:

#watch cat /proc/mdstat