Como corrigir manualmente uma tabela de partição?

10

Recentemente, tive problemas com a tabela MBR / partição no meu laptop. Eu consegui reconstruir a tabela de partição usando o testdisk e instalar o GRUB para inicializá-lo corretamente novamente (estou usando uma inicialização dupla no Windows 7). No entanto, não consigo mais executar o gparted corretamente, pois recebo o erro Can't have a partition outside the disk!.

fdisk -l saída é assim:

Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x188f12a9

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         154     1228800    7  HPFS/NTFS/exFAT
/dev/sda2             154       13446   106775171    7  HPFS/NTFS/exFAT
/dev/sda3           13447       28745   122880000   83  Linux
/dev/sda4           28745       30402    13317664+   f  W95 Ext'd (LBA)
/dev/sda5           28745       29127     3069944   82  Linux swap / Solaris
/dev/sda6           29127       30402    10240000    7  HPFS/NTFS/exFAT

Então o disco tem 30401 cylinders, mas sda6termina em cylinder 30402; presumivelmente é aí que está o problema.

Quando executo o testdisk, a 6ª partição termina em cylinder 30401, mas gravá-la na tabela de partições não faz diferença.

Existe uma maneira fácil de corrigir isso?

Eu li em outro lugar que eu poderia corrigir isso editando manualmente a tabela de partição, mas gostaria de instruções realmente específicas, pois não sei muito sobre essa área!

jwaddell
fonte
1
Você é capaz de correr gparted /dev/sda6? Você pode executar o editor de partições usando um Live CD? Caso contrário, o manual pode ser o caminho a percorrer ...
Rasman
O mesmo acontece ao usar um Live CD. Vou tentar gparted /dev/sda6hoje à noite.
jwaddell

Respostas:

11

Use o fdisk. Coloque-o no modo de setor com o ucomando, ppara imprimir a tabela, dexcluir a partição e nrecriá-la. Quando você o recriar, use o mesmo setor inicial, mas um setor final que realmente caiba no disco. Quando terminar e tiver verificado duas pvezes ( novamente), salve e saia com w.

psusi
fonte
1
Acabou sendo a partição estendida que foi o problema, mas fdiskfuncionou bem para recriá-la e as partições lógicas dentro dela. gpartedagora abre corretamente.
jwaddell
Isso não faria com que os dados fossem perdidos? Um aviso, talvez ...
ADTC
@ADTC, não; o ponto principal é recuperar dados.
Psusi 12/04
1
@ADTC, o novo não ficará em branco porque excluir e recriar uma partição não toca nos dados da partição; somente define os limites na tabela de partição. Ao excluir e recriar a partição com o mesmo início, mas com um final diferente, você efetivamente corrige o tamanho da partição.
Psusi
1
Sim, é importante entender o que é uma partição - são apenas alguns dados no disco rígido que dizem 'comece aqui, termine aqui, chame-o de número 4 ..'. A tabela de partição é apenas um pouco de dados contendo todos esses pequenos mapeamentos. Os dados ainda estão lá, você só precisa informar ao sistema operacional onde estão os dados.
John Hunt
1

Baixe e instale o Boot Repair , uma ferramenta de recuperação automatizada que geralmente resolve esse tipo de problema.

Julien Chau
fonte