4 votes

APFS : La capture instantanée est invalide

En exécutant fsck_apfs, un rapport d'erreur a été émis lors de la vérification de mon disque principal :

root@bix ~ # fsck_apfs -n -l /dev/disk1s1
** Vérification du superbloc 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 gratuits du gestionnaire d'espace.
** Vérification de la carte des objets.
** Vérification du volume.
** Vérification du superbloc du volume APFS.
** Le volume Macintosh HD - Data a été formaté par hfs_convert (748.1.46) et a été modifié pour la dernière fois par apfs_kext (1412.81.1).
** Vérification de la carte des objets.
** Vérification de l'arbre de métadonnées instantanées.
** Vérification des métadonnées de l'instantané.
** Vérification de l'instantané 1 sur 2 (com.apple.apfs.purgatory.84779e)
error: l'objet sibling_map_val (oid 0x2c6200000000168) : longueur non valide (20)
   L'instantané est invalide.
** Impossible de vérifier complètement le volume /dev/disk1s1.

La sortie est identique en mode de récupération et en mode sans échec (sans le disque monté).

Une recherche en ligne avec "sibling_map_val object" ne donne que du code de désassembleur Hopper, ce qui me fait penser qu'il s'agit d'une erreur inhabituelle. Cependant, de nombreuses personnes mentionnent la sortie "Snapshot is invalid".

Existe-t-il un moyen de forcer la suppression de l'instantané ? Le système ne signale pas sa présence :

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

Le problème principal est que mon disque principal continue de se remplir, malgré la suppression de centaines de Go de fichiers. Daisy Disk signale qu'il s'agit de fichiers système cachés inaccessibles (même après avoir amélioré les autorisations via la version non-App-Store de l'utilitaire). Je soupçonne la présence d'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. Après un redémarrage, environ 5 Go sont récupérés, mais rapidement l'espace disponible redescend à environ 2 Go et se maintient autour de cette valeur jusqu'à ce que le système signale un manque de mémoire système pour le bon fonctionnement de mes applications. Comme je ne peux pas libérer suffisamment d'espace, Time Machine se plaint de ne pas avoir assez d'espace pour créer un instantané local, et donc mon disque n'est pas sauvegardé (ce qui rend impossible le formatage du système de fichiers et la restauration à partir de Time Machine). Je suis bloqué avec un disque qui se remplit continuellement.

2voto

undefined Points 383

erreur: sibling_map_val

Décomposons cela. 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 soeurs. Chaque frère a son propre identifiant qui est utilisé au lieu du numéro d'inode partagé lorsque les frères et soeurs doivent être distingués. ... Vous utilisez les liens frère et les cartes frères pour convertir entre les identifiants frères et les numéros d'inode. Les enregistrements de lien frère vous permettent de trouver tous les liens physiques dont la cible est un inode donné. Les enregistrements de carte frère vous permettent de trouver l'inode cible d'un lien physique donné.

Donc, le sibling_map est un peu comme une feuille de calcul avec quelques colonnes dedans, une clé qui se réfère à un fichier réel sur le système de fichiers, et une valeur qui a l'ID d'objet d'un "fichier" lié en dur. Dans ce cas, la valeur pour votre ID n'a pas la bonne longueur, ce qui indique qu'elle est corrompue.

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 destructive)

Supprimer l'Instantané Local

Oui, vous avez mentionné ceci, mais c'est une étape importante. Tout d'abord, assurez-vous de désactiver Time Machine.

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

Oui, et vous feriez mieux d'en faire un script car c'est un problème fréquent. 99% du temps, il s'agit du plus ancien instantané ou de celui qui indique sans date

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

Instantanés pour le 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 souhaitez supprimer 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 vous réussissez, vous n'obtiendrez aucune réponse (sortie 0) dans le terminal.

2. Supprimer l'Instantané Offensant

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

Redémarrez en mode utilisateur unique (redémarrez en mode de récupération et saisissez 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é, rm ce fichier. Si vous ne parvenez pas à localiser le fichier, passez à l'étape 3.

3. Faire une Réinstallation Sûre

Tout en étant en mode de récupération, quittez le terminal et effectuez une réinstallation du système d'exploitation. C'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. Sinon...

4. Faire 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é. En faisant cela, vous supprimerez toutes vos informations. Recréez la partition (envisagez d'utiliser HFS+ si vous avez des problèmes fréquents avec APFS) exactement comme elle était avant. Quittez Utilitaire de disque pour revenir en mode de récupération.

Avant de faire une réinstallation, utilisez fsck_apfs sur la nouvelle partition pour vérifier qu'elle ne renvoie aucune erreur contenant le mot physical. 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 incluent:

  • Impossible de marquer l'étendue de l'objet physique
  • corruption de l'étendue de l'objet physique trouvée

Essayez de réparer, bien sûr, mais si vous n'êtes pas réussi, envisagez de remplacer votre disque.

Ensuite, procédez à une installation comme vous l'avez fait à l'étape 3, suivie 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