No se puede ver la partición HDD externa en la Utilidad de Discos

3

Tengo un disco duro externo TB dividido en 2 particiones:

Primera partición: 280 GB
Segunda partición: 1720 GB

Inicialmente, ambas particiones eran NTFS.

Luego, formateé la primera partición a macOS Extended FS, y luego a FAT32, y la segunda partición desapareció. No puedo verlo en Utilidades de disco ni en Paragon NTFS 15.

Intenté revertir la primera partición a NTFS, pero la segunda aún no muestra ... ¿Qué debo hacer?

aquí está el resultado de diskutil list

~ diskutil list
  /dev/disk0 (internal, physical):
     #:                       TYPE NAME                    SIZE       IDENTIFIER
     0:      GUID_partition_scheme                        *250.1 GB   disk0
     1:                        EFI EFI                     209.7 MB   disk0s1
     2:                 Apple_APFS Container disk1         249.8 GB   disk0s2

  /dev/disk1 (synthesized):
     #:                       TYPE NAME                    SIZE       IDENTIFIER
     0:      APFS Container Scheme -                      +249.8 GB   disk1
                                   Physical Store disk0s2
     1:                APFS Volume Macintosh HD            119.9 GB   disk1s1
     2:                APFS Volume Preboot                 20.5 MB    disk1s2
     3:                APFS Volume Recovery                503.9 MB   disk1s3
     4:                APFS Volume VM                      5.4 GB     disk1s4

  /dev/disk2 (external, physical):
     #:                       TYPE NAME                    SIZE       IDENTIFIER
     0:     FDisk_partition_scheme                        *2.0 TB     disk2
     1:               Windows_NTFS HDD1                    228.4 GB   disk2s1

Aquí está el resultado de sudo fdisk /dev/disk2

~ sudo fdisk /dev/disk2
    Disk: /dev/disk2    geometry: 243201/255/63 [3907029167 sectors]
    Signature: 0xAA55
             Starting       Ending
     #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
    ------------------------------------------------------------------------
    *1: 07 1023 254  63 - 1023 254  63 [    206848 -  446126158] HPFS/QNX/AUX
     2: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
     3: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
     4: 00    0   0   0 -    0   0   0 [         0 -          0] unused      

EDITAR:

$ sudo dd if=/dev/disk2 bs=512 skip=446333006 count=150000000 | grep -o -a -b "BOOTMGR"

71010552671:BOOTMGR
71010552692:BOOTMGR
150000000+0 records in
150000000+0 records out
76800000000 bytes transferred in 11355.441546 secs (6763277 bytes/sec)
    
pregunta Juliatzin del Toro 22.12.2017 - 19:27

2 respuestas

2

Solo hay una partición en tu unidad externa. Sospecho que, en lugar de borrar la primera partición, borró toda la unidad. Pero si esto fuera cierto, entonces la nueva partición abarcaría toda la unidad. Entonces, en este punto, sería mejor intentar encontrar la partición que falta.

La función correcta para encontrar el encabezado de una partición NTFS faltante se muestra a continuación. Para usar esta función, primero deberá copiar esta función y luego pegarla como un comando en una ventana de la aplicación Terminal.

findntfs() { sudo bash -c "for i in {$1..$2};do xxd -a -s \$[\$i*1000000] -l 1000000 $3|fgrep -a -b 'NTFS    ';echo -en '\r'\$i:;done";echo done;}

A continuación se muestra un ejemplo de su uso. Tengo una unidad flash formateada NTFS de 4 GB. La salida de sudo fdisk /dev/disk1 se da a continuación.

