Limpié mi tabla de particiones NTFS (Windows) usando gparted haciendo clic en "Dispositivo->Crear tabla de particiones... y luego aplicar", ¿hay alguna manera de recuperar mi partición NTFS?
Intenté usar este comando gpart /dev/sda
y obtengo el siguiente resultado:
Begin scan...
End scan.
Checking partitions...
Ok.
Guessed primary partition table:
Primary partition(1)
type: 000(0x00)(unused)
size: 0mb #s(0) s(0-0)
chs: (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r
Primary partition(2)
type: 000(0x00)(unused)
size: 0mb #s(0) s(0-0)
chs: (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r
Primary partition(3)
type: 000(0x00)(unused)
size: 0mb #s(0) s(0-0)
chs: (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r
Primary partition(4)
type: 000(0x00)(unused)
size: 0mb #s(0) s(0-0)
chs: (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r
¿Qué significa esta salida? ¿Hay alguna manera de recuperarme?
Respuesta1
Existe la posibilidad de recuperar la tabla de particiones, pero requiere que se cumplan 2 condiciones:
- No has reiniciado tu máquina.
- La unidad estaba en uso en el momento en que se cambió la mesa.
Cómo funciona esto es que el kernel mantiene el diseño de la partición en la memoria. Si una partición está en uso, necesita saber dónde comienza, por lo que se negará a recargar la nueva tabla hasta que ya no esté en uso.
Como hacer esto:
Ir a /sys/block/sda
. Allí dentro verá un directorio para cada partición ( sda1
,, sda2
etc.). Dentro de cada uno de ellos hay un archivo llamado start
y size
(so /sys/block/sda/sda1/start
). Si recrea su tabla de particiones utilizando exactamente estas mismas ubicaciones y tamaños de inicio, estará bien.
Tenga en cuenta que no mantiene el tipo de partición. A Linux no le importa esta información. Entonces, después de recrear, deberá recordar en qué tipo de partición se configuró (NTFS o lo que sea).
Ejemplo
Disco original:
# fdisk -l /dev/sdc Disco /dev/sdc: 8006 MB, 8006926336 bytes, 15638528 sectores Unidades = sectores de 1 * 512 = 512 bytes Tamaño del sector (lógico/físico): 512 bytes / 512 bytes Tamaño de E/S (mínimo/óptimo): 512 bytes/512 bytes Identificador de disco: 0x000ce29c Dispositivo Arranque Inicio Bloques finales Sistema de identificación /dev/sdc1 2048 2099199 1048576 83 Linux /dev/sdc2 2099200 15638527 6769664 83 Linux
# montaje | grep COSUDE /dev/sdc2 en /mnt/tmp escriba xfs (rw)
# gato /mnt/tmp/mundo Hola
Limpiar la tabla de particiones
# fdisk /dev/sdc Bienvenido a fdisk (util-linux 2.22.2). Los cambios permanecerán sólo en la memoria hasta que usted decida escribirlos. Tenga cuidado antes de utilizar el comando de escritura. Comando (m para ayuda): d Número de partición (1-4): 1 Se elimina la partición 1 Comando (m para ayuda): d Partición seleccionada 2 Se elimina la partición 2 Comando (m para ayuda): p Disco /dev/sdc: 8006 MB, 8006926336 bytes, 15638528 sectores Unidades = sectores de 1 * 512 = 512 bytes Tamaño del sector (lógico/físico): 512 bytes / 512 bytes Tamaño de E/S (mínimo/óptimo): 512 bytes/512 bytes Identificador de disco: 0x000ce29c Dispositivo Arranque Inicio Bloques finales Sistema de identificación Comando (m para ayuda): w La tabla de particiones se ha alterado! Llamar a ioctl() para volver a leer la tabla de particiones. ADVERTENCIA: Error al volver a leer la tabla de particiones con el error 16: Dispositivo o recurso ocupado. El kernel todavía usa la tabla anterior. La nueva tabla se utilizará en el próximo reinicio o después de ejecutar partprobe(8) o kpartx(8) Sincronización de discos.
Tenga en cuenta que todavía está montado y accesible:
# gato /mnt/tmp/mundo Hola
Obtener las compensaciones
# cd /sys/clase/bloque/sdc # ls alineación_offset dispositivo@eventos_poll_msecs potencia/ro esclavos/ bdi@ descarte_alineación cola rango_ext/ sdc1/ estadística titulares de eventos de capacidad/rango sdc2/subsistema@ dev events_async tamaño extraíble en vuelo uevent # gato sdc1/inicio 2048 # gato sdc1/tamaño 2097152 # gato sdc2/inicio 2099200 # gato sdc2/tamaño 13539328
Restaurar la tabla de particiones
# fdisk /dev/sdc Bienvenido a fdisk (util-linux 2.22.2). Los cambios permanecerán sólo en la memoria hasta que usted decida escribirlos. Tenga cuidado antes de utilizar el comando de escritura. Comando (m para ayuda): n Tipo de partición: p primario (0 primario, 0 extendido, 4 libre) e extendido Seleccionar (p predeterminado): p Número de partición (1-4, predeterminado 1): 1 Primer sector (2048-15638527, predeterminado 2048): 2048 Último sector, +sectores o +tamaño{K,M,G} (2048-15638527, predeterminado 15638527): +2097151 Se establece la partición 1 de tipo Linux y de tamaño 1 GiB Comando (m para ayuda): n Tipo de partición: p primario (1 primario, 0 extendido, 3 libres) e extendido Seleccionar (p predeterminado): p Número de partición (1-4, predeterminado 2): 2 Primer sector (2099200-15638527, predeterminado 2099200): 2099200 Último sector, +sectores o +tamaño{K,M,G} (2099200-15638527, predeterminado 15638527): +13539327 Se establece la partición 2 de tipo Linux y de tamaño 6,5 GiB Comando (m para ayuda): p Disco /dev/sdc: 8006 MB, 8006926336 bytes, 15638528 sectores Unidades = sectores de 1 * 512 = 512 bytes Tamaño del sector (lógico/físico): 512 bytes / 512 bytes Tamaño de E/S (mínimo/óptimo): 512 bytes/512 bytes Identificador de disco: 0x000ce29c Dispositivo Arranque Inicio Bloques finales Sistema de identificación /dev/sdc1 2048 2099199 1048576 83 Linux /dev/sdc2 2099200 15638527 6769664 83 Linux Comando (m para ayuda): w La tabla de particiones se ha alterado! Llamar a ioctl() para volver a leer la tabla de particiones. ADVERTENCIA: Error al volver a leer la tabla de particiones con el error 16: Dispositivo o recurso ocupado. El kernel todavía usa la tabla anterior. La nueva tabla se utilizará en el próximo reinicio o después de ejecutar partprobe(8) o kpartx(8) Sincronización de discos.
!!Tenga en cuenta que al especificar el último sector, utilizamos el tamaño - 1.!!
Verificación
Desmontemos la unidad, ejecutemos partprobe
para indicarle al kernel que recoja la nueva tabla, luego volvamos a montar y verifiquemos que todavía accedemos a nuestro archivo.
# desmontar /mnt/tmp/ # partprobe /dev/sdc # montar /dev/sdc2 /mnt/tmp # gato /mnt/tmp/mundo Hola
Respuesta2
Podrías intentar usardisco de pruebapara recuperar la tabla de particiones. Testdisk leerá la superficie del disco e intentará determinar dónde comienzan y terminan las particiones.
Respuesta3
parted
tiene un comando de rescate que puede rastrear el inicio y la longitud del sistema de archivos si sabe aproximadamente dónde estaba.
Respuesta4
Si conoce las dimensiones del disco NTFS, "es posible" que pueda restablecerlas usando fdisk o parted, pero creo que no tiene suerte.