Востановление данных с жестких дисков из NAS с файловой системой SGI XFS
|Ситуация возникла с одним из файловых хранилищ Promise на 4-е винчестера. Но на данный момент стоят 4-е винчестера. 2 шт WD black по 2 ТБ. Прошу заметить что стоят они в зеркальном рейде, и еще 2-а WD green по 2 ТБ каждый тоже в отдельном зеркальном рейде. В один прекрасный день, после выключения, Promise мигает красной лампочкой «обнаружены ошибки» и не поднимает SMB и AFP. Веб интерфейс тоже не работает. Достаю все 4-е винчестера, запускаю Promise — веб интерфейс поднимается. Засовываю назад винчестера — SMB и AFP запускается, но монтируются только первые 2-а блека в рейде. Promise винчестера WD green видит как неотформатированную область. Поигрался винтами, но результата это не дало. Прежде чем выяснять причины почему так произошло, надо достать данные.
Поскольку встроенных каких-то утилит в NAS для востановления данных нет, и официальный сайт насчет таких проблем молчит, то надо пробовать восстанавливать данные своими силами. Для начала я подцепил винчестер к Mac OS, на что он мне выдал:
Ну в принципе я другого не ожидал, ведь Promise работает с ext3 или ext4, поэтому я поставитл Paragon ExtFS, который позволяет монтировать ext2, ext3 и ext4 разделы, но после перезагрузки выскакивает все таже табличка…
Ок, подумали, покурили, будем попробовать проверенные способы- утилиты которые сканируют винчестер не внося в него никаких изменений:
Data Rescue — сканировала трое суток, вытащила данные, но без соблюдения иерархии папок.
Boomerang Data Recovery — тоже самое
StellarPhoenix Mac DataRecovery — тоже самое
Поскольку все эти утилиты данные видят, но не могут восстановить иерархию папок значит что-то тут не так. Поехал гуглить и нашел утилиту UFS Explorer Standard Recovery которая вытаскивает данные с линуксовых файловых систем. Ломаную не нашел, но скачал бета версию с сайта производителя. И вот оно:
Видим файловую систему диска- SGI XFS. Программа без сканирования заходит на винчестер и видит все файлы с иерархией папок. Вот только программа demo, и вытаскивает файлы не более 3мб. Поскольку данные нужны не мне, а знакомому, то и покупать программу за 75$ за свой счет я пожалуй не буду. Но главное мы от нее узнали:
- Файловую систему винчестера
- Понимание почему другие утилиты сканируют винт и видят файлы но не видят иерархию папок — потому что они не работают с SGI XFS.
И сделал первый, но самый важный вывод — прежде чем восстанавливать данные и терять время, нужно понять в какой он файловой системе, т.к. некоторые программы дружат по-разному с различными файловыми системами, если вообще дружат.
Ок, давайте рассмотрим что же за файловая система такая SGI XFS, и как ее подмонтировать: XFS отличается от других ФС тем, что она изначально была рассчитана для использования на дисках большого объёма (более 2 ТБ к примеру в RAID- массивах).
Вывод №2 в большинстве NAS, как пишет интернет, на дисках используется XFS в качестве файловой системы.
Также чиатем как ее подмонтировать: Поддержка XFS была включена в ядро Linux версий 2.4 и 2.6, таким образом, она стала довольно универсальной для Linux-систем. XFS читают такие операционные системы: openSUSE, Gentoo, Mandriva, Slackware, Ubuntu, Fedora и Debian, а FreeBSD стала поддерживать XFS в режиме чтения в декабре 2005 года.
Кстате википедия пишет: Восстановление удалённых файлов в XFS — очень сложный процесс, поэтому на данный момент существует всего лишь несколько программных продуктов для восстановления удаленных файлов с этой файловой системы, например «Raise Data Recovery for XFS» для ОС Windows и Mac OS.
Т.е. У нас готовый ответ клиенту, другу, знакомому который удалил данные с NAS с файловой системой XFS: «Выключайте срочно NAS, и несите к нам», ведь мы уже знаем чем восстанавливать данные А тем временем готовим компьютер с программой Raise Data Recovery for XFS.
Спросив владельца NAS что там вообще было, и вообще стоит ли так заморачиваться чтобы восстановить данные, получил ответ что там кроме скачанных взломанных игр, есть купленный софт, видео материалы, фотографии.
Восстановление данных с SGI XFS
Я решил монтировать диска под Убунтой. Скачал последнюю версию с офф сайта и поставил на винтруальную машину. Кстати, нормально убунта версий 10, 11, 12 начала работать только под VMware Fusion 4 или более раней и установкой вручную, а не используя быструю установку Fusion.
Итак Ubuntu 12 стоит, подключаем к ней внешний винчестер из Promise и… И он не отображается как носитель. Проверяем видит ли Ubuntu в принципе этот жесткий диск, для этого открываем терминал и пишем
1 | fdisk -l |
(аналог команды diskutil list на Mac OS) Вывод команды выдает только один /dev/sdb (нету /dev/sdb1) т.е. убунту не распознает partition table винта, но радует что она его видит. Пытаемся подмонтировать винчестер руками:
1 | mount -t xfs /dev/sdb /home/ubuntu/Desktop |
т.е. Подмонтирую диск нам на рабочий стол. Вывод говорит что система не может найти суперблок.Проблема может быть и в неправильном UUID диска (Уникальный Идентификатор). Пробуем подмонтировать без UUID:
1 | mount -o nouuid /dev/sdb /home/ubuntu/Desktop |
Результат тот же. Поселяться мысля, что на винчестере просто битая файловая система. Пробуем починить:
1 | xfs_repair -n /dev/sdb |
Система пытаеться найти суперблок, и найти его так и не смогла.
Делаем blkid — читает содержимое файлов блочных устройств (ноды устройств)После долгих раздумий которые привели к мысли, что если диск был в рейде, то partion table на своем месте я не найду, рейд надо ломать, делаем
1 | dmraid -rE /dev/sdb |
Команда убирает с диска метаданные raid, и диск иожно будет видеть как самостоятельный. Важно: dmraid -rE перед тем как удалить, создаст дамп метаданных в *.dat файлах. Чтоб не порушить инфу случайно надо не забыть их сохранить, чтоб восстановить если что не так.
После dmraid и перезагрузки пробуем подмонтировать еще раз:О! уже что-то. Пошли разбираться с LVM. В конфигурации RAID из томов LVM, состоящих из разных дисков можно наворотить разных систем, в которых из одного только диска вытащить информацию может не получиться. Но у нас зеркальный RAID поэтому все ок. Отлично, используя lvm2 утилиты сканируем диски
1 | lvmdiskscan |
Все! Теперь можно монтировать!
На этом все, но если у вас возникли какие-то вопросы или пожелания, пиши в комментариях, буду пробовать вам помочь.