2 votes

Comment réparer les partitions chevauchantes dans la table MBR?

Mon Ubuntu installé sur mon PC est bloqué à l'écran de démarrage. Donc, j'ai essayé d'installer à nouveau, mais la table des partitions est vide dans 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 la sortie de mon fdisk.

$ sudo fdisk -l -u /dev/sda
Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 têtes, 63 secteurs/piste, 30401 cylindres, total 488397168 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique/physique) : 512 octets / 512 octets
Taille d'E/S (minimale/optimale) : 512 octets / 512 octets
Identifiant de disque : 0x49fec944

   Périphérique Amorçage    Début         Fin      Blocs   Id  Système
/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  Étendue
/dev/sda5       257433600   452753407    97659904   83  Linux
Les entrées de la table de partition ne sont pas dans l'ordre du disque

Pouvez-vous m'aider?

2voto

precise Points 14840

Réparation de la table de partition avec sfdisk:

  1. Démarrer avec le disque live d'Ubuntu;

  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

    ce qui devrait afficher:

    Erreur: Can't have overlapping partitions.
  3. Les détails des partitions peuvent être vérifiés avec:

    sudo fdisk -l -u /dev/sda

    ce qui, pour vous, selon votre publication est:

    Disque /dev/sda: 250,1 Go, 250059350016 octets
    255 têtes, 63 secteurs/piste, 30401 cylindres, total 488397168 secteurs
    Unités = secteurs de 1 * 512 = 512 octets
    Taille de secteur (logique/physique): 512 octets / 512 octets
    Taille d'E/S (minimale/optimale): 512 octets / 512 octets
    Identifiant de disque: 0x49fec944
    
       Périphérique Amorçage Début         Fin      Blocs   Id  Système
    /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  Étendue
    /dev/sda5       257433600   452753407    97659904   83  Linux
  4. Vérification des chevauchements: Vous pouvez voir que la fin de la partition primaire /dev/sda1 chevauche le début de la partition étendue /dev/sda4.

    sda1fin = 257441624

    sda4 = 257433598

  5. Comme suggéré dans la documentation - "Dans les cas où nous ne savons pas si le secteur de début ou de fin est le problème, nous supposons que le secteur de début de chaque partition est correct, et que le secteur de fin pourrait être incorrect", nous supposons que le secteur de début de la partition étendue sda4 est correct. Par conséquent, nous chercherons à modifier le secteur de fin de la partition primaire sda1.

    Calculs:

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

    sda1nouvelleTaille = sda1nouvelleFin - sda1 + 1 = 257433597 - 616448 + 1 = 256817150

  6. Création d'une copie de la table de partition dans un fichier en utilisant la commande sfdisk:

    sudo sfdisk -d /dev/sda devrait afficher 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. [Pour OP: Veuillez éditer votre question et inclure la sortie de sudo sfdisk -d /dev/sda]

    Sauvegardez une copie de la table de partition avec:

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

    ce qui ressemblerait à ceci pour vous:

    # table de partition de /dev/sda
    unité: secteurs
    
    /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 les privilèges root, créé à l'étape précédente, en utilisant l'éditeur de texte de votre choix. Dans l'exemple, j'utiliserai nano.

    sudo nano sda-backup.txt

    (sda-backup.txt en supposant que le fichier est dans le répertoire actuel, sinon remplacez-le par le chemin absolu du fichier.)

    Changez l'ancienne taille de sda1 (256825177) par la taille corrigée (256817150) pour que votre nouvelle sauvegarde de table de partition ressemble à:

    # table de partition de /dev/sda
    unité: secteurs
    
    /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. Renvoi des détails de partition corrigés à la table de partition en utilisant 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 corrigée, vous pouvez ensuite utiliser GParted ou d'autres éditeurs de partition avec le périphérique.


La documentation de GParted suggère également une méthode alternative, en utilisant testdisk pour scanner le périphérique de disque et reconstruire la table de partition. L'application testdisk est incluse dans GParted Live. Donc, si vous n'êtes pas à l'aise avec la méthode en ligne de commande, vous pouvez essayer l'alternative.

<a href="http://gparted.org/h2-fix-msdos-pt.php#overlapping-partitions" rel="nofollow">source</a>

0voto

psusi Points 35613

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

0voto

Rod Smith Points 41849

La suggestion de Rusty devrait fonctionner, mais elle est un peu intimidante. 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 voir la table des partitions et vérifiez qu'elle affiche les mêmes partitions que celles que vous avez postées.
  3. Tapez d et, lorsque vous êtes invité pour un numéro de partition, tapez 1.
  4. Tapez n pour créer une nouvelle partition. Lorsque vous ê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 (le point de départ de la partition étendue moins 1) pour le dernier secteur. (Cette valeur de 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. Elles devraient ressembler exactement à ce que vous avez maintenant, sauf que le point de fin 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, soyez conscient que il y a une chance que le système de fichiers à l'intérieur de /dev/sda1 pense qu'il peut utiliser au-delà du secteur 257,433,597. Si c'est le cas, réparer le disque de cette manière pourrait causer des problèmes sur cette partition. Il n'y a vraiment pas de solution à ce problème, et l'éviter en ne réparant pas votre problème actuel comporte le risque de endommager votre table de partitions d'une manière qui fera disparaître /dev/sda5 ou endommagera son contenu, donc la résolution du problème est définitivement nécessaire. Pour atténuer le risque de dommages sur /dev/sda1, cependant, je vous recommande d'exécuter CHKDSK dans Windows (ou d'utiliser ses interfaces graphiques) pour vérifier l'intégrité de /dev/sda1. Je ne suis pas sûre, mais je m'attends à ce que CHKDSK détecte une partition conteneur trop petite. Vous pourriez avoir besoin de 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 faites-le après avoir redimensionné la partition pour minimiser le risque de dommages sur /dev/sda5. Tout cela est largement précautionneux; 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 redimensionner la partition de la manière dont je le suggère, tout comme Rusty, ne causera pas de problèmes. (Nous vous disons tous les deux de faire la même chose; nous différons simplement dans les outils utilisés pour le travail.)

0voto

gygoole Points 21

Lors du redimensionnement/déplacement dans GParted, il y a une option supplémentaire "Aligner sur :". Elle liste 3 options :

  • MiB
  • Cylindre / choisissez celle-ci et réessayez - cela a fonctionné pour moi
  • Aucun

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

0voto

Saif Hakeem Points 101

Si vous avez accès à n'importe quelle machine Windows, il suffit d'ouvrir le gestionnaire de partitions pour le formater en NTFS. Ensuite, sous Linux, formatez-le à nouveau (j'ai utilisé Disques sous Mint) dans le format de partition souhaité (EXT4 dans mon cas).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X