Мы обеспечиваем пользователей по всему миру наиболее эффективным, надежным и экономичным решением из доступных на рынке программного обеспечения.
  • Определение параметров RAID

При обсуждении процесса восстановления данных с RAID мы полагали, что знаем его параметры. Однако бывают случаи, когда параметры воссоздаваемого RAID неизвестны. Как их определить? Параметры RAID, которые были установлены по умолчанию, можно узнать у производителя дискового массива, однако в процессе его эксплуатации они могли быть изменены. Может R-Studio помочь в этом случае? Да, для этого следует проанализировать данные компонент RAID при помощи встроенного Текстового/шестнадцатиричного редактора. В данной статье будет рассмотрен этот процесс на примере простого NTFS RAID 5.

Чтобы понять нижеизложенный материал необходимо иметь по крайней мере базовые знания структур данных RAID и файловых систем. Определенную информацию об этом можно получить на следующих веб-сайтах:
RAIDs: http://en.wikipedia.org/wiki/RAID
NTFS basics: http://en.wikipedia.org/wiki/NTFS
NTFS in depth: http://technet.microsoft.com/en-us/library/cc758691.aspx

Итак, попробуем найти неизвестные параметры простого тома RAID 5

Пусть нам известны следующие параметры RAID:
1. Число дисков: Три
2. Файловая Система: NTFS (созданная в Windows XP/2003, далее используется стандартная Главная Загрузочная Запись (стартовый блок MBR))
3. Тип: Обычный том

Необходимо определить:
1. Порядок диска
2. Размер блока
3. Порядок блока
4. Смещение диска

Диски, образующие RAID, являются созанными в R-Studio файлами-образами:
Disk1.arc
Disk2.arc
Disk3.arc
Определение параметров RAID: Файлы-образы компонентов RAID
Кликните по изображению чтобы его увеличить
Файлы-образы компонент RAID, открытые в R-Studio

Обратите внимание: несмотря на то, что R-Studio нашла объект Disk1 на Disk2.arc, это вовсе не означает, что именно он является первым диском RAID.

Определение Главной Загрузочной Записи
Во-первых следует определить MBR, чтобы найти смещение RAID
1. Последовательно откройте все три файла-образа в Текстовом/шестнадцатиричном редакторе.
2. Не включайте режим Разрешить Запись (enable write), чтобы избежать случайного повреждения данных на редактируемых объектах!
3. Запишите сигнатуру диска Windows для каждого объекта, чтобы в дальнейшем знать, какое окно редактора какому объекту соответствует.
4. Выполните поиск стартового блока MBR. Для этого в диалоговом окне Search (Поиск) введите 33 C0 8E D0 BC (в большинстве случаев это стандартный стартовый блок MBR) в поле HEX; после этого установите радиокнопку From start position (С начальной позиции) и введите 0 в поле Search in offset (Искать в смещении).
5. Нажмите OK (Да) чтобы начать поиск.
Определение параметров RAID: Диалог Search
Данные диалогового окна Search (Поиск) для начала поиска Главной Загрузочной Записи (MBR)

Результаты поиска:
Определение параметров RAID: Disk1.arc, открытый в Текстовом/шестнадцатиричном редакторе.
Кликните по изображению чтобы его увеличить
Disk1.arc, открытый в Текстовом/шестнадцатиричном редакторе.

Определение параметров RAID: Disk2.arc, открытый в Текстовом/шестнадцатиричном редакторе.
Кликните по изображению чтобы его увеличить
Disk2.arc, открытый в Текстовом/шестнадцатиричном редакторе. Найден шаблон MBR.

Определение параметров RAID: Disk3.arc, открытый в Текстовом/шестнадцатиричном редакторе.
Кликните по изображению чтобы его увеличить
Disk3.arc, открытый в Текстовом/шестнадцатиричном редакторе. Найден шаблон MBR.

