Я выполнял задание по восстановлению файлов с одного из моих 2-х отлично работающих, не поврежденных, незашифрованных дисков NAS, которые раньше были в RAID 1. NAS был Patriot Javelin S4, который (как я выяснил из своего исследования) использует поддельный RAID-контроллер 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 долларов, оно могло беспрепятственно показывать мне файлы. Я скопировал несколько файлов, доказывающих, что это работает, но пробная версия позволяет копировать только крошечные файлы.
Я отказываюсь верить, что нет бесплатного инструмента с открытым исходным кодом любого уровня сложности, который не мог бы мне помочь прочтите 64kb xfs.
Мой вопрос: знает ли кто-нибудь такой инструмент? Любые конкретные инструкции о том, как получить данные с помощью одного или нескольких инструментов или исправления ядра, или что-то еще (бесплатное) приветствуются.
Еще один момент: я бы очень предпочел не создавать локальные образы этих дисков (если только это не единственный способ). В конце концов, это 2 ТБ данных, у меня может не так много места.
PS Если есть известный 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 с 64 КБ страниц.
https://alt.fedoraproject.org/alt/
Вы можете используйте для этого qemu. Этот парень, кажется, дает некоторые (не проверенные) инструкции о том, как это сделать.
https://rwmj.wordpress.com/tag/ppc64le/
Оттуда напрямую откройте диск (ы) ) в виртуальной машине и выполните обычную команду dmraid / lvm / mount, чтобы получить доступ к диску.