web-dev-qa-db-fra.com

Gparted Freeze pendant le redimensionnement de partition NTFS

Comme indiqué dans le titre, Gparted a gelé alors qu’elle était en train de déplacer une partition NTFS vers la gauche et de l’augmenter en taille pour occuper l’espace disque à droite.

La dernière opération en cours consistait à déplacer des secteurs d’une taille de bloc de 16 Mo.

Y a-t-il un moyen de le remettre en mouvement ou de le faire manuellement? Pour un exemple de ce que je veux dire, voyez cet article: http://gparted-forum.surf4.info/viewtopic.php?pid=25907#p25907

EDIT: J'ai maintenant découvert les informations suivantes:

  • Le secteur exact où l'opération de copie a été interrompue est non. 2.529.216.511.
  • Selon le MBR du disque, le premier secteur de la partition est 202 390 MB depuis le début du disque et a une longueur de 1 705 337 Mio - ce que je devais finir par obtenir.
  • Le BPB étendu dans la partition NTFS affirme que la taille de la partition est de 1 293 319 Mio. Ceci est faux et aurait probablement dû être mis à jour une fois la copie terminée.
4
randomperson1

OK, alors j'ai finalement résolu ça!

Cette solution devrait également fonctionner pour d'autres systèmes de fichiers si GParted effectue la même "copie directe". Évidemment, vous devrez utiliser autre chose que chkdsk à la fin.

Quoi qu'il en soit, voici la procédure à suivre pour résoudre le problème au profit de tous ceux qui sont aussi malchanceux/stupides * que moi:

  1. Avant de commencer, détendez-vous - allez vous chercher un café ou une tasse de chocolat chaud!

    Vos données sont toujours sur le disque, il vous suffit de les chercher. Passer du temps à vérifier calmement les choses ne vous fera pas de mal. Se précipiter et être impulsif pourrait.

  2. Lisez-le attentivement et assurez-vous de bien comprendre chaque étape. Si vous décidez ensuite de suivre ces instructions, il est probablement préférable de faire une sauvegarde sur un disque séparé en utilisant dd. Il est facile de faire des erreurs et une sauvegarde vous donnerait un filet de sécurité.

  3. Assurez-vous de noter toute information concernant la dernière chose que GParted a faite. Vous voudrez savoir dans quelle mesure l'opération de copie a eu lieu (aussi précisément que possible) et dans quelle mesure il a copié les choses.

  4. Déterminez l'emplacement exact où la copie s'est terminée. J'ai écrit deux scripts Python pour vous aider, mais ils n'ont été testés que sur Ubuntu (cela ne fonctionnera certainement pas sous Windows) et doit être modifié pour vos besoins spécifiques. cas .

    • Tout d'abord, utilisez ceci pour trouver un seul secteur correspondant sur le disque: findDuplicateSector.py

    • Ensuite, utilisez ceci pour trouver le dernier secteur correspondant (c'est-à-dire où l'opération a été interrompue): findCopyInterruptLocation.py

    • Lisez le code et assurez-vous de bien le comprendre. Je l'ai testé brièvement mais il y a peut-être des bugs. Tous les nombres donnés sont des décalages absolus à partir du début de la partition/du fichier, c’est-à-dire que le décalage 0 est le premier secteur de la partition et le décalage n est le n + 1.th secteur.

  5. Utilisez dd ou quelque chose de similaire pour terminer l'opération de copie, en veillant à ne pas confondre les décalages d'entrée et de sortie. Voici la syntaxe pour dd:

    Sudo dd bs=512 skip=<input_offset> if=<partition> seek=<output_offset> of=<partition> count=<num_sectors_to_copy>
    

    Cette étape prendra un temps long (cela m'a pris 8 heures). Si vous voulez voir comment il avance, exécutez ceci dans un terminal séparé et dd vous informera de sa progression dans sa propre fenêtre de terminal:

    Sudo kill -s USR1 <PID_of_dd>
    
  6. Vérifiez les éléments suivants et corrigez-les si nécessaire:

    • Les entrées de la table de partition du Master Boot Record (MBR) doivent correspondre à ce que vous avez demandé à GParted de faire (voir l'article de wikipedia, il est très instructif). Vérifiez spécifiquement la valeur pour le LBA du premier secteur de la partition et son nombre total de secteurs.

    • L'enregistrement de démarrage de la partition que vous modifiez doit correspondre au MBR (dans mon cas, ce n'était pas le cas). Pour NTFS, la taille totale de la partition dans les secteurs doit être au décalage 40 à partir du début de la partition. Je ne pense pas que NTFS enregistre le décalage de la partition par rapport au début du disque.

  7. Exécutez chkdsk en mode lecture seule , c’est-à-dire sans autre argument en ligne de commande que le nom du lecteur pour vérifier qu’il peut trouver tous les fichiers. dans la partition. S'il ne parvient pas à vérifier les index de fichier, NE PAS continuer . Ne vous inquiétez pas s'il se plaint du fichier $ Bitmap contenant des erreurs.

  8. Si et seulement si l'étape 5 a réussi, exécutez chkdsk /f pour corriger, par exemple, le fichier $ Bitmap. Si vous exécutez cette opération alors que les index de fichiers sont toujours incorrects, vous risquez de les supprimer, ce qui rend les choses beaucoup plus difficiles pour vous.

  9. Vous voudrez peut-être exécuter à nouveau chkdsk en mode lecture seule pour vous assurer que cela fonctionne, juste pour avoir l'esprit tranquille.

* En fait, je suis trop arrogant - nous ne sommes pas stupides. Mais sérieusement - faites des sauvegardes!

7
randomperson1