Перенос корневого раздела 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:
#for i in /dev /dev/pts /proc /sys /run; do mount -B $i /mnt/newroot$i; done
#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