¿Qué software libre o de código abierto puedo usar con el hardware de Mac para verificar la integridad de cada bloque de un disco donde se usa Core Storage?

5

La verificación debe ser no destructiva.

Para hardware de Mac

Hay una posible respuesta en Superusuario, pero es anterior a Lion, por lo que:

  • No sé si badblocks se ejecutan desde un CD en vivo donde es aplicable Apple_CoreStorage es uno de los tipos en el dispositivo que se debe verificar.

Si no se aplica desde un CD en vivo, una respuesta a esta pregunta podría incluir:

  • libfvde con una instalación de cualquier sistema operativo compatible que pueda ejecutar bad blocks .

Menos exóticamente, ofreceré dos respuestas que no involucran a libfvde .

Fondo

Aunque menciono los discos problemáticos a continuación, no busco ayuda con esos discos.

Esta pregunta busca respuestas que pueden generalizarse a cualquier persona que desee revisar un disco.

Sin hardware de Mac

Normalmente uso Ultimate Boot CD (UBCD) 5.1.1 para ejecutar HDAT2 4.5.3.

Con hardware de Mac

UBCD

Bueno para algunos propósitos, pero no para lo que quiero de HDAT2.

Si conoces una forma de hacer que HDAT2 funcione con, digamos, una MacBookPro5,2: eso será una gran respuesta.

ZEVO

Dar discos a ZFS en lugar de HFS Plus simplifica el descubrimiento de errores en el espacio que se utiliza, sin prestar atención al espacio no utilizado. En al menos dos de mis discos, un scrub después de una copia de seguridad de Time Machine para ZFS ha revelado lo que OS X solo no puede: errores que afectan a las bandas dentro de la imagen de disco de paquete disperso utilizada por Time Machine.

S.M.A.R.T.

OS X SAT SMART Driver es útil, pero no aplicable a todos los tipos de unidades externas .

Para una unidad externa donde S.M.A.R.T. El estado se verifica, de acuerdo con la Utilidad de Discos, scrub encuentra errores ... y así sucesivamente.

Para esta pregunta

  • Prefiera una verificación no destructiva de todo el espacio (todos los bloques de un disco)
  • sin un cambio de sistema de archivos.

Relacionado

En el foro de soporte de ZEVO:

pregunta Graham Perrin 27.07.2012 - 11:23

4 respuestas

0
  

... Si conoces una forma de hacer que HDAT2 funcione con, digamos, una MacBookPro5,2: eso será una gran respuesta. ...

Recientemente encontré que HDAT2 5.0 - en la versión más reciente (5.3.0) de Ultimate Boot CD - se ejecuta efectivamente con mi MacBookPro5,2 2009. Entonces:

  • para mí, marcaré esta respuesta como aceptada
  • entonces, si a alguien le resulta imposible ejecutar una versión de HDAT con su propio hardware, podemos (re) considerar respuestas alternativas.
respondido por el Graham Perrin 13.07.2014 - 21:18
1

Instala badblocks en Mac OS X (Leopard o menos)

Sistema de archivos Mac OS X Ext2 incluye un badblocks que se puede usar con Mac OS X.

Crédito: doctormac: Cómo para comprobar si hay bloques defectuosos en un mac con Mac OS X? (2011) referencia a ¿Bloques defectuosos? badblocks! | Terminal (2007)

    
respondido por el Graham Perrin 27.07.2012 - 11:23
1

Instalar badblocks en OS X (Lion o superior)

Para mí, la instalación de Ext2 Filesystem 1.4d4 (2006-12-03) falla en el Build 12A269 de OS X 10.8.

Si la instalación es posible en 10.7.x, no lo sé.

badblocks no está actualmente dentro de MacPorts.

En 2009 alguien mencionado usando portutil para instalar badblocks pero no sé si o cómo hacerlo con Mountain Lion.

badblocks instalado