Из рисунков следует, что шаблон MBR найден в Текстовом/шестнадцатиричном редакторе по адресу 00 на Disk2.arc и Disk3.arc (на Disk1.arc мы видим одни нули). Это означает, что смещение равно 0 и Disk1.arc не может быть первым диском в RAID.

При помощи редактора были корректно распознаны шаблоны на Disk2 и Disk3, являющиеся кодом главного инициализирующего загрузчика (master bootstrap loader code). В нашем случае два диска содержат одинаковые данные MBR в одном месте.

NДалее необходимо определить загрузочный сектор NTFS.
Посмотрим значение поля Sectors preceding partition (Сектора предшествующие разделу) в панели Templates (Шаблоны)
Определение параметров RAID: Шаблон диска
Кликните по изображению чтобы его увеличить
Панель Templates (Шаблоны) для Disk2 и Disk3

В нашем случае сектор предшествующий разделу - это сектор 16,065.

Если данная величина больше 63, то мы должны разделить ее на N-1, где N - число дисков (в нашем случае N = 3), в результате чего мы получаем значение 8,032. Это приблизительная позиция, с которой следует начать поиск загрузочного сектора NTFS. Начинать поиск надо с этой позиции, чтобы не найти загрузочных секторов прежних NTFS разделов.

Перейдите в поле Sectors (Секторы) в Редакторе, чтобы произвести поиск шаблона загрузочного сектора NTFS.
Определение параметров RAID: Поиск сектора
Кликните по изображению чтобы его увеличить
Поле поиска Sectors (Секторы) в Тестовом/шестнадцатиричном редакторе


В диалоговом окне Search (Поиск) введите EB 52 90 4E 54 46 53 20 20 20 20 (загрузочный сектор NTFS всегда начинается с этих байтов) в поле HEX, установите радиокнопку From current position (С текущей позиции) и введите 0 в поле Search at offset (Искать в смещении).
Определение параметров RAID: Поиск загрузочного сектора NTFS
Кликните по изображению чтобы его увеличить
Данные диалогового окна Search (Поиск) для начала поиска загрузочного сектора NTFS

Данный шаблон найден в Редакторе в секторе 8064 на Disk2 и Disk3.

Теперь выберем шаблон Boot sector NTFS (Загрузочный сектор NTFS) в панели Templates (Шаблоны).
Определение параметров RAID: Найденный загрузочный сектор NTFS
Кликните по изображению чтобы его увеличить
Disk2.arc, открытый в Текстовом/шестнадцатиричном редакторе. Найден шаблон загрузочного сектора NTFS. Тот же шаблон найден на Disk3.arc.

Мы нашли следующие параметры
Bytes per sector (Байтов в секторе): 512
Sectors per cluster (Секторов в кластере): 8
Logical Cluster Number for the file $MFT (Логический Номер Кластера для файла $MFT): 786432

Ранее найденные параметры:
Смещение RAID: 0

Далее нам нужно определить MFT (главную файловую таблицу) на диске:

1. Попробуем найти примерное смещение MFT с начала RAID:
Смещение MFT с начала раздела в секторах = Логический Номер Кластера файла $MFT * Секторов в кластере+смещение RAID = 786,432*8+0 = 6,291,456
Если смещение RAID не 0, то его необходимо прибавить к результату вышеприведенного уравнения.
Начало MFT на первом диске = Смещение MFT с начала раздела в секторах/(N-1) = 6,291,456/2 = 3,145,728

2. Начнем поиск точного начала MFT с позиции примерно на 2000 секторов меньше данной величины. Например, с сектора 3,140,000.
В диалоговом окне Search (Поиск) введите "FILE" в поле ANSI, установите радиокнопку From current position (С текущей позиции) и ведите 0 в поле Search at offset (Искать в смещении).
Определение параметров RAID: Шаблон файла
Кликните по изображению чтобы его увеличить
Шаблон найден в секторе 10,241,463 на Disk2 и в секторе 3,153,792 на Disk3.

Определение параметров RAID: Шаблон файла
Кликните по изображению чтобы его увеличить
Первый сектор файловой записи на Disk3. Начало блока данных.

