GNU/Linux >> Tutoriels Linux >  >> Linux

Comment trouver le décalage d'un système de fichiers Ext4 ?

J'ai un disque dur défaillant incapable d'écrire ou de lire les premiers secteurs du disque. Cela donne juste des erreurs d'E/S et c'est tout ce qu'il y a. Il y a d'autres zones sur le disque qui semblent (pour la plupart) correctes.
J'essaie de monter une partition (ext4) et de voir si je peux accéder à certains fichiers que je voudrais récupérer. Depuis le mount la commande prend en charge un offset option, je devrais pouvoir monter le système de fichiers même si la table de partition est illisible et non inscriptible. Le problème est de savoir comment trouver le décalage. Aucun des outils ext4 ne semble avoir cette fonctionnalité particulière.

Réponse acceptée :

Il n'y a pas de décalage standard en soi, car vous pouvez bien sûr démarrer la partition où vous voulez. Mais supposons un instant que vous recherchiez la première partition et qu'elle ait été créée en acceptant plus ou moins les valeurs par défaut. Il y a alors deux endroits où vous pouvez le trouver, en supposant que vous utilisiez une table de partition DOS traditionnelle :

  1. À partir du secteur 63 (512 octets). C'était la tradition depuis très longtemps, et cela a fonctionné jusqu'à ce que quelqu'un propose des disques 4K…
  2. À partir du secteur 2048 (512 octets). C'est la nouvelle tradition, pour accueillir des disques 4K.
  3. Une option bonus ! Commencer au secteur 56. C'est ce qui se passe si quelqu'un déplace la partition 63-start pour l'aligner avec un secteur 4K.

Maintenant, pour continuer, vous voudrez choisir votre outil de vidage hexadécimal préféré et en apprendre un peu plus sur la disposition du disque ext4. En particulier, il commence par 1024 octets de remplissage, qu'ext4 ignore. Vient ensuite le superbloc. Vous pouvez reconnaître le superbloc en recherchant le nombre magique 0xEF53 à l'offset 0x38 (à partir du début du superbloc, ou 0x438 à partir du début de la partition, ou 1080 en décimal.) Le nombre magique est little-endian. Il est donc en fait stocké sur le disque en tant que 0x53EF.

Voici à quoi cela ressemble avec xxd -a :

0000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................
*
0000400: 0040 5d00 0084 7401 33a0 1200 33db a600 [email protected]]...t.3...3...
0000410: 4963 5300 0000 0000 0200 0000 0200 0000 IcS.............
0000420: 0080 0000 0080 0000 0020 0000 6637 0952 ......... ..f7.R
0000430: 6637 0952 0200 1600 53ef 0100 0100 0000 f7.R....S.......
0000440: 9938 f851 004e ed00 0000 0000 0100 0000 .8.Q.N..........

Notez que lorsque vous donnez le décalage à mount (ou losetup), vous devez donner le décalage à l'endroit où commence le rembourrage, pas au superbloc.

En relation :Vous ne trouvez pas les notifications YouTube concernant les commentaires ?

Maintenant, si ce n'est pas la première partition, ou si ce n'est pas dans l'un des deux (trois) endroits attendus, vous devez essentiellement rechercher le nombre magique 0xEF53. C'est ce que testdisk (recommandé dans un commentaire) fait pour vous.


Linux
  1. Comment augmenter le nombre d'inodes dans un système de fichiers Ext4 ?

  2. Comment trouver les options de montage du système de fichiers actuellement monté

  3. Comment trouver le gestionnaire de fichiers par défaut ?

  4. Comment trouver la taille d'une partition non montée sous Linux ?

  5. Comment trouver l'UUID d'un système de fichiers

Comment trouver la version de Redhat Linux installée

Comment changer l'UUID de la partition dans le système de fichiers Linux

Comment trouver le type de système de fichiers monté sous Linux

Comment déplacer la partition Ext4 avant la partition de démarrage ?

Comment changer le schéma de partition sur votre serveur Linux ?

Android - Comment trouver le chemin d'accès de la partition swap sur la carte SD ?