Más tarde, con Pacifist, encontré badblocks instalado. (Ya sea el resultado de una instalación exitosa desde hace mucho tiempo del sistema de archivos Ext2, o un resultado parcial de la instalación supuestamente fallida de hoy).

Lo usé para verificar todos los bloques de una porción que actualmente está disponible, luego la copié en esa porción:

sh-3.2$ gjp22$ diskutil list disk0
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *750.2 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS swap                    32.0 GB    disk0s2
   3:              Apple_Journal                         536.9 MB   disk0s3
   4:                  Apple_HFS spare                   671.1 MB   disk0s4
   5:          Apple_CoreStorage                         99.5 GB    disk0s5
   6:                 Apple_Boot Boot OS X               650.0 MB   disk0s6
   7:          Apple_CoreStorage                         616.3 GB   disk0s7
   8:                 Apple_Boot Boot OS X               134.2 MB   disk0s8
sh-3.2$ gjp22$ sudo /usr/local/sbin/badblocks -v /dev/disk0s4
/usr/local/sbin/badblocks: Resource busy while trying to determine device size
sh-3.2$ gjp22$ diskutil unmount /Volumes/spare
Volume spare on disk0s4 unmounted
sh-3.2$ gjp22$ sudo /usr/local/sbin/badblocks -v /dev/disk0s4
Checking blocks 0 to 655360
Checking for bad blocks (read-only test): done                                
Pass completed, 0 bad blocks found.
sh-3.2$ gjp22$ diskutil mount /dev/disk0s4
Volume spare on /dev/disk0s4 mounted
sh-3.2$ gjp22$ sudo ditto /usr/local/sbin/badblocks /Volumes/spare/sbin/badblocks

badblocks solo

Intenté usar la copia de badblocks con Recovery OS. No funcionó:

-bash-3.2# sw_vers
ProductName:    Mac OS X
ProductVersion: 10.8
BuildVersion:   12A269
-bash-3.2# mount | grep "on / "
/dev/disk1s2 on / (hfs, local, read-only)
-bash-3.2# diskutil list disk1
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     Apple_partition_scheme                        *1.3 GB     disk1
   1:        Apple_partition_map                         30.7 KB    disk1s1
   2:                  Apple_HFS Mac OS X Base System    1.3 GB     disk1s2
-bash-3.2# diskutil unmount /Volumes/swap 
Volume swap on disk0s2 unmounted
-bash-3.2# /Volumes/spare/sbin/badblocks -v /dev/disk0s2
Illegal instruction: 4
-bash-3.2# 

Conclusión provisional

Una instalación completa de OS X en un disco físico separado, seguida de una instalación parcialmente exitosa del sistema de archivos Ext2, para incluir al menos badblocks , debería permitir una verificación completa de cualquier otro disco.

    
respondido por el Graham Perrin 27.07.2012 - 11:25
1

Inicia Ubuntu y ejecuta badblocks

Use un disco de Ubuntu que funcione con su Mac, luego ejecute badblocks con las opciones apropiadas.

Página de manual de Ubuntu: badblocks - busca un dispositivo en busca de bloques defectuosos

DVD compatible con una MacBookPro5,2

  • Ubuntu 8.10

Los DVD no son compatibles con una MacBookPro5,2

  • Ubuntu 12.04 desktop i386
  • Xubuntu 12.04.1 desktop i386
  • Ubuntu 12.10 desktop i386

Ejemplo A

Adaptado de una publicación orientada a Mac en el foro de soporte de ZEVO :

  

Ejecuté badblocks en una PC dedicada con Ubuntu Live, con el disco conectado   a través de SATA 6.

     

Abrí cuatro ventanas de Terminal y comencé:

     
  • dos instancias con la opción -n
  •   
  • dos instancias con opciones -wsv
  •   

- a intervalos de diez minutos (la segunda instancia comenzó diez minutos)   después de la primera, y así sucesivamente).

     

Después de setenta horas, fue alrededor del 75% -n y 50% -w.

     