Важно отметить следующее: сигнатура FILE заканчивается значением 0, что означает, что индекс файловой записи не был перезаписан значением fixup. Если бы она заканчивалась значением * (FILE*), то в дальнейшем нам пришлось бы изменить наш поиск.

Шаблон $.M.F.T. (HEX 24 00 4D 00 46 00 54) показывает, что это корректное начало MFT.
Так как сектор 3,153,792 ближе к найденному нами примерному смещению MFT 3,145,728, чем к сектору 10,241,463, то это позволяет допустить, что Disk3 является первым диском RAID.

Далее нам надо учесть, что файловая запись в MFT занимает два сектора и при успешной записи данных на RAID 5 один блок данных записывается на один диск, потом следующий блок данных на следующий диск, далее блок четности на третий диск. Пример такой схемы приведен в следующей таблице ...

Первый диск RAID Второй диск RAID Третий диск RAID
PD 1 2
3 PD 4
5 6 PD
... где числа означают порядок, в котором блоки данных записываются на соответствующие диски, а PD означает блок "четности данных".
(Данная таблица приведена как пример, в общем случае порядок блока может быть произвольным.)

В нашем случае это означает, что индекс файловой записи в MFT будет увеличиваться на единицу с каждым блоком данных. Далее MFT будет располагаться на следующем диске, где индекс файловой записи будет увеличиваться на единицу с каждым соответствующим блоком данных, далее на третьем диске, содержащим блок четности. И так далее.

Так что для нахождения размера блока мы посмотрим на индекс файловой записи на данном блоке и найдем место, в котором он перестают увеличиваться на единицу. Это место будет означать конец блока данных. После этого просмотрим другие диски и найдем тот диск и место, где индекс файловой записи в MFT опять начинает увеличиваться на единицу. Далее аналогично просмотрим следующий диск и т.д.

Такой поиск может быть выполнен путем прокручивания текста в Редакторе через два сектора.

На Disk 3 блок данных заканчивается в секторе 3,153,919 с индексом файловой записи 3F 00.

Определение параметров RAID: Запись последнего файла
Кликните по изображению чтобы его увеличить
Последняя файловая запись на Disk3. Блок данных заканчивается в следующем секторе (3,153,919).

Посмотрев на другие диски мы увидим, что данная MFT продолжается на Disk 1 в секторе 3,153,792 с индексом файловой записи 40 00 и заканчивается в секторе: 3,153,919 с индексом файловой записи 7F 00. И так далее.

Определение параметров RAID: Файловая запись на Disk1
Кликните по изображению чтобы его увеличить
Файловая запись продолжается на Disk1. Начало блока данных.

Определение параметров RAID: Конец блока данных
Кликните по изображению чтобы его увеличить
Последняя файловая запись на Disk1. Блок данных заканчивается в следующем секторе (3,153,919)

Окончательный результат представлен в следующей таблице:
Disk1 Disk2 Disk3
Сектор: 3,153,792 Запись: 40 00
Сектор: 3,153,918 Запись: 7F 00
Сектор: 3,153,919 Конец stripe блока
Сектор: 3,153,792 Нет записей
Сектор: 3,153,918 Нет записей
Сектор: 3,153,919 Конец stripe блока
Сектор: 3,153,792 Запись: 00 00
Сектор: 3,153,918 Запись: 3F 00
Сектор: 3,153,919 Конец stripe блока
Сектор: 3,153,920 Запись: Нет записей
Сектор: 3,154,046 Запись: Нет записей
Сектор: 3,154,047 Конец stripe блока
Сектор: 3,153,920 Запись: C0 00
Сектор: Сектор: 3,154,046 Запись: FF 00
Сектор: 3,154,047 Конец stripe блока
Сектор: 3,153,920 Запись: 80 00
Сектор: 3,154,046 Запись: BF 00
Сектор: 3,154,047 Конец stripe блока
Сектор: 3,154,048 Запись: 00 01
Сектор: 3,154,174 Запись: 3F 01
Сектор: 3,154,175 Конец stripe блока
Сектор: 3,154,048 Запись: 40 01
Сектор: Сектор: 3,154,174 Запись: 7F 01
Сектор: 3,154,175 Конец stripe блока
Сектор: 3,154,048 Запись: Нет записей
Сектор: 3,154,174 Запись: Нет записей
Сектор: 3,154,175 Конец stripe блока
Нет записей означает, что данный блок является блоком четности

