¿Cómo se puede mapa sectores físicos de un disco para los archivos que los contienen en un volumen HFS + de Mac OS X

StackOverflow https://stackoverflow.com/questions/1384436

Pregunta

He estado recuperando un disco duro utilizando dd_rescue , lo que me ofrece una lista de todos los sectores de dispositivos que no se pudo copiar debido a errores de hardware.

Me gustaría tener esa lista, y escribir una herramienta para darme todos los archivos que contienen estos sectores defectuosos para que pueda eliminarlos. No estoy seguro de lo que las API que puede utilizar para hacer esto -. Esencialmente quiero conseguir una lista de todos los archivos en el disco y para cada archivo, una lista de los rangos de los sectores que ocupa en el disco

Mi primera suposición es que voy a iterar sobre cada entrada de directorio en el disco y comprobar para ver si el archivo se superpone uno de estos sectores defectuosos. Tal vez hay una mejor manera.

¿Fue útil?

Solución

Si desea asignar los datos de ubicación de un archivo a un bloque físico (sector), se puede utilizar el fcntl (2) llaman con el comando F_LOG2PHYS. No todos los sistemas de archivos de soporte para este comando, pero hace HFS +. Sólo tiene que utilizar lseek para recoger el desplazamiento de archivos y que pueda volver al diskoffset de F_LOG2PHYS (se devuelve en un log2phys struct en el campo l2p_devoffset). Ver fcntl.h para más detalles.

Otros consejos

No hay API expuesta por el arranque a través de sistemas de archivos HFS +, pero el fuente para el sistema de ficheros está disponible de Apple como parte del núcleo XNU. También puedes ver el href="http://osxbook.com/software/hfsdebug/" rel="nofollow noreferrer"> hfsdebug herramienta lo que podría ayudar a entender las fs.

Es una vieja pregunta, pero ya que todavía es uno de los principales éxitos en la búsqueda del tema, he aquí a todos los que han buscado:

Dado que el Mac OS X 10.6 fsck_hfs (8) puede asignar sectores físicos de archivos (véase la opción -B). Nota sobre el uso: búsqueda sólo tendrá éxito si la comprobación del catálogo se llevó a cabo en realidad. Así que puede que tenga que forzar la comprobación con las opciones -l o -F.

Por cierto, hfsdebug como un binario PPC se basa en Rosetta y por lo tanto no se ejecutará en Lion o posterior.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top