Ayer decidí detener badblocks y revisar S.M.A.R.T. valores   - una comparación con los resultados de una primera ejecución de smartctl (después de   unboxing este nuevo disco). Nada había cambiado.

Eso no es hardware de Mac, pero como algunos de Mac pueden usar SATA 6, me gusta este ejemplo; un enfoque placentero de invocar a múltiples ejecuciones concurrentes de badblocks contra un solo disco.

Ejemplo B

Comenzó desde Ubuntu 8.10, una prueba parcial de un Seagate Momentus ® XT ST750LX003-1AC154 híbrido de estado sólido interno de una MacBookPro5,2

ubuntu@ubuntu:/dev$ man badblocks
ubuntu@ubuntu:/dev$ badblocks -n -s -v /dev/sda
badblocks: Permission denied while trying to determine device size
ubuntu@ubuntu:/dev$ sudo badblocks -n -s -v /dev/sda
Checking for bad blocks in non-destructive read-write mode
From block 0 to 732574583
Checking for bad blocks (non-destructive read-write test)
Testing with random pattern: ^C1.30% done, 9:34 elapsed
Interrupt caught, cleaning up
ubuntu@ubuntu:/dev$ sudo badblocks -n -s -v /dev/sda
Checking for bad blocks in non-destructive read-write mode
From block 0 to 732574583
Checking for bad blocks (non-destructive read-write test)
Testing with random pattern:   0.23% done, 1:47 elapsed
                               0.92% done, 7:09 elapsed
                               1.00% done, 7:46 elapsed
                              25.13% done, 3:49:32 elapsed
                              25.13% done, 3:49:33 elapsed
                              25.13% done, 3:49:34 elapsed
                              25.13% done, 3:49:35 elapsed

Aborté la ejecución para iniciar OS X.

Eso fue alrededor de 7.75 minutos para el uno por ciento, por lo que para los badblocks con esas opciones para probar ese número de bloques (732574583) puede tomar alrededor de 12.9 horas.

Vistas generales del disco utilizado para esa prueba

macbookpro08-centrim:~ gjp22$ diskutil list disk0
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *750.2 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS swap                    32.0 GB    disk0s2
   3: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF               536.9 MB   disk0s3
   4:                  Apple_HFS spare                   671.1 MB   disk0s4
   5:          Apple_CoreStorage                         99.5 GB    disk0s5
   6:                 Apple_Boot Boot OS X               650.0 MB   disk0s6
   7:          Apple_CoreStorage                         616.3 GB   disk0s7
   8:                 Apple_Boot Boot OS X               134.2 MB   disk0s8
macbookpro08-centrim:~ gjp22$ sudo gpt -r show -l /dev/disk0
Password:
       start        size  index  contents
           0           1         PMBR
           1           1         Pri GPT header
           2          32         Pri GPT table
          34           6         
          40      409600      1  GPT part - "EFI System Partition"
      409640    62500000      2  GPT part - "Apple_HFS_Untitled_2"
    62909640      262144         
    63171784     1048576      3  GPT part - "journal"
    64220360     1310720      4  GPT part - "spare"
    65531080   194305104      5  GPT part - "OS"
   259836184     1269544      6  GPT part - "Boot OS X"
   261105728  1203781256      7  GPT part - "gjp22-cs"
  1464886984      262144      8  GPT part - "Booter"
  1465149128           7         
  1465149135          32         Sec GPT table
  1465149167           1         Sec GPT header

Si entiendo correctamente: alrededor de 1,465,149,169 bloques. Entonces, ¿por qué podría badblocks determinar que solo se van a probar 732,574,583? Si no está relacionado con SSHD (ver más abajo), esta podría ser una pregunta aparte.

Relacionado

Tecnología híbrida de estado sólido: HDD SSD SSHD | Seagate

En superusuario:

Para una edición simplificada de esta respuesta, me gustaría realizar una prueba similar con un disco duro (no un híbrido) como ejemplo.

    
respondido por el Graham Perrin 24.12.2012 - 02:58

Lea otras preguntas en las etiquetas