He estado en una misión para recuperar archivos de uno de mis 2 discos NAS perfectamente encriptados, no corruptos y que funcionaban perfectamente en RAID 1. El NAS era Patriot Javelin S4, que (como descubrí en mi investigación ) utiliza el controlador de incursión falsa Promise Fasttrack.
La información es muy escasa sobre esto, por lo que para los googlers en la misma situación aquí hay algunos datos sobre este NAS:
- Controlador RAID: Promise FastTrack (FakeRaid)
- Sistema de volumen: LVM2
- Sistema de archivos: XFS con un tamaño de bloque de 64 kb (65536 bytes)
- Arco: procesador AMCC PowerPC de 800 MHz, 256 MB de RAM (gracias a la investigación de Matthew)
Solo tenía una computadora con Windows 10 y MacOS cuando hacía esto, y no encontré ningún software capaz de montar XFS en el volumen LVM2 (con una excepción, más sobre esto a continuación). Tuve que sacar mi viejo netbook Acer Aspire One e instalar cachorro Linux en él (específicamente sabor lxpup).
En puppy linux logré montar este sistema de archivos usando una herramienta llamada dmraid
. Esta herramienta tiene una forma de montar un volumen pdc, que es su id para Promise FastTrack. Una vez que logré saltar algunos aros para montarlo, obtuve acceso al sistema de archivos XFS real, y para mi consternación, resultó ser un tamaño de bloque de 64 kb.
Aquí es donde comencé a buscar en Google cosas como "leer xfs 64kb tamaño de bloque" y no llegar a ninguna parte. Solo unas pocas respuestas que dicen: "Linux no puede leer tamaños de bloque mayores a 4kb, a menos que parches el núcleo". No tengo idea de cómo parchear el kernel, y estoy desconcertado de que no haya ningún tipo de emulación para permitir esto.
Mencioné 1 excepción entre las aplicaciones que no pueden leer esta partición en Win / Mac. Esa excepción fue ufsexplorer. Es una aplicación de $ 100, fue capaz de mostrarme sin problemas los archivos. Copié algunos archivos demostrando que funciona, pero la versión de prueba solo permite copiar archivos pequeños.
Me niego a creer que no exista una herramienta gratuita de código abierto de cualquier nivel de complejidad que no pueda ayudarme a leer 64kb xfs.
Mi pregunta es: ¿alguien sabe de alguna herramienta de este tipo? Se agradece cualquier instrucción específica sobre cómo obtener los datos utilizando una o más herramientas, o parches del kernel, u otra cosa (gratis).
Un punto más: preferiría no tener que crear imágenes locales de estas unidades (a menos que sea la única forma). Después de todo, son 2 TB de datos, es posible que no tenga tanto espacio.
PD: Si hay un Linux conocido que puedo instalar en mi Acer que puede leer 64kb xfs, esa también es una solución viable.
Actualización 1 : Acabo de enterarme de https://www.cgsecurity.org/wiki/TestDisk . Podría valer la pena intentarlo. Informaré una vez que haya tenido tiempo de probarlo.
Actualización 2 : TestDisk parece reconocer la presencia de la partición XFS, pero no estoy seguro de cómo proceder desde allí. No veo una manera de extraer un archivo, así que lo abandoné por ahora y probé el enfoque qemu en la respuesta de Matthew.
Respuestas:
He investigado un poco tu problema. No es fácil pero parece factible.
El área del código que lo rompe es la siguiente (bueno, en los núcleos más nuevos):
fs/xfs/libxfs/xfs_sb.c
Básicamente requiere que el tamaño del bloque XFS sea al menos igual al tamaño de página del sistema.
Esto significa dos cosas.
Fui y verifiqué un kernel realmente viejo (EL4) y esa restricción anterior todavía estaba allí. Esto significa que básicamente no es factible hacer lo que desea hacer en su arquitectura (x86).
Dado que proporcionó el nombre del NAS, busqué en Google y descubrí esto: http://www.techwarelabs.com/patriot-javelin-s4-network-attached-storage/2/
Lo que implica que usa una CPU PPC.
De hecho, en los núcleos PowerPC se pueden construir para usar páginas de 64k o páginas de 4k. Esto explicaría por qué el bloque es de 64k y también por qué no puede ejecutar el sistema de archivos en su máquina, donde antes funcionaba en su propio NAS.
Si desea intentar abrir el sistema de archivos, creo que su mejor opción es ejecutar una instancia de máquina virtual en un hipervisor usando PPC64LE (creo que esa es la arquitectura real de esa CPU), Fedora construye su PPC64LE con 64k páginas.
https://alt.fedoraproject.org/alt/
Puedes usar qemu para hacer esto. Este tipo parece dar algunas instrucciones (no probadas) sobre cómo harías para hacer esto.
https://rwmj.wordpress.com/tag/ppc64le/
A partir de ahí, exponga directamente los discos en la VM y haga su dmraid / lvm / mount normal para acceder a la unidad.
fuente
virt-builder fedora-25 --arch ppc64le -o fedora-25-ppc64le.img
. Estoy en linux y obtengo "supermin: no se pudo detectar el administrador de paquetes utilizado por este sistema o distribución".