Tengo una caja de Ubuntu en un SSD y un HDD secundario ( /dev/sdb
) con algunas particiones NTFS.
Un poco de contexto: ayer la máquina no respondió y tuve que apagarla a la fuerza (cortar la energía). Al reiniciar, Ubuntu pasaría al modo de emergencia. Descubrí que el UUID del disco duro había desaparecido (no apareció en blkid
), por lo que se /etc/fstab
corrompió. Comenté la línea del disco fstab
y logré iniciar Ubuntu.
Ahora estoy intentando montar el disco duro nuevamente. Primero probé Gparted. Este es el resultado de libparted (usado por gparted):
======================
libparted : 3.2
======================
end of file while reading /dev/sdb
The primary GPT table is corrupt, but the backup appears OK, so that will be used.
Curiosamente, sudo blkid
muestra /dev/sdb
que tiene un PTUUID en lugar de UUID:
$ sudo blkid
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/sda1: UUID="e407bc1c-4c2d-4dae-80ce-e6bd96346698" TYPE="ext4" PARTUUID="659e6a1e-01"
/dev/sda5: UUID="f9500440-cddf-41f6-8512-5a30e66fbf3d" TYPE="swap" PARTUUID="659e6a1e-05"
/dev/sda6: UUID="18abc384-a610-4f65-8430-0109548a89ef" TYPE="ext4" PARTUUID="659e6a1e-06"
/dev/sdb: PTUUID="a6e9090d-b5ab-412a-8568-2eee08fa3fa8" PTTYPE="gpt"
Estoy seguro de que las particiones siguen ahí, pero no puedo montarlas. parted
los enumera correctamente:
$ sudo parted
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) select /dev/sdb
Using /dev/sdb
(parted) p
Error: end of file while reading /dev/sdb
Retry/Ignore/Cancel? i
Error: The primary GPT table is corrupt, but the backup appears OK, so that will be used.
OK/Cancel? OK
Model: ATA ST1000LM024 HN-M (scsi)
Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 316MB 315MB EFI system partition boot, esp
2 316MB 945MB 629MB ntfs Basic data partition hidden, diag
3 945MB 1079MB 134MB Microsoft reserved partition msftres
4 1079MB 979GB 978GB ntfs Basic data partition msftdata
5 979GB 1000GB 21,5GB ntfs Basic data partition hidden, diag
(parted) q
Entonces, hay 2 errores ( Error: end of file while reading /dev/sdb
, Error: The primary GPT table is corrupt, but the backup appears OK, so that will be used.
) que probablemente hacen que la partición no se pueda montar. ¿Alguna idea de cómo solucionarlos?
EDITAREsta es la salida de ntfsfix
:
$ sudo ntfsfix /dev/sdb
Mounting volume... NTFS signature is missing.
FAILED
Attempting to correct errors... NTFS signature is missing.
FAILED
Failed to startup volume: Invalid argument
NTFS signature is missing.
Trying the alternate boot sector
Unrecoverable error
Volume is corrupt. You should run chkdsk.
EDITARSalida de gdisk
GPT fdisk (gdisk) version 1.0.1
Caution: invalid main GPT header, but valid backup; regenerating main header
from backup!
Caution! After loading partitions, the CRC doesn't check out!
Warning! Main partition table CRC mismatch! Loaded backup partition table
instead of main partition table!
Warning! One or more CRCs don't match. You should repair the disk!
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: damaged
****************************************************************************
Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk
verification and recovery are STRONGLY recommended.
****************************************************************************
EDITAREste es el comando que ejecuté incorrectamente y que causó el problema:sudo dd if=/dev/zero of=/dev/sdb bs=512 seek=1
Respuesta1
TLDR: pude restaurar el disco (con datos) escribiendo con gdisk
( w
comando).
Como se discutió en la sección de preguntas y comentarios, este es el escenario: accidentalmente destruí el encabezado GPT del disco al emitir un dd
0 con 0 en /dev/sdb
.
yo corrígdisk(8)
en el disco, que informó que el encabezado GPT estaba dañado, pero la copia de seguridad estaba bien y la cargó. En la gdisk
CLI, ejecuté un w
comando (que escribe la información de la tabla de particiones en el disco) y salí. Después de eso, /dev/sdb
Ubuntu lo reconoció y montó instantáneamente, y no fueron necesarios otros cambios.