10.12 Sierra Problème de commandes fsck

becourt

Membre confirmé
20 Mai 2018
40
1
60
Bonjour à tous
Mon MacBook Pro 2017 freeze au démarrage de la pomme aux 3 quarts de la barre de progression. Utilitaire de disque me dit que le B-Tree du catalogue ne peut être réparé. J'ai donc tenté une reparation fsck en single user ( je me souviens avoir résolu un problème similaire avec mon ancien MacBook). Mais quand je tape la commande fsck il me retourne :
fsck (-fdnypg) (-l number)

NB : les parenthèses sont carrées, mais je tape depuis mon iPhone, donc elles sont courbes ici

Je cherche des réponses sur ca depuis une heure, mais rien trouvé sur Google. Je suppose qu'il me demande l'ID du disque mais j'ai essayé 50 syntaxes différentes sans succès.
J'ai un boulot énorme à finir pour demain c'est plutôt la catastrophe. Toute aide serais la bienvenue.
Merci d'avance.
Un graphiste désespéré
 
Bloc de code:
-bash-3.2# diskutil repairvolume disk0s2
Started file system repair on disk0s2 Macintosh SSD
Repairing file system
Checking Journaled HFS Plus volume
Checking extents overflow file
Checking catalog file
Keys out of order
Rebuilding catalog B-tree
The volume Macintosh SSD could not be repaired
File system check exit code is 8
Updating boot support partitions for the volume as required
Error: -69610: Error parsing fsck program XML format output
Underlying error: 8: Exec format error
-bash-3.2#
 
Salut becourt

diskutil
est un « wrapper » : un enveloppeur de sous-commandes. Par conséquent > si tu passes une commande :
Bloc de code:
diskutil repairVolume [device]

  • c'est la commande fsck_hfs avec les options ad hoc qui va être lancée à destination de la partition-cible. Par suite : un échec de la commande diskutil --> implique l'échec de la sous-commande spécialisée fsck_hfs.

Le tableau que tu as affiché montre que le système de fichiers jhfs+ (générateur du volume Macintosh SSD) est corrompu au niveau du fichier du catalogue B-tree (qui gère les accès aux données en lecture > édition > ajout > suppression).

