web-dev-qa-db-fra.com

Comment réparer les partitions qui se chevauchent dans la table MBR?

Mon Ubuntu installé sur PC est bloqué à l'écran de démarrage. J'ai donc essayé de l'installer à nouveau, mais la table de partition est vide lors de l'assistant d'installation. J'ai appris que mes partitions se chevauchaient.

J'ai trouvé ce lien pour résoudre le problème http://gparted.org/h2-fix-msdos-pt.php . Mais cela ne semble pas avoir de sens pour ma sortie 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

Pourriez-vous m'aider?

1
user260538

Correction de la table de partition avec sfdisk:

  1. Démarrez avec un disque Ubuntu en direct;

  2. Confirmez le problème sur votre périphérique de disque, ici /dev/sda avec parted par exemple.

    Sudo parted /dev/sda unit s print
    

    qui devrait montrer:

    Error: Can't have overlapping partitions.
    
  3. Les détails de la partition peuvent être vérifiés avec:

    Sudo fdisk -l -u /dev/sda
    

    qui, pour vous, selon votre post est:

    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. Vérification des chevauchements: vous pouvez voir que votre fin de partition principale /dev/sda1 chevauche le début de la partition étendue /dev/sda4.

    sda1fin = 257441624

    sda4début = 257433598

  5. Comme suggéré dans la documentation que - "Dans les cas où nous ne savons pas si le secteur de départ ou de fin est le problème, nous supposons que le secteur de départ de chaque partition est correct , et que le secteur de fin peut être en erreur ", nous supposons que le secteur de départ de la partition étendue sda4 est correct. Nous allons donc chercher à changer le secteur d'extrémité de la partition primaire sda1.

    Calculs:

    sda1nouveauFin = sda4début - 1 = 257433598 - 1 = 257433597

    sda1nouveauSize = sda1nouveauFin - sda1début + 1 = 257433597 - 616448 + 1 = 256817150

  6. Déposer une copie de la table de partition dans un fichier à l’aide de la commande sfdisk:

    Sudo sfdisk -d /dev/sda devrait vider les détails de la table de partition. Cela peut être sauvegardé dans un fichier qui, après les corrections nécessaires, peut être renvoyé à sfdisk. [ À OP: Veuillez modifier votre question et inclure le résultat de Sudo sfdisk -d /dev/sda]

    Dump une copie de la table de partition avec:

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

    qui pour vous ressemblerait à quelque chose comme ça:

    # 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. Ouvrez le fichier avec le privilège root, créé à l'étape précédente, à l'aide de l'éditeur de texte de votre choix. Dans l'exemple, je vais utiliser nano.

    Sudo nano sda-backup.txt
    

    (sda-backup.txt en supposant que le fichier se trouve dans le répertoire en cours, sinon repalcez-le avec le chemin absolu du fichier.)

    Remplacez l'ancienne taille de sda1 (256825177) par la taille corrigée (256817150) afin que le nouveau vidage de la table des partitions ressemble à ceci:

    # 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
    

    Enregistrez le fichier (Ctrl+O pour nano) et fermez l'éditeur (Ctrl+X pour nano).

  8. Envoi des détails de partition corrigés à la table de partition à l'aide de la commande sfdisk:

    Sudo sfdisk /dev/sda < sda-backup.txt
    
  9. Confirmez si le problème est résolu en exécutant parted sur votre périphérique de disque:

    Sudo parted /dev/sda unit s print
    
  10. Si l'étape 9 confirme que la table de partition est fixe, vous pouvez utiliser GParted ou d'autres éditeurs de partition avec le périphérique.


La documentation GParted suggère également une méthode alternative, en utilisant testdisk pour analyser le lecteur de disque afin de reconstruire la table de partition. L'application testdisk est incluse sur GParted Live . Ainsi, si vous n'êtes pas à l'aise avec la méthode de ligne de commande, vous pouvez essayer la solution de rechange.

source

1
precise

La suggestion de Rusty devrait marcher, mais c'est un peu intimidant. La même chose peut être faite avec fdisk un peu plus simplement:

  1. Lancez fdisk sur le disque en tapant Sudo fdisk /dev/sda.
  2. Vérifiez que vous travaillez sur le bon disque en tapant p pour afficher la table de partitions et vérifiez qu'il affiche les mêmes partitions que vous avez publiées.
  3. Tapez d et, lorsque vous êtes invité à entrer un numéro de partition, tapez 1.
  4. Tapez n pour créer une nouvelle partition. Lorsque vous y êtes invité, entrez p pour le type de partition, 1 pour le numéro de partition (en fait, je pense que fdisk ne demandera pas ce détail), 616448 pour le premier secteur, et 257433597 (point de départ de la partition étendue moins 1) pour le dernier secteur. (Cette valeur du dernier secteur peut être la valeur par défaut, auquel cas vous pouvez simplement appuyer sur Entrée.)
  5. Tapez p pour vérifier que les partitions sont correctes. Ils devraient ressembler à ce que vous avez maintenant, sauf que le point final de /dev/sda1 devrait être un secteur avant le début de /dev/sda4.
  6. Tapez w pour enregistrer vos modifications et quitter.

Que vous suiviez ma procédure ou celle de rusty, sachez que il y a une chance que le système de fichiers contenu dans /dev/sda1 pense qu'il peut utiliser au-delà du secteur 257,433,597. Si tel est le cas, la réparation du disque de cette manière peut entraîner des problèmes sur cette partition. Il n'y a vraiment aucun moyen de contourner ce problème, et le résoudre en et non en réparant votre problème actuel risque d'endommager votre table de partitions d'une manière qui entraînerait /dev/sda5 à disparaître ou à endommager son contenu, le problème est donc résolument en ordre. Pour limiter les risques de dommages sur /dev/sda1, je vous recommande cependant d'exécuter CHKDSK sous Windows (ou d'utiliser ses interfaces graphiques) pour vérifier l'intégrité de /dev/sda1. Je ne suis pas positif, mais je m'attendrais à ce que CHKDSK détecte une partition de conteneur trop petite. Vous devrez peut-être redimensionner le système de fichiers pour résoudre le problème si la partition est trop petite pour le système de fichiers - mais procédez comme suit après le redimensionnement de la partition afin de le minimiser. le risque d'endommager /dev/sda5. Tout cela est en grande partie préventif, cependant; il y a de bonnes chances que le système de fichiers dans /dev/sda1 ne soit pas dimensionné jusqu'à la fin de /dev/sda1, auquel cas le redimensionnement de la partition de la manière que je suggère rouillée ne causera pas de problèmes. (Nous vous demandons tous les deux de faire la même chose; les outils utilisés pour faire le travail diffèrent tout simplement.)

1
Rod Smith

Téléchargez une version actuellement prise en charge (12.04 ou 13.10), démarrez-la et sauvegardez les données que vous souhaitez enregistrer à partir de votre installation actuelle. Ensuite, utilisez fdisk pour supprimer les partitions 5 et 4, puis réinstallez-les.

0
psusi

Lors du redimensionnement/déplacement dans GParted, une option supplémentaire "Aligner sur:" répertorie 3 options:

  • MiB
  • Cylindre /choisissez celui-ci et réessayez -il a fonctionné pour moi
  • None

Je l'ai trouvé ici quand j'ai eu le même problème. http://ubuntuforums.org/showthread.php?t=1980664&p=12319906#post12319906

0
gygoole