Делаем raid1 на уже существующей системе без потери информации | ||
Железо > Восстановление данных Задача:
Имеем 2 диска которые необходимо объединить в RAID1. ПЕРЕД НАЧАЛОМ РАБОТЫ, ПОКИНЬТЕ ВСЕ "ЛИШНИЕ" КОНСОЛИ, БУДЕТ ВЫПОЛНЯТЬСЯ
МНОЖЕСТВО ОПАСНЫХ КОММАНД, КОТОРЫЕ В СОСТОЯНИИ БЫСТРО ПОЛОЖИТЬ ЛЮБОЙ СЕРВЕР.
Исходная разбивка винчестеров:
- sda с распакованным образом - sda1 - swap
- sda2 - reiser fs
- sdb чистый
1. Убеждаемся, что текущий sda, а на sdb необходимо поствить рейд mount
fdisk -l
2. Очищаем sdb и создаем таблицу разделов соответсвующую sda fdisk /dev/sdb
sfdisk -d /dev/sda | sfdisk /dev/sdb
3. Проверяем, что все успешно fdisk -l
4. На sdb меняем тип обоих разделов разделов на "fd Linux raid autodetect" fdisk /dev/sdb
t
1
fd
t
2
fd
p
w
должно выйти примерно так
Device Boot Start End Blocks Id System
/dev/sdb1 1 250 2008093+ fd Linux raid autodetect
/dev/sdb2 * 251 60801 486375907+ fd Linux raid autodetect
5. Проверяем, что не осталось следов от предыдущих рейдов ~# mdadm --zero-superblock /dev/sdb1
mdadm: Unrecognised md component device - /dev/sdb1
~# mdadm --zero-superblock /dev/sdb2
mdadm: Unrecognised md component device - /dev/sdb2
если ругается как выше, все хорошо
6. Создаем рейд на sdb, версия обязательна, иначе lilo не отработает, подробности: http://anti.teamidiot.de/nei/2006/10/softraid_lilo/
патч для 1.0:
http://www.mail-archive.com/[email protected]/msg314802.html
нам же делать следующее (создаем рейд и проверяем, что он v0.90):
mdadm --create /dev/md0 -e 0.90 --level=1 --raid-disks=2 missing /dev/sdb1
mdadm --create /dev/md1 -e 0.90 --level=1 --raid-disks=2 missing /dev/sdb2
mdadm -E /dev/sdb1
mdadm -E /dev/sdb2
7. Убеждаемся, что у нас появились поврежденные рейд масcивы [_U] cat /proc/mdstat
8. Создаем файловые системы mkswap /dev/md0
mkfs.reiserfs /dev/md1
9. Бэкапим, редактируем и проверяем файл конфигурации mdadm mv /var/lib/mdadm/CONF-UNCHECKED /var/lib/mdadm/CONF-UNCHECKED.old
cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
cat /etc/mdadm/mdadm.conf
10. Монтируем раздел mount /dev/md1 /mnt/
11. Обновляем initrd uname -a
rm /boot/initrd.img-2.6.35.3
update-initramfs -c -t -k 2.6.35.3
12. прописываем lilo lilo
13. Копируем данные с sda в созданный массив cp -dpRx / /mnt/
14. Исправляем fstab и lilo.conf cp /mnt/etc/fstab /mnt/etc/fstab.orig
vi /mnt/etc/fstab
cp /mnt/etc/lilo.conf /mnt/etc/lilo.conf.orig
vi /mnt/etc/lilo.conf
должно получиться примерно так
~# cat /etc/fstab | grep md
/dev/md0 none swap sw 0 0
/dev/md1 / reiserfs noauto,noatime 1 1
# cat /etc/lilo.conf | egrep "(md|raid)"
boot=/dev/md1
root=/dev/md1
raid-extra-boot=mbr
root = /dev/md1
root = /dev/md1
root = /dev/md1
15. reboot при загрузке передать lilo параметр
root=/dev/md1
16. проверяем, что смонтированы устройства /dev/md mount
17. Меняем тип разделов на /dev/sda на "fd Linux raid autodetect" fdisk /dev/sda
t
1
fd
t
2
fd
p
w
18. Добавляем /dev/sda1 и /dev/sda2 в рейд массив mdadm --add /dev/md0 /dev/sda1
mdadm --add /dev/md1 /dev/sda2
19. Убеждаемся, что пошла синхронизация и ждем ее окончания [UU] cat /proc/mdstat
20. Редактируем mdadm.comf mv /var/lib/mdadm/CONF-UNCHECKED /var/lib/mdadm/CONF-UNCHECKED.old
cp /etc/mdadm/mdadm.conf.orig /etc/mdadm/mdadm.conf
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
21. Обновляем initrd uname -a
rm /boot/initrd.img-2.6.35.3
update-initramfs -c -t -k 2.6.35.3
22. Прописываем lilo lilo
Статью прислал пользователь regul |
||
Комментарии | ||