Я выполнял миссию по восстановлению файлов с одного из двух моих отлично работающих, неповрежденных, незашифрованных дисков NAS, которые раньше были в RAID 1. NAS был Patriot Javelin S4, который (как я выяснил из своего исследования) ) использует поддельный рейд-контроллер Promise Fasttrack.
Информации об этом очень мало, поэтому для гуглеров, оказавшихся в такой же ситуации, вот несколько фактов об этом NAS:
При этом у меня был только компьютер с Windows 10 и MacOS, и я не нашел программного обеспечения, способного монтировать XFS в том LVM2 (за одним исключением, подробнее об этом ниже). Мне пришлось достать мой старый нетбук Acer Aspire One и установить на него puppy linux (особенно lxpup).
На puppy linux мне удалось смонтировать эту файловую систему с помощью инструмента под названием dmraid
. У этого инструмента есть способ монтировать том pdc, который является его идентификатором для Promise FastTrack. Как только мне удалось перепрыгнуть через некоторые обручи, монтируя его, я получил доступ к фактической файловой системе XFS, и, к моему разочарованию, размер блока оказался 64 КБ.
Здесь я начал гуглить такие вещи, как «читать размер блока xfs 64 КБ» и ни к чему не приводил. Всего несколько ответов, в которых говорится: «Linux не может читать блоки размером более 4 КБ, если вы не исправите ядро». Я понятия не имею, как исправить ядро, и меня сбивает с толку то, что для этого не существует какой-либо эмуляции.
Я упомянул одно исключение среди приложений, которые не могут читать этот раздел на Win / Mac. Этим исключением был ufsexplorer. Это приложение за 100 долларов, оно могло беспрепятственно показывать мне файлы. Я скопировал несколько файлов, доказывающих, что это работает, но пробная версия позволяет копировать только крошечные файлы.
Я отказываюсь верить, что нет бесплатного инструмента с открытым исходным кодом любого уровня сложности, который не помог бы мне прочитать 64 КБ xfs.
У меня вопрос: кто-нибудь знает о таком инструменте? Приветствуются любые конкретные инструкции о том, как получить данные с помощью одного или нескольких инструментов, исправления ядра или чего-то еще (бесплатного).
Еще один момент: я бы очень предпочел не создавать локальные образы этих дисков (если только это не единственный способ). В конце концов, это 2 ТБ данных, у меня может не хватить места.
P.S. Если есть известный Linux, который я могу установить на свой Acer, который может читать 64 КБ xfs, это тоже жизнеспособное решение.
Обновление 1: Я только что узнал о https://www.cgsecurity.org/wiki/TestDisk. Может, стоит попробовать. Сообщу, как только у меня будет время попробовать.
Обновление 2: TestDisk, похоже, распознает наличие раздела XFS, но я не уверен, как действовать оттуда. Я не вижу способа извлечь файл, поэтому я просто отказался от него и попробовал подход qemu в ответе Мэтью.
Я немного исследовал вашу проблему. Непросто, но выглядит осуществимым.
Область кода, которая вас нарушает (ну, в новых ядрах): fs/xfs/libxfs/xfs_sb.c
271 /*
272 * Until this is fixed only page-sized or smaller data blocks work.
273 */
274 if (unlikely(sbp->sb_blocksize > PAGE_SIZE)) {
275 xfs_warn(mp,
276 "File system with blocksize %d bytes. "
277 "Only pagesize (%ld) or less will currently work.",
278 sbp->sb_blocksize, PAGE_SIZE);
279 return -ENOSYS;
280 }
В основном это требует, чтобы размер блока XFS был как минимум равен размеру страницы системы.
Это означает две вещи.
Я пошел и проверил действительно старое ядро (EL4), и это ограничение все еще сохранялось. Это означает, что в принципе невозможно делать то, что вы хотите, на вашей архитектуре (x86).
Учитывая, что вы указали имя NAS, я немного погуглил и обнаружил следующее: http://www.techwarelabs.com/patriot-javelin-s4-network-attached-storage/2/
Это означает, что он использует ЦП PPC.
Аппаратное обеспечение Javelin более чем способно выполнять дополнительные роли. По сути, это встроенная система Linux с процессором AMCC PowerPC 800 МГц и 256 МБ оперативной памяти.
Действительно, ядра PowerPC могут быть построены для использования либо страниц 64k, либо страниц 4k. Это объясняет, почему размер блока составляет 64 КБ, а также почему вы не можете запустить файловую систему на своем компьютере, где раньше она работала на собственном NAS.
Если вы хотите попытаться открыть файловую систему - я думаю, ваш лучший вариант - запустить экземпляр виртуальной машины в гипервизоре с использованием PPC64LE (я думаю, что это фактическая архитектура этого процессора), Fedora создаст свой PPC64LE с 64k страницами.
https://alt.fedoraproject.org/alt/
Для этого вы можете использовать qemu. Этот парень, кажется, дает некоторые (не проверенные) инструкции о том, как вы это сделаете.
https://rwmj.wordpress.com/tag/ppc64le/
Оттуда напрямую откройте диск (ы) в виртуальной машине и выполните обычную команду dmraid / lvm / mount, чтобы получить доступ к диску.