Como corrigir a ordem das tabelas de partição?

2

Eu ia instalar uma distribuição Linux completamente nova (Mageia) e vi isso como uma oportunidade para reorganizar minhas partições. Eu queria todas as minhas partições não-Linux (Windows, restore, etc) no começo e as minhas Linux no final para que eu pudesse criar mais facilmente novas partições Linux se eu quisesse testar mais algumas distribuições.

Eu usei o GParted para excluir as partições existentes do Linux (fiz backup dos dados que queria preservar) e movi as restantes para a frente. Mais tarde criaria as partições Linux no instalador Mageia.

Demorou algum tempo, mas no final o GParted terminou sem problemas. A Mageia foi instalada sem problemas também.

Ao inicializar no Mageia, tive algum problema (não relacionado?) com a placa de vídeo ATI Radeon (ainda não resolvida) que me deixou apenas com o console e, ao reinicializar, vi Error: Can't have overlapping partitions zipar.

Não há problema, pensei, vou inicializar o GParted novamente e consertá-lo. Infelizmente, GParted mostra o disco inteiro como não alocado. OK, de volta ao Linux. Começando parted da linha de comando me dá

[root@localhost ~]# parted
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Error: Can't have overlapping partitions.

fdisk deveria me dar mais informações e foi o seguinte:

[root@localhost ~]# fdisk -l -u /dev/sda

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2bd2c32a

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS
/dev/sda2          208845  1953520064   976655610    5  Extended
/dev/sda3       950740992  1013655551    31457280    7  HPFS/NTFS
/dev/sda4      1013655552  1015754751     1049600   12  Compaq diagnostics
/dev/sda5          208896   409808895   204800000    7  HPFS/NTFS
/dev/sda6       409810944   950740991   270465024    7  HPFS/NTFS
/dev/sda7      1015757883  1034184374     9213246   82  Linux swap / Solaris
/dev/sda8      1034184438  1953520064   459667813+  83  Linux

Se eu classificar por partição, parece que /dev/sda5 e /dev/sda6 devem ser chamados de /dev/sda3 e /dev/sda4 e vice-versa.

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS
/dev/sda2          208845  1953520064   976655610    5  Extended
/dev/sda5          208896   409808895   204800000    7  HPFS/NTFS
/dev/sda6       409810944   950740991   270465024    7  HPFS/NTFS
/dev/sda3       950740992  1013655551    31457280    7  HPFS/NTFS
/dev/sda4      1013655552  1015754751     1049600   12  Compaq diagnostics
/dev/sda7      1015757883  1034184374     9213246   82  Linux swap / Solaris
/dev/sda8      1034184438  1953520064   459667813+  83  Linux

Do googling, descobri que testdisk pode corrigir isso.

  1. Como uso o testdisk ? A interface é bastante confusa.
  2. Posso rodá-lo no Linux / Windows ou devo inicializar uma versão ao vivo?

Agradecemos antecipadamente

Nick

Eu segui as instruções na resposta abaixo, mas não funciona.

Estas partições que tenho de recriar:

/dev/sda3       950740992  1013655551    31457280    7  HPFS/NTFS
/dev/sda4      1013655552  1015754751     1049600   12  Compaq diagnostics

Isso é o que acontece:

[root@localhost ~]# fdisk /dev/sda

Command (m for help): d
Partition number (1-8): 3

Command (m for help): d
Partition number (1-8): 4

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First sector (950743040-1953520064, default 950743040): 950740992
Value out of range.
First sector (950743040-1953520064, default 950743040):

A primeira partição precisa começar em 95074 0992 , mas a nova partição só pode começar em 95074 3040 .

Como procedo?

    
por Koohoolinn 22.01.2012 / 12:38

3 respostas

2

O problema da partição sobreposta surge em parte devido às esquisitices do particionamento de PC.

A tabela de partições tem espaço para exatamente 4 entradas de "partição primária". Se você precisa ter mais de 4 partições, existe um mecanismo chamado partições "estendidas" - ele cria uma partição grande (na sua partição # 2) que por sua vez possui uma tabela própria de sub-partições, permitindo entradas adicionais chamadas partições "lógicas".

O que você fez foi criar uma partição estendida que vai do setor 208845 ao 1953520064, mas também partições primárias adicionais 3 e 4 sobrepondo o espaço em disco reservado para a partição "estendida".

A maneira mais fácil de resolver problemas seria a seguinte:

  • exclua as partições 3 e 4 usando o fdisk do Linux
  • recriá-los (novamente usando o fdisk) como partições lógicas dentro da partição estendida usando os mesmos valores de início / fim do setor como antes

Se você quiser que a ordem de partição lógica reflita o local "físico" no disco, fdisk também pode ajudar. Basta pressionar "x" para ativar a funcionalidade estendida e usar a função f ix ordem de partição . Talvez seja necessário ajustar seu fstab s para sistemas Linux depois disso - o Windows tem identificação de partição baseada em GUID e não deve se preocupar com o pedido.

    
por 22.01.2012 / 14:46
1

Esteja avisado: tentei a opção de correção avançada no fdisk e reiniciei o sistema. Isto teve efeitos desastrosos em que meu / dev / sda8 se tornou / dev / sda5 no meu caso e o / boot / grub não muda como resultado.

Portanto, a solução óbvia para esse problema é evitar:

$ fdisk /dev/sda
x
f
w
$ update-grub
$ grub-install

mas primeiro certifique-se de ter os comandos do grub (acima) instalados, já que ele parece estar obsoleto em alguns sistemas.

    
por 07.04.2015 / 17:38
1

A melhor solução que encontrei para corrigir a ordem de partição:

Enter into the disk partition place: 
fdisk /dev/sda

Command (m for help):   m  
Command action
  ...
   l   list known partition types
   m   print this menu
   p   print the partition table
   q   quit without saving changes
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help):   x

Expert command (m for help):   m
Command action
...
   f   fix partition order
   m   print this menu
   p   print the partition table
   q   quit without saving changes
   r   return to main menu
   v   verify the partition table
   w   write table to disk and exit

Expert command (m for help):   f
Done.

Expert command (m for help):   w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

Feito!

    
por 31.12.2017 / 21:48