4 votes

APFS: Snapshot est invalide

En exécutant fsck_apfs, un rapport d'erreur est généré lors de la vérification de mon disque principal :

root@bix ~ # fsck_apfs -n -l /dev/disk1s1
** Vérification du super-bloc du conteneur.
** Vérification de l'enregistrement de démarrage EFI.
** Vérification du gestionnaire d'espace.
** Vérification des arbres de file d'attente d'espace libre du gestionnaire d'espace.
** Vérification de la carte d'objets.
** Vérification du volume.
** Vérification du super-bloc du volume APFS.
** Le volume Macintosh HD - Data a été formaté par hfs_convert (748.1.46) et modifié pour la dernière fois par apfs_kext (1412.81.1).
** Vérification de la carte d'objets.
** Vérification de l'arbre de métadonnées instantanées.
** Vérification des métadonnées instantanées.
** Vérification de l'instantané 1 sur 2 (com.apple.apfs.purgatory.84779e)
erreur : objet sibling_map_val (oid 0x2c6200000000168) : longueur invalide (20)
   L'instantané est invalide.
** Le volume /dev/disk1s1 n'a pas pu être complètement vérifié.

La sortie est la même en mode récupération et en mode sans échec (sans que le disque ne soit monté).

Une recherche en ligne du terme "sibling_map_val object" ne renvoie que du code de désassemblage Hopper, ce qui me fait penser que c'est une erreur inhabituelle. Cependant, de nombreuses personnes mentionnent la sortie "L'instantané est invalide".

Existe-t-il un moyen de forcer la suppression de l'instantané? Le système ne signale pas qu'il en existe :

root@bix ~ # tmutil listlocalsnapshots /
Instantanés pour le groupe de volumes contenant le disque / :

