Tengo una Macbook Pro de finales de 2011 que ejecuta Mavericks 10.9.2. Su único HDD es una unidad de 750GB, formateada con Bootcamp. Todavía funciona razonablemente bien, pero al ejecutar un pase de desfragmentación, he identificado que hay un montón de archivos que se niegan a ser movidos por el desfragmentador (iDefrag).
iDefrag informa un código de error POSIX de 5 cuando accede a los archivos. Elegir uno al azar e intentar copiar el archivo a otra ubicación en el shell también informa un error, lo que me hace pensar que el problema es real y con el disco / FS. La salida de cp es:
cp: unity_nophysx.nexe: Input/output error
Hasta donde yo sé, el código de error 5 es 'acceso denegado', pero el proceso de desfragmentación se ejecuta como administrador y ejecutar cp usando sudo en el archivo sospechoso no hace ninguna diferencia.
Disk Utility, fsck y Apple Hardware Test afirman que el disco está bien. No se informaron errores SMART, y aunque hubo algunos errores de permisos, no estaban con los archivos de los que iDefrag se queja, y Disk Utility afirma haberlos solucionado sin queja.
Tal vez hay un centenar o más de archivos dañados, pero aún una fracción muy pequeña de la unidad. Por lo que puedo decir, no se ven afectados los archivos del sistema o los datos cruciales. Si bien sería bueno recuperar los datos, no me importa reinstalar o hacer copias de seguridad. En este punto, no sé si realmente se está muriendo la unidad, solo algunos sectores defectuosos debido a que la unidad se está moviendo mientras se escribe, o alguna otra corrupción menor que se puede solucionar. Estoy asumiendo el peor de los casos, y lo más probable es que tenga que obtener un HDD un poco más grande y clonar el disco existente para evitar tener que reconstruir el sistema.
Mi pregunta es realmente cómo hago para marcar esos archivos rotos como quebrados correctamente y arreglarlos o purgarlos , para que un clon del disco tenga éxito y no se atasque en archivos / bloques a los que no puede acceder. Disk Utility no está viendo el problema, y no conozco ninguna línea de comando o herramientas de terceros que hagan el trabajo. No quiero descartar todo el disco y comenzar desde cero, ya que la unidad parece saludable, por lo que estoy buscando herramientas de reparación / diagnóstico.
fuente
Respuestas:
Si se enfrenta a un sistema de archivos en buen estado en el nivel de su estructura y desea encontrar archivos que tengan bloques defectuosos en el disco, así es como procedería:
Hacer una copia de seguridad completa de su disco con
Time Machine
o Carbon Copy ClonerComprueba esta copia de seguridad.
Ejecute el siguiente comando pesado y arriesgado (en caso de que tenga bloques defectuosos fuera de la estructura de su sistema de archivos) (asegúrese de que se cita {} para que funcionen los nombres de archivo que contienen espacios):
Este
find
comando pesado imprimirá para cualquier archivo sin formato su nombre (por lo tanto, no lo leerá, sino solo su entrada de directorio) y luego continuará haciendo una lectura completa y rápida de todos sus bloques de datos.Al hiting el primer archivo que contiene los bloques dañados, esto
find
hará que el kernel para iniciar sesiónread error
en/var/log/system.log
, y tampoco se ralentizará o llevar el sistema a un paro total. Esto dependerá principalmente de la capacidad del disco duro para reubicar los bloques defectuosos encontrados en su grupo interno dedicado a esta tarea de reparación habitual. Este archivo que contiene bloques defectuosos será el apellido impreso porfind
.¡Escriba este nombre de archivo en una hoja de papel! Digamos que este nombre de archivo es:
En este punto, puede tener la posibilidad de matar
find
rápidamente al presionar ctrl+ C. Si matarlo está fallando, simplemente bloquea tu Mac.Al reiniciar su Mac, verifique directamente el archivo que contiene bloques defectuosos:
Si el comando termina correctamente, el error fue lo suficientemente ligero como para que su disco pueda leer este archivo y reasignar los bloques defectuosos.
En este último caso, debe considerar reemplazar su disco y trabajar desde sus últimas copias de seguridad. Algunos otros archivos también pueden contener bloques defectuosos y pueden haber permanecido sin ser detectados desde hace mucho tiempo, siempre y cuando no los haya leído.
El núcleo no disparará un error de lectura en un bloque que nunca leyó.
fuente
May 10 20:42:15 ICE kernel[0]: disk0s2: I/O error.
ventana emergente en los registros, pero no tengo idea de qué archivo lo activó. Pero luego el comando se ejecuta muy felizmente.dd
no soluciona nada, este propósito del comando es copiar datos y convertirlos lo más rápido posible. El disco aún puede reparar errores leves. Esté atento, el precio de un disco no es nada comparado con su trabajo.Reinicie en modo de usuario único manteniendo presionado el signo Command+ Sdurante el inicio. Cuando vea un mensaje (debe ser similar
root #
o similar), escribafsck -f
y presione Return. Esta es la herramienta de verificación de coherencia del sistema de archivos incorporada de Mac y le permite encontrar y reparar errores con el sistema de archivos de inicio. Ejecute este comando hasta que no vea**The volume [volume name] was modified.**
o la herramienta falle tres veces seguidas.Si la herramienta falla, puede ser indicativo de un problema mayor (pero no podría decirte qué sin ver el resultado de la herramienta). En cualquier caso, asegúrese de haber hecho una copia de seguridad de todo lo que pueda antes de ejecutar cualquier herramienta de disco. Cuando haya terminado, escriba
reboot
en el indicador y presione Intro para reiniciar su computadora (¡lo adivinó!).Para obtener información adicional, puede encontrar las páginas del manual de fsck aquí .
fuente
fsck
&Disk Utility
están verificando la integridad de la estructura del sistema de archivos. Leen los bloques de disco asignados a la estructura del sistema de archivos. No están hechos para verificar la integridad de los bloques de datos. Por lo tanto, pueden ejecutarse en un disco con bloques defectuosos sin generar ningún error de lectura. Si desea verificar su disco, incluso los bloques que pueden estar defectuosos pero que en realidad no se utilizan, simplemente use una herramienta básica comodd if=/dev/disk0 of=/dev/null ibs=1k
y dentro de otra ventana de shelltail -f /var/log/system.log
. Esto es gratis, extremo y no te ocultará ningún error.Recomiendo encarecidamente DiskWarrior para reconstruir catálogos de discos y para escanear en busca de archivos potencialmente dañados .
Durante la reconstrucción del catálogo, también puede informarle si experimenta un retraso debido al mal funcionamiento del disco.
fuente
A partir de la respuesta de Buscar, puedes hacer esto automáticamente usando una línea de comando bastante pesada.
fuente
Como usted dice, ni siquiera está claro si esos archivos están dañados, al menos su Mac no lo cree así.
Cada sistema operativo crea archivos inmóviles que son necesarios para sus operaciones (puntos de restauración, archivos actualmente activos, etc.). Algunos defrags los mostrarán, otros no.
El hecho de que no pueda acceder o moverlos no significa que estén dañados.
Normalmente, los Mac son muy buenos para cuidar de ellos mismos.
El mantenimiento de Apple se realiza mediante: abra la Terminal y escriba:
seguido de Volver, ingrese su contraseña de administrador y OS X se encargará de las cosas por usted.
Busque en la consola los informes sobre aquellos si está interesado.
Mientras está en la consola, busque (busque) cualquier error de E / S que indique que su disco está comenzando a tener problemas, para complementar la Utilidad de Discos y los hallazgos de fsck.
En ocasiones uso una herramienta gratuita llamada OnyX para tareas de mantenimiento adicionales. Está hecho por franceses y como comida es simplemente genial :)
OnyX es una utilidad multifunción para OS X que le permite verificar el disco de inicio y la estructura de sus archivos del sistema, ejecutar tareas diversas de mantenimiento del sistema, configurar algunos parámetros ocultos del Finder, Dock, QuickTime, Safari, Mail, iTunes , ventana de inicio de sesión, Spotlight y muchas de las aplicaciones de Apple, para eliminar cachés, eliminar una cierta cantidad de archivos y carpetas que pueden volverse engorrosos, y más.
Dicho todo esto, no cuestiono su decisión de utilizar el desfragmentador (iDefrag) ya que no lo sé, sino que le ofrezco soluciones alternativas.
fuente
fsck
parece que solo se preocupa por los problemas del sistema de archivos, no bloquea los problemas de accesibilidad. La consola mostró errores solo cuando intenté copiar / leer manualmente los datos de uno de estos archivos rotos, no fue de ayuda encontrarlos.Por irracional que parezca, antes de hacer cualquier cosa, debe duplicar todos sus datos en un buen disco conocido. Si el arranque desde el instalador y la copia de los datos falla, existe una utilidad de línea de comandos llamada 'dd' que puede realizar duplicaciones de bajo nivel y de una manera mucho más intransigente.
para obtener más información sobre dd, incluido el uso y la sintaxis adecuada.
Otra votación para la publicación de Matt, iniciar el modo de usuario único y ejecutar
una y otra vez hasta que fsck deja de informar errores.
Un voto para la publicación de Adam, DiskWarrior es una aplicación fácil de usar pero muy poderosa que informará fallas del disco duro, verificará los archivos individuales en busca de errores y los reparará si es posible, y reconstruirá y optimizará las estructuras de directorios.
Otra posible solución que puede parecer poco razonable, pero a menudo es un último intento de recuperar datos con una gran cantidad de evidencia annacdótica para el éxito, es extraer el disco, protegerlo de la humedad usando un par de capas de bolsas de congelador y colocarlo en su congelador para 30-45 minutos Luego, mientras la unidad está fría, monte la unidad en un puerto USB externo y use otro sistema temporal para intentar nuevamente copiar los datos dañados a otra unidad. En general, esto se usa si hay un problema de hardware y la unidad falla. Si puede duplicar toda la unidad con sus datos intactos, esto es ideal, ya que a menudo una repartición y reformateo le dará a la unidad una nueva vida útil.
fuente
fsck
a la lista de "cosas que piensan que el disco está bien", respondí a la respuesta mencionandofsck
descontar su utilidad.fsck
y Disk Utility realizan la misma función, y es operar en las estructuras del sistema de archivos, no en el nivel de bloque. Intenté ser bastante específico de que este es un problema de bloque, no un problema del sistema de archivos.Para un solo archivo que no se puede leer en su totalidad debido a un error de lectura del disco, puede usar la
dd
utilidad para duplicar el archivo en un volumen externo, sustituyendo los bytes NUL por los bloques que no se pueden leer. Se recomienda duplicar a un volumen diferente (por ejemplo, "Disco USB" en el ejemplo a continuación).Ejemplo:
Al usar bloques de 512 bytes, se recuperará el número máximo de bloques legibles.
La recuperación puede llevar mucho tiempo, ya que el núcleo se bloqueará durante algún tiempo en cada lectura fallida.
fuente