Como consertar partições sobrepostas na tabela MBR?

1

Meu Ubuntu instalado no PC está preso na tela de inicialização. Então, tentei instalar novamente, mas a tabela de partições é mostrada vazia no assistente de instalação. Eu aprendi que minhas partições se sobrepunham.

Eu encontrei este link para corrigir o problema link . Mas isso não faz sentido para a saída do fdisk.

$ sudo fdisk -l -u /dev/sda
Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488397168 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: 0x49fec944

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *      616448   257441624   128412588+   7  HPFS/NTFS/exFAT
/dev/sda2       452753408   484210687    15728640    7  HPFS/NTFS/exFAT
/dev/sda3       484210688   488394751     2092032    c  W95 FAT32 (LBA)
/dev/sda4       257433598   452753407    97659905    5  Extended
/dev/sda5       257433600   452753407    97659904   83  Linux
Partition table entries are not in disk order

Você poderia me ajudar?

    
por user260538 21.03.2014 / 10:47

4 respostas

1

Corrigindo a tabela de partições com sfdisk :

  1. Inicialize com o disco do Ubuntu ao vivo;

  2. Confirme o problema no seu dispositivo de disco, aqui /dev/sda com parted , por exemplo,

    sudo parted /dev/sda unit s print
    

    que deve mostrar:

    Error: Can't have overlapping partitions.
    
  3. Detalhes da partição podem ser verificados com:

    sudo fdisk -l -u /dev/sda
    

    qual, para você, de acordo com o seu post é:

    Disk /dev/sda: 250.1 GB, 250059350016 bytes
    255 heads, 63 sectors/track, 30401 cylinders, total 488397168 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: 0x49fec944
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *      616448   257441624   128412588+   7  HPFS/NTFS/exFAT
    /dev/sda2       452753408   484210687    15728640    7  HPFS/NTFS/exFAT
    /dev/sda3       484210688   488394751     2092032    c  W95 FAT32 (LBA)
    /dev/sda4       257433598   452753407    97659905    5  Extended
    /dev/sda5       257433600   452753407    97659904   83  Linux
    
  4. Verificando as sobreposições: Você pode ver que o final da partição primária /dev/sda1 se sobrepõe ao início da partição estendida /dev/sda4 .

    sda1 final = 257441624

    sda4 iniciar = 257433598

  5. Como sugerido na documentação que - "Nos casos em que não sei se o setor inicial ou final é o problema, assumimos que o setor inicial de cada partição está correto, e que o setor final pode estar com erro ", assumimos que o setor inicial da partição estendida sda4 está correto. Assim, estaremos olhando para mudar o setor final da partição primária sda1 .

    Cálculos:

    sda1 newEnd = sda4 iniciar - 1 = 257433598 - 1 = 257433597

    sda1 newSize = sda1 newEnd - sda1 iniciar + 1 = 257433597 - 616448 + 1 = 256817150

  6. Descarregando uma cópia da tabela de partições em um arquivo usando o comando sfdisk :

    sudo sfdisk -d /dev/sda deve descarregar os detalhes da tabela de partições. Isso pode ser despejado em um arquivo, que após as correções necessárias serem feitas, pode ser retornado para sfdisk . [ Para OP: Edite sua pergunta e inclua a saída de sudo sfdisk -d /dev/sda ]

    Descarregar uma cópia da tabela de partições com:

    sudo sfdisk -d /dev/sda > sda-backup.txt
    

    que para você seria algo como isto:

    # partition table of /dev/sda
    unit: sectors
    
    /dev/sda1 : start=   616448, size=256825177, Id= 7, bootable
    /dev/sda2 : start=452753408, size= 31457279, Id= 7
    /dev/sda3 : start=484210688, size=  4184064, Id= c
    /dev/sda4 : start=257433598, size=195319810, Id= 5
    /dev/sda5 : start=257433600, size=195319808, Id=83
    
  7. Abra o arquivo com privilégio de root, criado na etapa anterior, usando o editor de texto de sua escolha. No exemplo, usarei nano .

    sudo nano sda-backup.txt
    

    ( sda-backup.txt assumindo que o arquivo está no diretório atual, senão repale-o com o caminho absoluto do arquivo.)

    Altere o tamanho antigo de sda1 ( 256825177 ) para o tamanho corrigido ( 256817150 ) para que o novo dump da tabela de partição seja parecido com:

    # partition table of /dev/sda
    unit: sectors
    
    /dev/sda1 : start=   616448, size=256817150, Id= 7, bootable
    /dev/sda2 : start=452753408, size= 31457279, Id= 7
    /dev/sda3 : start=484210688, size=  4184064, Id= c
    /dev/sda4 : start=257433598, size=195319810, Id= 5
    /dev/sda5 : start=257433600, size=195319808, Id=83
    

    Salve o arquivo ( Ctrl + O para nano ) e feche o editor ( Ctrl + X para nano ).

  8. Atualizando os detalhes da partição corrigida para a tabela de partição usando o comando sfdisk :

    sudo sfdisk /dev/sda < sda-backup.txt
    
  9. Confirme se o problema foi resolvido executando parted no seu dispositivo de disco:

    sudo parted /dev/sda unit s print
    
  10. Se a etapa 9 confirmar que a tabela de partições é fixa, você poderá usar o GParted ou outros editores de partições com o dispositivo.

