web-dev-qa-db-fra.com

Comment puis-je distinguer ext3 et ext4 en utilisant la structure superBlock?

Existe-t-il un indicateur ou un octet dans SuperBlock permettant de distinguer s'il s'agit d'un système de fichiers ext4 ou ext3? Je l'ai déjà googlé et trouvé quelques structures internes d'ext3 et d'ext4, mais je ne trouve pas ma réponse.

Historique de ext2, ext3 et ext4
Blog de l'informatique judiciaire et de réponse aux incidents de SANS Digital

2
CLIX159

Commençons par créer deux petits fichiers d’image disque my-ext3 et my-ext4 et les formater dans ext3 et ext4, afin de pouvoir tester et voir les différences:

truncate -s 10M my-ext3
mkfs.ext3 my-ext3

truncate -s 10M my-ext4
mkfs.ext4 my-ext4

Le moyen le plus simple de vérifier ce qu’ils sont est la commande file:

$ file my-ext*
my-ext3: Linux rev 1.0 ext3 filesystem data, UUID=7ba99eb3-57c0-4d81-a2e7-529fdee64cbb (large files)
my-ext4: Linux rev 1.0 ext4 filesystem data, UUID=2308e0f8-443e-4164-b5ee-4810e9def008 (extents) (large files) (huge files)

Comme vous pouvez le constater, il identifie correctement chaque type de système de fichiers. Vous pouvez également examiner les systèmes de fichiers avec fsck en les montant ou en utilisant des outils de partitionnement.

Cependant, comme @ Rinzwind a souligné dans son comment , tous ext2, ext3 et Les systèmes de fichiers ext4 sont fondamentalement les mêmes, sauf que les révisions les plus récentes prennent en charge davantage de fonctionnalités du système de fichiers. Ceux-ci ne vous disent pas directement s'il s'agit de ext3 ou ext4, mais vous pouvez vérifier depuis quelle version de système de fichiers chaque fonctionnalité est disponible. Si vous trouvez une fonction ext4 uniquement, vous devez utiliser ext4. Regardons-les.

La commande permettant d'examiner le système de fichiers est dumpe2fs. Nous ne nous intéressons qu'aux données de superbloc, nous ajoutons donc l'option -h, sinon elle inondera également la console de tonnes d'informations inode. Pour nous, seules les "fonctionnalités du système de fichiers" sont intéressantes, utilisons donc grep pour filtrer cela:

$ dumpe2fs -h my-ext3 |& grep "^Filesystem features:"
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype sparse_super large_file

$ dumpe2fs -h my-ext4 |& grep "^Filesystem features:"
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

Nous avons maintenant deux listes de fonctionnalités de système de fichiers et pouvons vérifier chacune d'elles pour déterminer la révision de système de fichiers ext? la plus basse prenant en charge chaque fonctionnalité. Nous pouvons regarder man ext4 pour cela, il contient une liste de toutes les fonctionnalités du système de fichiers ext4, leur description et leur date de prise en charge.

J'ai fait une petite liste pour vous et commandé les fonctionnalités par la première révision ext? qui les prend en charge. Toutes les fonctionnalités des révisions plus anciennes sont également prises en charge dans les révisions les plus récentes:

  • ext2: ext_attr, filetype, sparse_super
  • ext3: dir_index, has_journal
  • ext4: 64bit, bigalloc, dir_nlink, extent, extra_isize, flex_bg, huge_file, meta_bg, mmp, uninit_bg

Il existe d'autres fonctionnalités décrites dans man ext4, mais sans informations sur les révisions du système de fichiers qui les prennent en charge: journal_dev, large_file, sparse_super2, quota, resize_inode
Ils sont probablement tous présents depuis ext2, mais je ne suis pas sûr à 100%. S'il vous plaît laissez un commentaire si vous en savez plus sur hem.

4
Byte Commander