Виведення файлів із XFS з розміром блоку 64 кбіт


9

Я був у місії з відновлення файлів з одного з моїх 2 чудово працюючих, непошкоджених незашифрованих накопичувачів NAS, які раніше були в RAID 1. NAS був Patriot Javelin S4, який (як я з'ясував у своїх дослідженнях ) використовує підроблений контролер рейду Promise Fasttrack.

Інформації щодо цього дуже мало, тому для гуглерів, які перебувають у тій же ситуації, ось деякі факти щодо цього NAS:

  • RAID-контролер: Обіцяйте FastTrack (FakeRaid)
  • Система гучності: LVM2
  • Файлова система: XFS з розміром блоку 64 кбіт (65536 байт)
  • Арка: 800 МГц процесор AMCC PowerPC, 256 Мб оперативної пам’яті (завдяки дослідженню Метью)

Під час цього у мене був лише комп'ютер Windows 10 та MacOS, і я не знайшов програмного забезпечення, здатного встановити XFS в обсязі LVM2 (за винятком 1, докладніше про це нижче). Мені довелося вийняти свій старий нетбук Acer Aspire One і встановити на ньому цуценя linux (конкретно смак lxpup).

На щенячому linux мені вдалося встановити цю файлову систему за допомогою інструменту під назвою dmraid. Цей інструмент має спосіб монтажу тома pdc, що є його ідентифікатором для Promise FastTrack. Після того, як мені вдалося перескочити кілька обручів, що монтують його, я отримав доступ до фактичної файлової системи XFS, і на мій страх, виявився розмір блоку в 64 кбіт.

Тут я почав гуглювати такі речі, як "читати xfs 64kb розмір блоку" і дістатися нікуди. Лише кілька відповідей, які говорять: "Linux не може читати розміри блоків, більші за 4 Кб, якщо ви не закріпили ядро". Я не маю уявлення, як виправити ядро, і я здивований тим, що не існує ніякої емуляції, яка б це дозволила.

Я згадав про 1 виняток серед програм, які не можуть читати цей розділ на Win / Mac. Цей виняток був ufsexplorer. Це 100-доларовий додаток, він міг легко показати мені файли. Я скопіював декілька файлів, які підтверджують, що він працює, але пробна версія дозволяє лише копіювати крихітні файли.

Я відмовляюся вірити, що там не існує безкоштовного інструменту з відкритим кодом такого рівня складності, який не може допомогти мені прочитати 64kb xfs.

Моє запитання: чи знає хтось про подібний інструмент? Будь-яка вдячність за будь-які конкретні вказівки щодо отримання даних за допомогою одного або декількох інструментів, виправлення ядра чи чогось іншого (безкоштовного).

Ще один момент: я б дуже вважав за краще не створювати локальні зображення цих дисків (якщо тільки це єдиний спосіб). Зрештою, це 2 ТБ даних, можливо, у мене не так багато місця.

PS Якщо є відомий Linux, я можу встановити на своєму Acer, який може читати 64kb xfs, і це є прийнятним рішенням.

Оновлення 1 : Я щойно дізнався про https://www.cgsecurity.org/wiki/TestDisk . Можливо, варто зняти. Повідомлюся про те, як тільки я встиг спробувати.

Оновлення 2 : TestDisk, схоже, визнає наявність XFS розділу, але я не знаю, як продовжувати форму там. Я не бачу способу витягти файл, тому я поки що просто відмовився від нього і намагаюся підходити до qemu у відповіді Метью.


Я бачу два рішення, створити власне ядро ​​або створити зображення зі своїм розділом xfs та спробую відкрити його під вікном на fs-driver.org
Олександр Толкачев

@AlexanderT Привіт, дякую за відгук. Будь-які посилання на користувацьке ядро? Крім того, чи може бути спосіб клонування диска в моєму Mac-диску під час перетворення файлової системи на ходу? І щоб було зрозуміло: у мене накопичений накопичувач NAS через перетворювач SATA -> USB, тому я можу підключити його безпосередньо до windows або mac, не створюючи зображення.
Макс Черняк

Спробуйте і подивіться, чи допоможе xfsdump.
Марсіан

> виявився розмір блоку 64 кб. Детальніше про те, як ви прийшли до цього висновку, будь ласка
poige

1
Розумію. Що ж, про те, що я хотів би бути у вашому взутті, - це відповідна пошта: xfs.org/index.php/XFS_email_list_and_archives
poige

Відповіді:


8

Я трохи проаналізував вашу проблему. Непросто, але виглядає здійсненно.

Область розбиття коду така (ну, в нових ядрах): 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 був принаймні рівним розміру сторінки системи.

Це означає дві речі.

  1. Це вирішення помилки, про яке раніше не було відомо.
  2. Спочатку розмір сторінки системи становив 64 к.

Я пішов і перевірив дійсно старе ядро ​​(EL4), і це обмеження вище все ще було. Це означає, що принципово не здійснено робити те, що ви хочете зробити для своєї архітектури (x86).

З огляду на те, що ви назвали NAS, я здійснив гуглінг і виявив це: http://www.techwarelabs.com/patriot-javelin-s4-network-attached-storage/2/

Що означає, що він використовує процесор КПП.

Апаратура Javelin більш ніж здатна вирішувати додаткові ролі. По суті це вбудована система Linux з процесором AMCC PowerPC на 800 МГц та 256 Мб оперативної пам’яті.

Дійсно, на PowerPC ядра можуть бути побудовані для використання або 64k сторінок, або 4k сторінок. Це пояснило б, чому блок має 64k, а також чому ви не можете запустити файлову систему на вашій машині, де вона раніше працювала над власною NAS.

Якщо ви хочете спробувати відкрити файлову систему - я думаю, що ваш найкращий варіант - запустити екземпляр віртуальної машини в гіпервізорі за допомогою PPC64LE (я думаю, що це фактична архітектура цього процесора), Fedora будує свій PPC64LE на 64k сторінках.

https://alt.fedoraproject.org/alt/

Ви можете використовувати qemu для цього. Цей хлопець, здається, дає деякі (не перевірені) вказівки, як би ви робили це робити.

https://rwmj.wordpress.com/tag/ppc64le/

Звідти безпосередньо відкрийте диски (диски) у VM та зробіть звичайний dmraid / lvm / mount, щоб отримати доступ до накопичувача.


Я звітую про це, як тільки встигну вивчити підхід qemu. Виглядаєте дуже сподіваючись, цінуйте час, який ви вкладаєте в цього Метью.
Макс Черняк

Наразі я намагаюся бігти virt-builder fedora-25 --arch ppc64le -o fedora-25-ppc64le.img. Я перебуваю на щенячому linux і отримую "supermin: не вдалося виявити менеджера пакунків, використовуваних цією системою або дистрибутивом".
Макс Черняк

Використовуйте дистрибутив Fedora для цього.
Метью Іфе

У мене ще не було можливості закінчити цю спробу, але я дарую вам щедрість. Я сподіваюся, що все-таки зможу продовжувати працювати, коли я працюю над цим.
Макс Черняк

@hakunin Я зміг форматувати і змонтувати файлову систему 64fs xfs у архітектурі ppc64le, як я запропонував вам зробити на початку цього тижня, тому я знаю, що це спрацює.
Метью Іфе
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.