Определение параметров RAID: Сектор четности
Кликните по изображению чтобы его увеличить
Пример сектора блока четности

Из вышеприведенной таблицы мы сможем определить следующие параметры:

Порядок дисков:
Первый диск RAID - Disk3.arc
Второй диск RAID - Disk1.arc
Третий диск RAID - Disk2.arc

Смещение: 0
Размер stripe блоков: 128 секторов или 65,536Б (64КБ)
Порядок stripe блоков: (PD означает Четность Данных)

Первый диск RAID Второй диск RAID Третий диск RAID
1 2 PD
3 PD 4
PD 5 6

Теперь мы можем создать такой RAID в R-Studio:
Определение параметров RAID: Созданный объект RAID 5
Кликните по изображению чтобы его увеличить
Объект RAID 5, созданный в R-Studio

При помощи R-Studio на RAID найден объект с файловой системой (Partition 1)

Дважды щелкнем мышью по данному объекту, чтобы просмотреть его файлы:
Определение параметров RAID: Найденная структура файлов и папок
Кликните по изображению чтобы его увеличить
Структура Папок/Файлов, найденная при помощи R-Studio

Если при помощи R-Studio можно просмотреть структуру папок/файлов, то это хороший знак. Чтобы окончательно убедиться в том, что мы создали RAID с корректными параметрами, следует просмотреть файл. Размер просматриваемого файла должен превышать размер блока * (Число дисков -1). В нашем случае это 128КБ.
Определение параметров RAID: Просмотр файла
Кликните по изображению чтобы его увеличить
Просмотр файла Picture 236.jpg

Просмотр файла дал положительный результат - следовательно, мы создали RAID с корректными параметрами.

Отзывы о Восстановлении Данных
372 feedbacks
Rating: 4.8 / 5
I have used R-studio with USB Stabilizer,Rapid-spar,Deep spar, Pc3000, MRT.I am thoroughly satisfied.Now i have made head maps to isolate bad heads of hard disk when used with mounted disks.
I was completely lost. My Mac seemed to have eaten my 4TB external USB drive - was formatted APFS encrypted. The volume just disappeared while running and I had to reboot and when it came back the volume could not be unlocked / mounted natively. I tried a whole heap of methods (https://github.com/libyal/libfsapfs/, drat and many others) to no avail. R-Studio data recovery was able to recover the entire volume - a complete life saver, worth every cent!
I really love your R-Studio product, I am doing Data Recovery as a professional, I used RS since the early versions and I loved the product, as far as I can tell, R-Studio, especially the Tech Version (but including the standard) is one of the best and excellent tools for a pro to have in the arsenal of tools in a pro DR lab, especially combining with the specialized Data Recovery hardware providers like DeepSpar, and PC3000, the rest of `wannabees` out there are waste of time, strongly recommend
I lost more than 200K files from my NAS due to a mistake. I tried 3 different recovery solutions over the 4 TB raid disks, and all of them performed ok but to be honest none of them were able to Raw recover the files and rename them with meaningful names out of the Metadata like R-TT did, then I was able to sort again my files and pictures and kind of restore all of them.

R-TT may not be the easiest or most user-friendly solution, but the algorithm used for the renaming saved me THOUSAND of hours of opening ...
Just recovered my old ext4 partition with R-Studio after trying testdisk and R-Linux without success. That partition was overwritten by another ext4 partition and I was losing my hope until I tried R-Studio demo. It detected all my files and directories again!

Bought it and 100% recommend it for anyone with a similar issue.