Disk: /dev/disk1    geometry: 968/128/63 [7811072 sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: 07    1   0   1 -  967  81  18 [      8064 -    7803008] HPFS/QNX/AUX
 2: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused      

Como la unidad flash contiene 7811072 sectores y el tamaño del sector es 512 bytes, el tamaño de la unidad es exactamente 3999268864 bytes, que es el producto de los dos números. Si quisiera buscar una partición NTFS en toda la unidad flash, necesitaría buscar de 0 MB a 3999 MB de datos. A continuación se muestra un ejemplo del uso de findntfs para hacer esto.

Marlin:~ davidanderson$ findntfs 0 3999 /dev/disk1
Password:
3:70:003f0000: eb52 904e 5446 5320 2020 2000 0208 0000  .R.NTFS    .....
3998:1125334:ee5ffe00: eb52 904e 5446 5320 2020 2000 0208 0000  .R.NTFS    .....
3999:done
Marlin:~ davidanderson$ 
  

Nota: mientras esta función se está ejecutando, verá los valores que se están actualizando. Este es el megabyte actual que se está buscando. A partir de estos valores, puede determinar el progreso de la búsqueda.

La información importante a extraer de esta salida son los valores hexadecimales 003f0000 y ee5ffe00 . Estos valores son el desplazamiento en bytes para los primeros y últimos sectores de la partición NTFS.

A continuación se muestra el valor de cómputo de la ubicación del byte del primer sector según el valor que se muestra a partir de la salida de fdisk .

8064 * 512 = 4128768 = 0x3F0000

A continuación se muestra el valor de cálculo de la ubicación del byte del último sector en función del valor que se muestra en la salida de fdisk .

(8064 + 7803008 - 1) * 512 =  3999268352  = 0xEE5FFE00

Ambos valores coinciden con la salida de findntfs .

En su caso, sugeriría buscar el comienzo de su partición faltante en algún lugar alrededor de 270 GB a 290 GB. Para esto, el comando sería como se muestra a continuación.

findntfs 270000 290000 /dev/disk2

Por supuesto, esto puede tomar un tiempo. Si te sientes afortunado, puedes intentar limitar tu búsqueda.

Sugeriría buscar el final de su partición faltante en algún lugar alrededor de 1980398 GB a 2000398 GB. Para esto, el comando sería como se muestra a continuación.

findntfs 1980398 2000398 /dev/disk2

La siguiente función busca en el sector encontrado e imprime el número de sectores ocupados por la partición NTFS candidata. La entrada es el desplazamiento de la partición en bytes y el nombre de la unidad.

ntfssectors() {(n=$(sudo hexdump -e '1/8 "%u"' -s $((0x$1+40)) -n 8 $2); echo $(($n+1)))}

A continuación se muestra un ejemplo donde se utiliza esta función.

  

Nota: se supone que la entrada es hexadecimal.

Marlin:~ davidanderson$ ntfssectors2 003F0000 /dev/disk1
7803008
Marlin:~ davidanderson$ ntfssectors2 ee5ffe00 /dev/disk1
7803008
Marlin:~ davidanderson$ 

La salida de ambas funciones es la misma que la de fdisk .

    
respondido por el David Anderson 22.12.2017 - 20:10
3

La respuesta de David ya explica lo que probablemente le pasó a tu disco. Usted particionó el disco accidentalmente en lugar de borrar solo un volumen.

Según su declaración, su unidad contenía dos particiones anteriormente:

  • Primera partición: 280 GB
  • Segunda partición: 1720 GB

Después de volver a particionar la unidad, solo queda una partición:

  • Primera y única partición: 228.4 GB

Esto probablemente significa que la segunda partición no se vio afectada, solo se eliminó la entrada en el MBR.

Debería poder recuperar la partición simplemente agregando una segunda partición en el MBR.

Para detectar los límites anteriores de la partición perdida, debe buscar cadenas específicas en el disco que determinan el primer y último bloque de un (antiguo) volumen NTFS.

Las cadenas específicas son NTFS o BOOTMGR / bootmgr.

El contenido del bloque depende de su local , por lo que la búsqueda de "BOOTMGR está comprimido" (se encuentra en un sector de arranque de partición NTFS en inglés) no es necesariamente exitoso. Sin embargo, "BOOTMGR" (inglés / alemán) o "bootmgr" (español / francés?) Deberían funcionar. No he probado sistemas Windows no latinos.

Ejemplos

Primer bloque de un volumen NTFS alemán:

ÚltimobloquedeunvolumenNTFSalemán:

Estosepuedehacerdd'ingeldispositivoagrep.

Ejemplo:

$sudoddif=/dev/disk2bs=512skip=2048count=512|grep-o-a-b"BOOTMGR"    
421:BOOTMGR
512+0 records in
512+0 records out
262144 bytes transferred in 0.010566 secs (24810155 bytes/sec)

La explicación del comando:

Copie / dev / disk2 con un tamaño de bloque de 512 Byte a stdout, pero omita los primeros 2048 bloques de disk2 y deténgase después de (otro) 512 bloques, canalícelo a grep, trate la salida como texto, busque "BOOTMGR" "y finalmente muestre el (los) desplazamiento (es) de bytes del patrón coincidente frente a la línea correspondiente correspondiente.

En su caso, el resultado 71010552671:BOOTMGR de sudo dd if=/dev/disk2 bs=512 skip=446333006 count=150000000 | grep -o -a -b "BOOTMGR" significa:

El desplazamiento de bytes es 71010552671 Byte después de el último bloque (bloque 446333006) del volumen HDD1 existente en el disco1. En bloques, es el bloque relativo 138692486 o el bloque absoluto (446333006 + 138692486) = 585025492.

Esto significa dos cosas:

  1. Su partición anterior 1 probablemente tenía un tamaño de ~ 299 GB (= ~ 278 GiB) en lugar de 280 GB
  2. Sus particiones no están alineadas correctamente con los bloques 4k porque ni 446333006 ni 585025492 son divisibles entre 8

El último bloque del volumen NTFS desaparecido puede esperarse en los últimos 10,000 bloques del disco2. El comando apropiado para buscarlo es, a continuación,

sudo dd if=/dev/disk2 bs=512 skip=3907019167 count=10000 | grep -o -a -b "BOOTMGR"

Con el resultado del comando puedes determinar el último bloque de la partición 2 desaparecida.

Con el primer bloque y el último bloque puede agregar la partición perdida con fdisk al MBR.

Para verificar el tamaño, puede extraer el tamaño de la partición en sectores en el sector de arranque de la partición con un desplazamiento de 0x028 y una longitud de campo de 8 bytes y el tamaño del sector con un desplazamiento de 0x0B y una longitud de campo de 2 bytes.

En las capturas de pantalla de ejemplo anteriores, son FF E7 DF E8 00 00 00 00 (= 3906988031 + 1) y 00 02 (= 512 Byte).

La salida diskutil info para el volumen de ejemplo (visible en las capturas de pantalla) es:

...
Disk Size:                2.0 TB (2000377872384 Bytes) (exactly 3906988032 512-Byte-Units)
Device Block Size:        512 Bytes
...
    
respondido por el klanomath 23.12.2017 - 16:50

Lea otras preguntas en las etiquetas