Problème de partitionnement
Résolu
Bonsoir,
Suite à une tentative de redimensionnement de mes partitions, ma table de partition a été endommagé.
En lançant Gparted, je n'arrive même pas à consulter la liste de mes partitions et j'obtiens une erreur : "La partition ne peut pas être en dehors du disque !".
Depuis l'utilitaire de disque, je retrouve mes partitions habituelles mais avec un espace non alloué de 1844674 TB (oui c'est bien du TB).
Je n'arrive plus à gérer mes partitions, voici un exemple de message d'erreur obtenu :
Voici ce que m'indique le fdisk -l :
Que puis-je faire ?
Merci d'avance.
Suite à une tentative de redimensionnement de mes partitions, ma table de partition a été endommagé.
En lançant Gparted, je n'arrive même pas à consulter la liste de mes partitions et j'obtiens une erreur : "La partition ne peut pas être en dehors du disque !".
Depuis l'utilitaire de disque, je retrouve mes partitions habituelles mais avec un espace non alloué de 1844674 TB (oui c'est bien du TB).
Je n'arrive plus à gérer mes partitions, voici un exemple de message d'erreur obtenu :
Error modifying partition: helper exited with exit code 1: In part_change_partition: device_file=/dev/sda, start=263710572544, new_start=263710572544, new_size=1207959552, type=0x0b Entering MS-DOS parser (offset=0, size=320072933376) MSDOS_MAGIC found looking at part 0 (offset 32256, size 7345142784, type 0x0b) new part entry looking at part 1 (offset 7345274880, size 160035766272, type 0x07) new part entry looking at part 2 (offset 167382089728, size 96328467968, type 0x07) new part entry looking at part 3 (offset 263710557696, size 56367988224, type 0x0f) Entering MS-DOS extended parser (offset=263710557696, size=56367988224) readfrom = 263710557696 MSDOS_MAGIC found readfrom = 264921624576 MSDOS_MAGIC found readfrom = 319326981120 MSDOS_MAGIC found Exiting MS-DOS extended parser Exiting MS-DOS parser MSDOS partition table detected containing partition table scheme = 1 got it Error: Can't have a partition outside the disk! ped_disk_new() failed
Voici ce que m'indique le fdisk -l :
Disque /dev/sda: 320.1 Go, 320072933376 octets 255 têtes, 63 secteurs/piste, 38913 cylindres Unités = cylindres de 16065 * 512 = 8225280 octets Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identifiant de disque : 0x3d62130f Périphérique Amorce Début Fin Blocs Id Système /dev/sda1 * 1 893 7172991 b W95 FAT32 /dev/sda2 894 20350 156284928 7 HPFS/NTFS /dev/sda3 20350 32061 94070769+ 7 HPFS/NTFS /dev/sda4 32061 38914 55046863+ f W95 Etendue (LBA) /dev/sda5 32061 32208 1179648 7 HPFS/NTFS /dev/sda6 32209 38653 51764224 83 Linux /dev/sda7 38823 38914 728056 82 Linux swap / Solaris
Que puis-je faire ?
Merci d'avance.
A voir également:
- Problème de partitionnement
- Partitionnement disque dur - Guide
- Logiciel de partitionnement - Télécharger - Stockage
- Erreur partitionnement formatage clé USB - Forum Windows 10
- Erreur 0x80070017 lors du partitionnement du disque - Forum Windows 8 / 8.1
- Comment puis je bien mettriser le partitionnement des disc? - Forum Ordinateurs
1 réponse
Je ne sais pas si c'est le cas de gparted (et parted), mais c'est celui de cfdisk, quand la table des partitions est bancales ça ne marche pas super.
Heureusement fdisk est beaucoup moins sensible à ce genre de problèmes. Même si fdisk est moins convivial, fdisk permet tout à fait de créer, supprimer, ou modifier des partitions d'un disque. Par contre contrairement à gparted, il ne permet pas de créer un système de fichiers, c'est le rôle de la commande mkfs (voir plus loin).
Exemple :
Dans ton cas, il faut (re)définir les partitions de manière cohérentes. Ensuite, il faut bien voir que fdisk ne fait que modifier la table des partitions. Il faut que ces entrées référencent un système de fichiers valide et qui concorde avec ce qui est indiqué avec la table des partitions. Par exemple si tu dis dans la table des partitions que /dev/sda5 contient un système de fichier Linux (par exemple ext4) à la position 7815168 et se finissant à la position 7815168, ce doit être le cas.
Ainsi, soit il y a réellement un tel système de fichier à cet endroit (sous entendu tu sais que ta partition de disque dur était là et dans ce système de fichiers), soit il faudra créer un nouveau système de fichiers à cet endroit (ie formater cette partition), par exemple grâce à la commande mkfs. Toutefois, la commande mkfs altère les données dans cette zone, et donc s'il y avait des données sur cette plage de disque dur, elles seront perdues. Il faut donc être sûr de ce que tu fais !
D'un point de vue "Linux", la table des partitions engendre des device (/dev/sda1 etc...) associés à chaque partition. On peut alors envisager de faire un "mount" pour accéder à ses données.
Exemple :
Un mount ne peut fonctionner que si certaines conditions sont vérifiées :
- le point de montage (/mnt/toto dans mon exemple) existe
- le device (/dev/sda1) correspond bien à un système de fichier valide et du type précisé à mount (ext4 dans mon exemple)
- le noyau linux (ou les modules chargés) permettent de prendre en charge le système de fichier mis en jeu (ext4 dans mon exemple)
- le système de fichier n'est pas déjà monté ailleurs (en tout cas il ne devrait pas l'être déjà !)
Pour plus de détails, tu peux jeter un oeil ici :
http://www.mistra.fr/tutoriel-linux-monter-peripherique.html
Bonne chance
Heureusement fdisk est beaucoup moins sensible à ce genre de problèmes. Même si fdisk est moins convivial, fdisk permet tout à fait de créer, supprimer, ou modifier des partitions d'un disque. Par contre contrairement à gparted, il ne permet pas de créer un système de fichiers, c'est le rôle de la commande mkfs (voir plus loin).
Exemple :
(mando@aldur) (~) $ sudo fdisk /dev/sda Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) Command (m for help): p Disk /dev/sda: 64.0 GB, 64023257088 bytes 255 heads, 63 sectors/track, 7783 cylinders, total 125045424 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: 0x000c20ab Device Boot Start End Blocks Id System /dev/sda1 2048 7813119 3905536 82 Linux swap / Solaris /dev/sda2 7815166 125044735 58614785 5 Extended /dev/sda5 7815168 27344895 9764864 83 Linux /dev/sda6 27346944 125044735 48848896 83 Linux Command (m for help): q (root@aldur) (~) #
Dans ton cas, il faut (re)définir les partitions de manière cohérentes. Ensuite, il faut bien voir que fdisk ne fait que modifier la table des partitions. Il faut que ces entrées référencent un système de fichiers valide et qui concorde avec ce qui est indiqué avec la table des partitions. Par exemple si tu dis dans la table des partitions que /dev/sda5 contient un système de fichier Linux (par exemple ext4) à la position 7815168 et se finissant à la position 7815168, ce doit être le cas.
Ainsi, soit il y a réellement un tel système de fichier à cet endroit (sous entendu tu sais que ta partition de disque dur était là et dans ce système de fichiers), soit il faudra créer un nouveau système de fichiers à cet endroit (ie formater cette partition), par exemple grâce à la commande mkfs. Toutefois, la commande mkfs altère les données dans cette zone, et donc s'il y avait des données sur cette plage de disque dur, elles seront perdues. Il faut donc être sûr de ce que tu fais !
D'un point de vue "Linux", la table des partitions engendre des device (/dev/sda1 etc...) associés à chaque partition. On peut alors envisager de faire un "mount" pour accéder à ses données.
Exemple :
mkdir -p /mnt/toto mount-t ext4 /dev/sda1 /mnt/toto
Un mount ne peut fonctionner que si certaines conditions sont vérifiées :
- le point de montage (/mnt/toto dans mon exemple) existe
- le device (/dev/sda1) correspond bien à un système de fichier valide et du type précisé à mount (ext4 dans mon exemple)
- le noyau linux (ou les modules chargés) permettent de prendre en charge le système de fichier mis en jeu (ext4 dans mon exemple)
- le système de fichier n'est pas déjà monté ailleurs (en tout cas il ne devrait pas l'être déjà !)
Pour plus de détails, tu peux jeter un oeil ici :
http://www.mistra.fr/tutoriel-linux-monter-peripherique.html
Bonne chance
Merci beaucoup.
Merci quand même pour votre aide, qui je pense en aidera plusieurs.