LINUX.ORG.RU
ФорумAdmin

Нужна помощь, отвалился один диск в софтовом рейде

 ,


0

5

Доброго всем вечера, нужна помощь ваша, в одну голову уже не получается решить. Был у человека сервер на нем настроен был софтовый рейд зеркалирование. Пару дней назад сервер после отключения не поднялся и выдал (U_) т.е. один веник умер (на самом деле он живой но данные повреждены). Получилась странная ситуация, если оставить один веник то поднимается живая система Debian но на ней нет данных клиента (чистый линух), если оставить второй, то поднимается полуконсоль в которой не хватает команд т.к. ругается на их отсутствие в /sbin но при этом сработала команда mc и я увидел, что данные клиента есть и вроде как можно скопировать, но смонтировать ни флешку не веник другой не получается, на все попытки ругается unknown filesystem и дальше название любой файловой системы, что не подсунь ему. Пробовал грузится с live и монтировать этот веник, тот ругается на то что веник член массива и монтировать его не могу. Один выход видиться, ставить систему на другой винт и монтировать винт с данными через mdadm вот только как ума не приложу.

Получилась странная ситуация, если оставить один веник то поднимается живая система Debian но на ней нет данных клиента (чистый линух), если оставить второй, то поднимается полуконсоль в которой не хватает команд т.к.

Хреново.

Сейчас лучше найти пару дисков такого же, или большего объема и задампить туда то, что еще осталось.

Нужно подключить все диски.
Загрузиться с systemrescuecd.
Сделать smartctl -a /dev/sda; smartctl -a /dev/sdb, и убедиться, что со старыми дисками действительно всё нормально и они не помрут во время дампа.
Потом делаем дамп: dd if=/dev/sda of=/dev/sdc bs=512, где /dev/sda — старый диск, /dev/sdc — новый диск, bs лучше указать равным «Sector Size» из выхлопа smartctl в предыдущем пункте. В соседнем терминале запускаем while true; do killall -USR1 dd; sleep 2; done, чтобы dd показывало прогресс. Это надолго. Потом лучше вообще вытащить все диски, кроме того, на котором остались важные данные, и снова загрузиться с systemrescuecd.

partprobe /dev/sda
cat /proc/mdstat
mdadm -A /dev/md[0-9]*
#если предыдущая команда не запустила массивы, то
mdadm --stop /dev/md[0-9]*
mdadm --assemble --scan

partprobe /dev/md[0-9]* #это на случай, если человек решил накатить таблицу разделов на блочное устройство массива, это конечно абсурд, но я такое видел не раз
blkid
mount /dev/md... /mnt
Если не получится примонтировать, то можно попробовать PhotoRec, fsck, PhotoRec, TestDisk, PhotoRec (лучше именно в такой последовательности).

Потом можно попробовать вставить второй диск и пересобрать массивы:

partprobe /dev/sd*
mdadm --stop /dev/md[0-9]*
mdadm --remove /dev/md[0-9]*
for i in {a,b}; do mdadm --zero-superblock /dev/sd$i1; mdadm --zero-superblock /dev/sd$i5; done #Удаление  метаданных и разделов
mdadm --create --metadata 1.2 --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
mdadm --create --metadata 1.2 --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sda5 /dev/sdb5
С данными при пересоздании суперблока ничего не будет (но может случиться потом при запуске синхронизации), важно обратить внимание на версию метаданных. Ну и если все пройдет нормально и массивы запустятся и проминтируются:
mdadm --detail --scan > /mnt/etc/mdadm.conf #В centos/fedora/rhel
mdadm --detail --scan > /mnt/etc/mdadm/mdadm.conf #В debian/ubuntu/gentoo
Где в /mnt примонтирован раздел с системой на массиве.

Если ничего не получится и нет бекапов, то лучше отнести диски, на которые сделали дамп, в профессионально занимающуюся восстановлением данных контору.

Deleted
()
Ответ на: комментарий от Deleted

Да, и на всякий случай делать всё это на другой машине со 100% рабочими sata/sas контролером и памятью.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.