Comment puis-je find le dernier secteur utilisé par un système de files ext4?

J'ai besoin d'identifier le dernier secteur utilisé par un système de files ext4 afin que je puisse le déplacer vers un autre périphérique.

Le système de files a été réduit (avec resize2fs ) et est plus petit que la partition qui le contient, donc je ne request pas comment find le dernier secteur dans la partition.

J'ai fait tune2fs -l et identifié que

 Block count: 48934 First block: 0 Block size: 4096 

De là, je postulerais que le système de files utilise 48934 * 4096/512 = 391472 secteurs et que je peux déplacer autant de secteurs avec dd commençant au premier secteur de la partition (comme indiqué par gdisk ).

Je ne sais pas si ce nombre de blocs comprend des frais généraux ext4 ou si la taille supplémentaire doit être prise en count. J'ai lu cette question qui implique qu'il y a un espace supplémentaire à considérer.

Tu as raison. Il ne devrait pas y avoir de problème.

Pour éviter certains calculs, vous pouvez utiliser l'option bs et utiliser le nom de partition du périphérique plutôt que de commencer à un décalage.

 dd count=48934 bs=4096 if=/dev/sdxN of=... 

Pour être sûr à 100% de la taille, vous pouvez le tester avant. "Simuler" une partition plus petite:

 umount /dev/XYZ losetup --offset N-BYTES --sizelimit $(( 48934 * 4096 )) /dev/loop1 /dev/XYZ 

mount ou fsck de /dev/loop1 devrait vous dire si vous l'avez rendu trop petit. resize2fs dirait si la partition est encore trop grande mais il n'y a pas de dry-run . Vous pouvez également jouer avec fsadm -v --dry-run check/resize ... que je n'ai jamais encore utilisé. Si paranoïaque, vous devriez utiliser losetup --read-only . N'oubliez pas losetup --detach lorsque vous losetup --detach terminé.