Le problème de fond est que mon disque principal continue de se remplir, malgré la suppression de centaines de gigaoctets de fichiers. Daisy Disk signale qu'il s'agit de fichiers système cachés inaccessibles (même après avoir mis à jour les autorisations via la version non-App-Store de l'utilitaire). Je soupçonne qu'il y a un instantané local corrompu dans le "com.apple.apfs.purgatory.84779e" mentionné dans la sortie de fsck, mais je ne vois aucun moyen de le supprimer.

J'ai essayé de désactiver/activer les sauvegardes Time Machine et l'indexation Spotlight sans succès. À chaque redémarrage, environ 5Go sont libérés, mais l'espace disponible tombe rapidement à environ 2Go et stagne à ce niveau jusqu'à ce que le système commence à signaler qu'il n'y a pas assez de mémoire système pour que mes applications restent ouvertes. Et comme je ne peux pas libérer suffisamment d'espace, Time Machine signale qu'il n'y a pas assez d'espace pour créer un instantané local, donc mon disque n'est pas sauvegardé (et je ne peux pas simplement effacer tout le système de fichiers et restaurer à partir de Time Machine). Je suis bloqué avec un disque qui continue de se remplir.

0 votes

Questions: 1. Pouvez-vous exécuter tmutil destinationinfo et partager la sortie avec nous? 2. Utilisez-vous réellement le logiciel TimeMachine d'Apple ou quelque chose d'autre comme Arq? 3. Je n'ai jamais vu le fichier purgatory. Pouvez-vous fournir plus d'informations sur ce que cela signifie?

2voto

undefined Points 383

erreur : sibling_map_val

Examinons cela de plus près. Tout d'abord, selon la spécification APFS (PDF) :

Les liens physiques qui se réfèrent tous au même inode sont appelés frères et sœurs. Chaque frère et sœur a son propre identifiant qui est utilisé à la place du numéro d'inode partagé lorsque les frères et sœurs doivent être distingués. ... Vous utilisez des liens frères et des cartes de frères pour convertir entre les identifiants de frères et les numéros d'inode. Les enregistrements de lien frères vous permettent de trouver tous les liens physiques dont la cible est un inode donné. Les enregistrements de carte de frères vous permettent de trouver l'inode cible d'un lien physique donné.

Ainsi, le frère_map est comme une feuille de calcul avec quelques colonnes, une clé qui se réfère à un fichier réel sur le système de fichiers, et une valeur qui contient l'identifiant d'objet d'un "fichier" lié en dur. Dans ce cas, la valeur pour votre ID n'est pas de la longueur correcte, ce qui indique une corruption.

De plus, ces données corrompues semblent être dans un instantané incomplet, donc la solution est de supprimer cet instantané, ce qui peut être assez difficile.

Solutions Possibles (de la moins à la plus destructrice)

Supprimer l'Instantané Local

Oui, vous l'avez mentionné, mais c'est une première étape importante. Assurez-vous d'abord de désactiver Time Machine.

Existe-t-il un moyen de supprimer l'instantané de force ?

Oui, et vous feriez bien de faire un script car c'est un problème fréquent. 99% du temps, c'est le plus ancien instantané ou celui qui dit dateless

tmutil listlocalsnapshots / ... La sortie de cette commande ressemble à ceci :

Instantanés du groupe de volumes contenant le disque / :
com.apple.TimeMachine.2020-04-01-122516.local
com.apple.TimeMachine.2020-04-01-132348.local
com.apple.TimeMachine.2020-04-01-143800.local
com.apple.TimeMachine.2020-04-01-153811.local
com.apple.TimeMachine.2020-04-01-183757.local
com.apple.TimeMachine.2020-04-01-193758.local
com.apple.TimeMachine.2020-04-01-203828.local

Il vous suffit de copier le timestamp pour chaque ligne que vous voulez éliminer et de le coller dans la commande suivante. Encore une fois, supprimer simplement le plus ancien (en haut) résoudra généralement les problèmes connexes.

sudo tmutil deletelocalsnapshots 2020-04-01-090758

Si elle réussit, vous n'aurez aucune réponse (sortie 0) dans le terminal.

2. Supprimer l'Instantané Offensif

AVERTISSEMENT : Vous ne devez pas continuer si vous n'avez pas de sauvegarde complète de votre disque. Vous pourriez perdre des données. Vous pourriez perdre toutes vos données.

Démarrez en mode utilisateur unique (redémarrez en mode de récupération et entrez les commandes dans le terminal en tant qu'utilisateur root) et essayez de trouver l'emplacement de l'instantané. Quelque chose comme :

find / com.apple.apfs.purgatory.84779e # Totalement non testé

Une fois que vous l'avez trouvé, supprimez ce fichier avec la commande rm. Si vous ne parvenez pas à localiser le fichier, passez à l'étape 3.

3. Effectuer une Réinstallation Sécurisée

Tout en étant encore en mode de récupération, quittez le terminal et effectuez une réinstallation du système d'exploitation. Cela est "sûr" en ce sens que seuls les fichiers système sont recréés. Votre dossier $HOME restera en place, donc si tout se passe bien, vous ne devriez pas avoir à récupérer votre disque dur à partir d'une sauvegarde.

Une fois terminé, exécutez à nouveau fsck_apfs pour vérifier que le problème est résolu. Si ce n'est pas le cas...

4. Effectuer une Réinstallation Complète

Toujours en mode de récupération, ouvrez Utilitaire de Disque et supprimez la partition sur laquelle le système d'exploitation est installé. Cela supprimera toutes vos informations. Recréez la partition (envisagez d'utiliser HFS+ si vous avez des problèmes fréquents avec APFS) exactement comme avant. Quittez Utilitaire de Disque pour revenir en mode de récupération.

Avant de procéder à une réinstallation, utilisez fsck_apfs sur la nouvelle partition pour vérifier qu'aucune erreur contenant le mot physique n'apparaît. Toute erreur à ce stade indique probablement un problème avec le disque dur lui-même, et il pourrait être nécessaire de le remplacer. Des exemples de telles erreurs comprennent :

  • Impossible de marquer la plage d'extensions physique
  • corruption physique de l'extension trouvée

Essayez de réparer, bien sûr, mais si vous n'avez pas de succès, envisagez de remplacer votre disque dur.

Puis procédez à une installation exactement comme vous l'avez fait à l'étape 3, suivi d'une récupération à partir de votre sauvegarde la plus récente.

Bonne chance.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X