A documentação do GParted também sugere um método alternativo, usando testdisk para escanear o dispositivo de disco para reconstruir a tabela de partições. O aplicativo testdisk está incluído no GParted Live . Então, se você não estiver confortável com a linha de comando, pode tentar a alternativa.

fonte

    
por precise 22.03.2014 / 05:16
1

A sugestão de Rusty deve funcionar, mas é um pouco intimidante. A mesma coisa pode ser feita com fdisk um pouco mais simples:

  1. Abra fdisk no disco, digitando sudo fdisk /dev/sda .
  2. Verifique se você está trabalhando no disco certo digitando p para ver a tabela de partições e verifique se ela mostra as mesmas partições que você publicou.
  3. Digite d e, quando solicitado por um número de partição, digite 1 .
  4. Digite n para criar uma nova partição. Quando solicitado, insira p para o tipo de partição, 1 para o número da partição (na verdade, acho que fdisk não solicitará esse detalhe), 616448 para o primeiro setor e 257433597 ( o ponto inicial da partição estendida menos 1) para o último setor. (Esse valor do último setor pode ser o padrão, caso em que você pode simplesmente pressionar Enter.)
  5. Digite p para verificar se as partições estão corretas. Eles devem ser parecidos com o que você tem agora, exceto que o ponto final de /dev/sda1 deve ser um setor antes do início de /dev/sda4 .
  6. Digite w para salvar suas alterações e sair.

Se você seguir meu procedimento ou enferrujado, esteja ciente de que há uma chance de que o sistema de arquivos dentro de /dev/sda1 pense que pode usar além do setor 257,433,597. Nesse caso, reparar o disco dessa maneira pode causar problemas nessa partição. Não há realmente nenhuma maneira de contornar este problema, e avoding-lo não reparando seu problema atual corre o risco de danificar sua tabela de partição de uma forma que fará com que /dev/sda5 desapareça ou seu conteúdo seja danificado, então consertar o problema está definitivamente em ordem. No entanto, para reduzir o risco de danos a /dev/sda1 , recomendo que você execute CHKDSK no Windows (ou use os front-ends de GUI) para verificar a integridade de /dev/sda1 . Não tenho certeza, mas espero que CHKDSK detecte uma partição de contêiner muito pequena. Você pode precisar redimensionar o sistema de arquivos para corrigir o problema se a partição for muito pequena para o sistema de arquivos - mas faça isso após redimensionando a partição para minimizar o risco de danificar /dev/sda5 . Tudo isso é basicamente preventivo; Há uma boa chance de que o sistema de arquivos em /dev/sda1 não seja dimensionado até o final de /dev/sda1 . Nesse caso, redimensionar a partição da maneira que eu e o rusty sugerir não causará problemas. (Nós dois estamos dizendo para você fazer a mesma coisa; nós apenas diferimos nas ferramentas usadas para fazer o trabalho.)

    
por Rod Smith 22.03.2014 / 14:15
0

Faça o download de uma versão atualmente suportada (12.04 ou 13.10), inicialize-a e faça backup de todos os dados que você deseja salvar da instalação atual. Em seguida, use fdisk para excluir as partições 5 e 4 e, em seguida, reinstale.

    
por psusi 21.03.2014 / 15:23
0

Ao redimensionar / mover no GParted, há uma opção adicional "Alinhar para:" e lista três opções:

  • MiB
  • Cilindro / escolha este e tente novamente - funcionou para mim
  • Nenhum

Encontrei aqui quando tive o mesmo problema. link

    
por gygoole 07.05.2015 / 19:43