Est-ce que tu peux poster (toujours dans une fenêtre de code) le retour des commandes :
Bloc de code:
diskutil mount disk0s2
diskutil list
diskutil info disk0s2

  • la 1ère tente de remonter le volume Macintosh SSD (au cas où il serait montable > mais où la tentative de réparation l'aurait laissé démonté)
  • la 2è affiche la configuration du disque interne + image-disque de l'OS de secours démarré + ribambelle d'images-disques en RAM dans lesquelle sont remontés en "lecture & écriture" des dossiers de cet OS de secours montés en 1ère instance en "lecture seule"
  • la 3è retourne un tableau d'informations sur la partition-Système et son volume

J'aurais une idée plus précise de la situation.
 
merci de ta reponse .je prends un peu de temps , car je suis en mode recovery et les allez retours sont fastidieux

Bloc de code:
-bash-3.2# diskutil mount disk0s2
Volume on disk0s2 timed out waiting to mount
-bash-3.2#
 
Bloc de code:
-bash-3.2# diskutil list
/dev/disk0 (internal):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                         500.3 GB   disk0
   1:                        EFI EFI                     314.6 MB   disk0s1
   2:                  Apple_HFS Macintosh SSD           499.3 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

/dev/disk1 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        +2.1 GB     disk1
   1:                  Apple_HFS OS X Base System        2.0 GB     disk1s1

/dev/disk2 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +5.2 MB     disk2

/dev/disk3 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk3

/dev/disk4 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk4

/dev/disk5 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk5

/dev/disk6 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +2.1 MB     disk6

/dev/disk7 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk7

/dev/disk8 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk8

/dev/disk9 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +6.3 MB     disk9

/dev/disk10 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +2.1 MB     disk10

/dev/disk11 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +1.0 MB     disk11

/dev/disk12 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +2.1 MB     disk12

/dev/disk13 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk13

/dev/disk14 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk14

/dev/disk15 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +1.0 MB     disk15

/dev/disk16 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +6.3 MB     disk16

/dev/disk17 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk17

-bash-3.2#
 
Bloc de code:
-bash-3.2# diskutil info disk0s2
   Device Identifier:        disk0s2
   Device Node:              /dev/disk0s2
   Whole:                    No
   Part of Whole:            disk0

   Volume Name:              Macintosh SSD
   Mounted:                  No

   Partition Type:           Apple_HFS
   File System Personality:  Journaled HFS+
   Type (Bundle):            hfs
   Name (User Visible):      Mac OS Extended (Journaled)
   Journal:                  Unknown (not mounted)
   Owners:                   Disabled

   OS Can Be Installed:      No
   Recovery Disk:            disk0s3
   Media Type:               Generic
   Protocol:                 PCI-Express
   SMART Status:             Not Supported
   Volume UUID:              4A29050A-FB9C-3CD5-93A6-C63B21BD1C8A
   Disk / Partition UUID:    29645583-7384-4D4F-ACA9-AFB550EA477E

   Disk Size:                499.3 GB (499313168384 Bytes) (exactly 975221032 512-Byte-Units)
   Device Block Size:        4096 Bytes

   Volume Total Space:       0 B (0 Bytes) (exactly 0 512-Byte-Units)
   Volume Available Space:   0 B (0 Bytes) (exactly 0 512-Byte-Units)

   Read-Only Media:          No
   Read-Only Volume:         Not applicable (not mounted)

   Device Location:          Internal
   Removable Media:          Fixed

   Solid State:              Yes

-bash-3.2#
 
Le message : « Volume on disk0s2 timed out waiting to mount » --> signifie que le volume n'a pas été remonté > car le délai limite pour cette opération a expiré avant qu'il y ait pu avoir un remontage.

La configuration du disque -->
Bloc de code:
/dev/disk0 (internal):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                         500.3 GB   disk0
   1:                        EFI EFI                     314.6 MB   disk0s1
   2:                  Apple_HFS Macintosh SSD           499.3 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

  • est basique : pas de chiffrement FileVault > pas de système de stockage CoreStorage > rien qu'une partition-Système au format jhfs+ flanquée de ses 2 partitions auxiliaires : partition EFI et partition de secours.

Le tableau sur la partition confirme que le volume n'est pas monté > et le système de fichiers un jhfs+ classique.

----------

Dans ces conditions --> voici la démarche que je te propose :

  • tu redémarres (Menu  > Redémarrer) > en tenant aussitôt pressées les 2 touches ⌘S (cmd S) = démarrage en mode Single User.
  • tu vas donc te retrouver dans un Terminal plein écran de root > en clavier logique QWERTY --> et (point crucial) un volume Macintosh SSD peut-être remonté automatiquement en mode faible (readonly = lecture seule) > avec une désactivation des services de l'OS. Montage possible > car le service de probation des systèmes de fichiers diskarbitrationd (qui distribue au kernel les tâches de montage des volumes sur les partitions après vérification) n'aura pas été activé > et il y aurait donc un montage alternatif « en kernel » ne tenant pas compte des défaillances du système de fichiers jhfs+.

Ne cherche surtout pas à remonter en lecture & écriture le volume (pas de commande de type : mount -uw /). Non ! Passe la commande basique qui doit s'afficher à l'écran ainsi :
Bloc de code:
ls /
  • et que tu tapes en QWERTY ainsi :
Bloc de code:
ls =
  • la commande liste les fichiers & dossiers de 1er rang du volume

De 2 choses l'une -->

  • soit le volume est monté > et tu obtiens un tableau --> poste alors ici une photo de ce tableau
  • soit le volume n'est pas monté > et tu obtiens un « no such file or directory » ou même avant cela un plantage du démarrage en Single User.

Rends compte de ton expérience.
 
Photo illisible , j'ai donc tout recopie a la main :


ls /
- MON DISQUE - Users
.DS_Store Volumes
.Documentrevisions-V100 bin
.PKInstallSandboxManager-SystemSoftware cores
.Spotlight-V100 dev
.TemporaryItems etc
.Trashes home
.dbfsevensd installer.failurerequests
.file model
.fseventsd net
.vol private
Applications sbin
Library tmp
Network usr
System var
 
Bonne nouvelle : le volume est monté en readonly. Tous les dossiers-Système sont là > dont le dossier Users (contenant ton dossier domicile).

Passe la commande qui doit s'afficher comme :
Bloc de code:
du -shx /*

  • et que tu saisis comme :
Bloc de code:
du )shx =⇧8
(l'astérique * se tape par la combinaison maj 8)

  • la commande liste & mesure les dossiers de 1er rang du volume démarré ; elle prend un certain temps à se compléter

Poste une photo de l'affichage retourné. Si tu ne peux pas en avoir une lisible > ne recopie que les dossiers précédés par une valeur en G (= Gi) avec cette valeur numérique chaque fois ; et pas ceux avec des mesures en B (= Byte) ou K (= Ki) ou M (= Mi) > ni les lignes commençant par du ... et finissant par Operation not permitted.
 
Dernière édition par un modérateur:
* DOUBLON *


Bloc de code:
ls /
- MON DISQUE -------------------------------------------Users
.DS_Store---------------------------------------------------Volumes
.Documentrevisions-V100-------------------------------bin
.PKInstallSandboxManager-SystemSoftware------cores
.Spotlight-V100---------------------------------------------dev
.TemporaryItems-------------------------------------------etc
.Trashes------------------------------------------------------home
.dbfsevensd-------------------------------------------------installer.failurerequests
.file------------------------------------------------------------model
.fseventsd---------------------------------------------------net
.vol------------------------------------------------------------private
Applications-------------------------------------------------sbin
Library--------------------------------------------------------tmp
Network------------------------------------------------------usr
System-------------------------------------------------------var
 
Je t'ai répondu au message #10 --> passe la commande du et poste le retour (que tu peux simplifier aux seules valeurs en Gi avec les dossiers correspondants).
 
Asolument , c'est juste que j'avais doublonner entretemps et je n'arrive pas a delete ce message

voici donc les valeurs retournees ( uniquement en Gi):
294G-----------------------/ - MON DISQUE -
20G-------------------------/Applications
4.1G------------------------/Library
6.8G------------------------/System
68G-------------------------/Users
3.7G------------------------/private
 
Les mesures de l'utilitaire du sont toujours en Gi = gibibytes (base 2). La somme des dossiers principaux est 396,6 Gi = 425,8 Go.

Il est possible (par une manœuvre de montage spécialisée > puis une commande de recopie utilisant l'exécutable rsync) --> de cloner l'intégralité de ces 425,8 Go (données Système et perso) > dans le volume d'un DDE USB attaché au Mac. Une fois cette sauvegarde effectuée > il est possible (dans la session de secours) de reformater le volume Macintosh SSD > de réinstaller l'OS en mode propre > et à la fin de récupérer les données du clone via l'«Assistant de migration».

C'est la seule issue que je vois à ton problème - le volume Macintosh SSD ayant un système de fichiers corrompu irréparable. Donc n'étant ni montable ni réinstallable en mode normal.

Si tu es intéressé par cette perspective --> il te faut un DDE vacant de 500 Go > ou si tu as des DDE avec d'énormes quantités d'espace libre --> il faut voir si leur paramétrage permet un repartitionnement (non destructif) d'un volume existant > pour en créer un second pouvant abriter le clone.

=> qu'est-ce que tu en penses ?

----------

Note : aucun appareil attaché au Mac après démarrage en Single User --> n'est jamais reconnu logiquement (faute d'activation des services ad hoc dans le Système). Il faut toujours attacher d'abord un appareil > puis démarrer en Single User > pour qu'il soir reconnu.
 
j'ai un DDE de 1go que je peux ecraser pour ca
la solution clone semble la meilleure = ca me permet de recuperer les infos non sauvergardees. ( c'est mon but , ma derniere sauvegarde sur mon autre DDE TimeMachine remonte a qqs jours...
Mais comment cloner si je suis en recovery, sans soft dediè ?
par des commandes terminal je suppose
 
Alors tu vas d'abord quitter la session du Single User > en passant la commande :
Bloc de code:
reboot

  • identique dans les 2 claviers

Tiens aussitôt pressées les 2 touches ⌘R pour revenir dans la session de secours. Quand tu as récupéré l'écran affichant la fenêtre des 4 Utilitaires macOS > attache ton DDE au Mac > puis passe les commandes :
Bloc de code:
diskutil list
df -H

  • la 1ère affiche le tableau des disques
  • la 2è mesure l'occupation de tous les volumes actuellement montés

Poste ces tableaux ici (dans une fenêtre de code) --> que je voie les caractéristiques du DDE.
 
Bloc de code:
-bash-3.2# df -H
Filesystem      Size   Used  Avail Capacity iused      ifree %iused  Mounted on
/dev/disk1s1    2.0G   1.3G   724M    64%   48782 4294918497    0%   /
devfs           206k   206k     0B   100%     698          0  100%   /dev
/dev/disk2      5.2M   627k   4.6M    12%      18 4294967261    0%   /private/var/log
/dev/disk3      524k   147k   377k    29%       5 4294967274    0%   /Volumes
/dev/disk4      524k   152k   373k    29%       7 4294967272    0%   /private/var/tmp
/dev/disk5      524k   160k   365k    31%      10 4294967269    0%   /private/var/run
/dev/disk6      2.1M   299k   1.8M    15%       3 4294967276    0%   /private/tmp
/dev/disk7      524k   143k   381k    28%       2 4294967277    0%   /System/Installation
/dev/disk8      524k   303k   221k    58%      21 4294967258    0%   /private/var/db
/dev/disk9      6.3M   3.4M   2.8M    55%      69 4294967210    0%   /private/var/folders
/dev/disk10     2.1M   2.1M     0B   100%     283 4294966996    0%   /private/var/root/Library
/dev/disk12     2.1M   143k   2.0M     7%       2 4294967277    0%   /private/var/root/Library/Containers
/dev/disk13     524k   172k   352k    33%       9 4294967270    0%   /Library/Preferences
/dev/disk14     524k   176k   348k    34%       6 4294967273    0%   /Library/Preferences/SystemConfiguration
/dev/disk15     1.0M   143k   905k    14%       2 4294967277    0%   /Library/Keychains
/dev/disk16     6.3M   176k   6.1M     3%       2 4294967277    0%   /private/var/tmp/RecoveryTemp
/dev/disk17     524k   143k   381k    28%       2 4294967277    0%   /private/var/tmp/InstallerCookies
/dev/disk0s2    499G   467G    32G    94% 1043545 4293923734    0%   /Volumes/Macintosh SSD
/dev/disk18s1   1.0T   195G   805G    20%   39449 4294927830    0%   /Volumes/COFFRE_____FORT
-bash-3.2#
 
Bloc de code:
-bash-3.2# diskutil list
/dev/disk0 (internal):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                         500.3 GB   disk0
   1:                        EFI EFI                     314.6 MB   disk0s1
   2:                  Apple_HFS Macintosh SSD           499.3 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

/dev/disk1 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        +2.1 GB     disk1
   1:                  Apple_HFS OS X Base System        2.0 GB     disk1s1

/dev/disk2 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +5.2 MB     disk2

/dev/disk3 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk3

/dev/disk4 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk4

/dev/disk5 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk5

/dev/disk6 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +2.1 MB     disk6

/dev/disk7 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk7

/dev/disk8 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk8

/dev/disk9 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +6.3 MB     disk9

/dev/disk10 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +2.1 MB     disk10

/dev/disk11 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +1.0 MB     disk11

/dev/disk12 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +2.1 MB     disk12

/dev/disk13 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk13

/dev/disk14 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk14

/dev/disk15 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +1.0 MB     disk15

/dev/disk16 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +6.3 MB     disk16

/dev/disk17 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk17

/dev/disk19 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *1.0 TB     disk19
   1:                  Apple_HFS COFFRE_____FORT         1.0 TB     disk19s1

-bash-3.2#
 
Tu as 805 Go d'espace libre dans le volume COFFRE_____FORT > qui a un format de type Apple_HFS. Mais la table de partition du disque (FDisk_partition_scheme = MBR) proscrit de pouvoir rétrécir non destructivement ce volume > afin d'en créer un second dédié au clone.

Donc : soit clonage dans un dossier créé ad hoc dans le volume COFFRE_____FORT (ce qui empêchera l'«Assistant de migration» de servir à une récupération de données qui devrait être manuelle) > soit ré-initialisation "Mac" du disque du DDE (avec perte des données).