mdadm (raid)
Інструкція з налаштування програмного Raid за допомогою mdadm
Створення RAID1 з дисків sda (існуюча система) і sdb на працюючій Ubuntu 24
Попередження:
- Рекомендується бекап важливих даних!
- Усі дії — на свій страх і ризик.
- RAID1 створюється поступово, спочатку з одного диска (sdb), потім додаємо диск з існуючою системою (sda) у дзеркало.
1. Встановлення mdadm
sudo apt update sudo apt install mdadm
2. Підготовка диска sdb
Очисти sdb, створити на ньому таблицю розділів та розмітку, схожу на sda:
sudo sgdisk --zap-all /dev/sdb sudo sgdisk -R=/dev/sdb /dev/sda # Копіюємо розділи sda на sdb sudo sgdisk -G /dev/sdb # Генеруємо нові унікальні GUID для sdb
3. Створення RAID1-масиву на одному диску (sdb)
- Переконайся, що всі розділи на sda — наприклад /dev/sda1, /dev/sda2 і т.д.
- Для кожного розділу створюємо RAID-масив із одним активним диском (sda), щоб можна було додати sdb потім.
Наприклад, для розділу sdb1 (дзеркально sda1):
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sdb1
missing — означає, що поки що в масиві лише один диск, другий додамо пізніше.
Увага! Так робимо для кожного розділу, що хочеш дзеркалити. Наприклад: три розділи sda1, sda2, sd3 - дзеркально md0, md1, md2.
4. Копіювання даних з sdaX на mdX
Для кожного розділу (sda1 + md0, sda2 + md1, sda3 + md2):
sudo mount /dev/sda1 /mnt/source sudo mkfs.ext4 /dev/md0 sudo mount /dev/md0 /mnt/target sudo rsync -aHAXv /mnt/source/ /mnt/target/ sudo umount /mnt/source /mnt/target
Можна також змонтувати нові mdX замість sdaX в /etc/fstab після копіювання.
5. Перемонтування для chroot
sudo mount /dev/md0 /mnt sudo mount /dev/md3 /mnt/boot sudo mount /dev/md2 /mnt/boot/efi # bind mounts для chroot sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys
6. Chroot + GRUB + initramfs
sudo chroot /mnt # оновлення initramfs update-initramfs -u # оновлення GRUB update-grub # установка GRUB на обидва диски grub-install /dev/sda grub-install /dev/sdb exit
7. mdadm.conf і initramfs
sudo mdadm --detail --scan | sudo tee /etc/mdadm/mdadm.conf sudo update-initramfs -u
6. Перевірити /etc/fstab
Використовуй UUID для /, /boot, /boot/efi. Отримати можна так:
blkid
Приклад готового /etc/fstab:
# Root (md0) UUID=c93f901d-4b2d-4891-a5da-c04d90932675 / ext4 defaults 0 1 # Boot (md3) UUID=f9c36a35-d678-45ca-8bf8-5478e74af5aa /boot ext4 defaults 0 2 # Boot EFI (md2) - для UEFI завантаження UUID=2785-9DE3 /boot/efi vfat defaults 0 1
7. Перезавантаження
sudo reboot
8. Додавання sda до RAID-масиву
sudo mdadm --add /dev/md0 /dev/sda1 sudo mdadm --add /dev/md3 /dev/sda16 sudo mdadm --add /dev/md2 /dev/sda15
Перевірити статус синхронізації:
cat /proc/mdstat
Фінальний кроком може бути оновлення initramfs ще раз:
sudo mdadm --detail --scan | sudo tee /etc/mdadm/mdadm.conf sudo update-initramfs -u