Résolu le 20-12-20 Taille réelle d'un fichier sur le disque

Assistance concernant Linux Mint
Répondre
Avatar du membre
Christian_B
Messages : 438
Enregistré le : lun. 7 nov. 2016 10:44
Localisation : Paris

Taille réelle d'un fichier sur le disque

Message par Christian_B »

Bonjour,
J'ai voulu constituer un fichier texte plus ou moins aléatoire dont la recopie (puis la recopie d'un répertoire en contenant 100 exemplaire par exemple, etc) permettait facilement de remplir le disque dur pour effacer les secteurs vides (par principe plus que par nécessité).
Dans Xed, mon fichier comporte 98304 octets (soit 96 KiB).
Caja me donne bien 96 KiB pour la taille mais aussi 96 KiB pour la taille sur le disque. Or je m'attendais à 100 KiB avec un en-tête présumé de 4KiB.
Même la commande du donne 96 pour ce fichier et man du ne parle pas de l'en-tête.
Pour un répertoire de 100 fichiers identiques, la taille disque est 9,4 MiB pour Caja et 9604 pour du :? :shock:
Est-ce que je me trompe ou est-ce que pour connaître la place prise sur le disque il faut bien ajouter 4KiB par fichier ? A moins que Ext4 soit organisé autrement ?
Quelqu'un sait-il s'il existe un outil qui donne l'occupation réelle du disque par un fichier ou un répertoire ?
Merci.
Linux Mint 21.3 Mate 1.26.0. Carte Gigabyte H81N.
Intel Core i7-4770 : 4x2 cœurs + Xeon E3-1200 (= circuit 4600), sans carte graphique.
Mémoire 8 Go Dual channel, SSD 120Go, HD 2To.
Les armes nucléaires sont interdites depuis le 22 janvier 2021. Y a plus qu'à ...

Avatar du membre
arghlub
Administrateur du site
Messages : 10421
Enregistré le : dim. 21 mai 2017 08:19
Localisation : Provence
Contact :

Re: Taille réelle d'un fichier sur le disque

Message par arghlub »

Salut,
  • En terminal, pour connaître le poids d'un fichier :

    Code : Tout sélectionner

    du -h /chemin/vers/fichier
  • Pour connaître le poids d'un dossier et de tous ses sous-répertoires (sur un seul niveau) :

    Code : Tout sélectionner

    du -hd1 /chemin/vers/dossier | sort -hr
Plus d'infos : viewtopic.php?p=157442#p157442
;)
Tour1 (custom)CM MSI Z270 M3 | CPU Intel I7-7700K | CG Nvidia GTX 1080 | RAM 16Go | tripleBoot : Debian 11 | MXlinux 21 | LMint 19.3 | XFCE
Tour2 (custom)CM Gigabyte | CPU AMD Athlon 5200+ | CG Nvidia GTX 560 | RAM 6Go | FreeBSD 12.1 XFCE
Portable1 MSI GF75 Thin 9SC | CPU Intel I7-9750H | CG Nvidia GTX 1650 | RAM 32Go | dualBoot : LMint 20.2 | MXlinux 21 | XFCE
Portable2 MacBook Air A1466 (2015) | CPU Intel I5-5250U | CG Intel HD Graphics 6000 | RAM 8Go | dualBoot : macOS Sierra | MXlinux 21 XFCE
─────( pour une informatique libre ! -membre en stand-by de l' April.org────────────────

Avatar du membre
cyrille
Administrateur du site
Messages : 12403
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Taille réelle d'un fichier sur le disque

Message par cyrille »

?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
arghlub
Administrateur du site
Messages : 10421
Enregistré le : dim. 21 mai 2017 08:19
Localisation : Provence
Contact :

Re: Taille réelle d'un fichier sur le disque

Message par arghlub »

ps :
Christian_B a écrit :
sam. 19 déc. 2020 17:42
Or je m'attendais à 100 KiB avec un en-tête présumé de 4KiB.
les 4kilos sont juste une en-tête, ce n'est pas le poids de ton répertoire/dossier
Tour1 (custom)CM MSI Z270 M3 | CPU Intel I7-7700K | CG Nvidia GTX 1080 | RAM 16Go | tripleBoot : Debian 11 | MXlinux 21 | LMint 19.3 | XFCE
Tour2 (custom)CM Gigabyte | CPU AMD Athlon 5200+ | CG Nvidia GTX 560 | RAM 6Go | FreeBSD 12.1 XFCE
Portable1 MSI GF75 Thin 9SC | CPU Intel I7-9750H | CG Nvidia GTX 1650 | RAM 32Go | dualBoot : LMint 20.2 | MXlinux 21 | XFCE
Portable2 MacBook Air A1466 (2015) | CPU Intel I5-5250U | CG Intel HD Graphics 6000 | RAM 8Go | dualBoot : macOS Sierra | MXlinux 21 XFCE
─────( pour une informatique libre ! -membre en stand-by de l' April.org────────────────

Avatar du membre
arghlub
Administrateur du site
Messages : 10421
Enregistré le : dim. 21 mai 2017 08:19
Localisation : Provence
Contact :

Re: Taille réelle d'un fichier sur le disque

Message par arghlub »

pps :
Christian_B a écrit :
sam. 19 déc. 2020 17:42
Pour un répertoire de 100 fichiers identiques, la taille disque est 9,4 MiB pour Caja et 9604 pour du :? :shock:
Ça serait pas une histoire de conversion MiB → MB : https://www.gbmb.org/mib-to-mb ??? :?
Tour1 (custom)CM MSI Z270 M3 | CPU Intel I7-7700K | CG Nvidia GTX 1080 | RAM 16Go | tripleBoot : Debian 11 | MXlinux 21 | LMint 19.3 | XFCE
Tour2 (custom)CM Gigabyte | CPU AMD Athlon 5200+ | CG Nvidia GTX 560 | RAM 6Go | FreeBSD 12.1 XFCE
Portable1 MSI GF75 Thin 9SC | CPU Intel I7-9750H | CG Nvidia GTX 1650 | RAM 32Go | dualBoot : LMint 20.2 | MXlinux 21 | XFCE
Portable2 MacBook Air A1466 (2015) | CPU Intel I5-5250U | CG Intel HD Graphics 6000 | RAM 8Go | dualBoot : macOS Sierra | MXlinux 21 XFCE
─────( pour une informatique libre ! -membre en stand-by de l' April.org────────────────

Avatar du membre
Christian_B
Messages : 438
Enregistré le : lun. 7 nov. 2016 10:44
Localisation : Paris

Re: Taille réelle d'un fichier sur le disque

Message par Christian_B »

Ce qui me tracasse, ce n'est pas que du réponde sous la forme 96. j'avais compris qu'il s'agissait de K, (i.e. de Kio)
Le problème c'est que les en-têtes ne sont pas pris en compte alors qu'ils prennent de la place sur le disque. Ils ne font certes pas partie du contenu mais bien de l'occupation supplémentaire du disque si on ajoute un fichier.

J'avais toujours cru que la "Taille sur le disque" dans Caja représentait "l'encombrement réel". C'est trompeur. Évidemment, le sachant je peux faire le calcul (selon le nombre de fichiers pour un répertoire).
C'est encore en plus flagrant sur un répertoire de 100 fichiers de 96 kiB du trouve 9604 (KiB, je n'utilise pas -h qui convertit MiB et complique le calcul).
Car du travaille bien en KiB ou MiB quoiqu'il les nomme K et M.
Mon fichier fait 98304 octets, i.e. 98,3 MB ou 96 MiB. Le calcul de du est donc juste (en KiB) si on ne tient pas compte des en-têtes.
Je m'avise qu'une partie de ma surprise venait du chiffre de 9,4 MiB de Caja. En fait en KiB soit 9,4 × 1024 ≃ 9626 Kio, pareil que du à l'arrondi près. Je n'y avais pas réalisé tout se suite.

Par ailleurs les explications du lien stackexchange de cyrille me surprennent. Si on ne compte pas la taille des en-têtes, pourquoi prendrait-on en compte les blocs "indirects" qui ne font pas non plus parti du contenu ?
J'ai fait un répertoire de 100 répertoires de 100 fichiers et du me donne 960404 comme résultat pour ce répertoire. En fait un bloc supplémentaire par répertoire. Sans doute uniquement un bloc (en plus de son en-tête) utilisé pour la liste des fichiers (i.e.de leurs inodes je suppose). Cela ne me paraît pas très cohérent. La commande filefrag que ce soit pour le fichier, pour un gros ou un petit répertoire parmi les précédents, répond toujours : 1 extent found.
Je suppose qu'il faut "faire avec" et ajouter 4KiB × Nombre_de_fichiers.
Linux Mint 21.3 Mate 1.26.0. Carte Gigabyte H81N.
Intel Core i7-4770 : 4x2 cœurs + Xeon E3-1200 (= circuit 4600), sans carte graphique.
Mémoire 8 Go Dual channel, SSD 120Go, HD 2To.
Les armes nucléaires sont interdites depuis le 22 janvier 2021. Y a plus qu'à ...

Avatar du membre
philosophedesetoiles
Messages : 267
Enregistré le : jeu. 31 août 2017 12:26

Re: Taille réelle d'un fichier sur le disque

Message par philosophedesetoiles »

Slt,

La gestion disque par ext4 est complexe.
entetes, inodes, pointeurs etc...
sans compter les algorithmes d'allocation et d'optimisation.
Les tailles des secteurs physiques ne sont pas strictu sensus identiques aux tailles logiques.

Un peu de doc : ( courage ! :lol: )

https://www.it-swarm-eu.dev/fr/hard-dis ... 960881947/

https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout
"De chacun selon ses forces, à chacun selon ses besoins."
Thinkpad L570
8Go Ram 500Go HDD
MXlinux 21.3 “Wildflower”
XFCE4
--
Thinkpad t520
4Go Ram 250Go HDD
Mint 20-3 Mate

Avatar du membre
Christian_B
Messages : 438
Enregistré le : lun. 7 nov. 2016 10:44
Localisation : Paris

Re: Taille réelle d'un fichier sur le disque

Message par Christian_B »

Merci philosophedesetoiles.

En fait la 1ère référence (sur it-swam-eu.dev) n'est pas claire sur la différence entre secteur physique et secteur logique. J'ai trouvé des explications bien plus claires et complètes par exemple sur :
https://www.malekal.com/secteur-cluster ... -que-cest/
D'autre part il y a des erreurs bizarres dans la dernière réponse "512 Ko" et "4 096 Ko (4 Mo)" pour 512 et 4096 octeets.
Par contre ses commandes me redonnent (je l'avais oublié) :
secteur physique = 4096 octets (sur ma SSD système et mon disque principal)
secteur logique = 512 octets (idem).

La 2e référence (sur ext4.wiki.kernel.org) est beaucoup plus pointue, je n'ai pas tout regardé en détail.
Je me demandais quelle était la relation entre secteurs (physiques ou logiques) dans mon cas.
J'ai fait un fichier de 95 Kio (97280 octets). Il occupe exactement la même place (96 Kio) que mon fichier de 96 Kio.
Donc les blocs d'allocation se font bien par 4 Kio. Si je comprends bien on découpe les blocs physique en 8 .. pour rassembler ensuite les 8 morceaux en un bloc. Très efficace !

D'après ces explications il est difficile de connaître exactement l'encombrement disque supplémentaire résultant de la création d'un fichier. Et impossible de le savoir à priori.
Mais il n'y avait rien sur les "en-têtes de fichiers" (nom, dates, etc) dont je m'inquiétais.
J'ai fini par comprendre qu'il n'y avait pas une "en-tête" mais d'une part les dates et autres métadonnées techniques dans l'inode (de 256 octets si j'ai bien compris) et d'autre part le "nom du fichier", associé au lien physique défini dans le répertoire et non au fichier.
Donc j'étais parti sur une idée fausse. Je me baserai sur l'idée que le fichier prend "un peu plus" que la taille annoncée.
Donc le problème est [autant que possible] résolu.
Linux Mint 21.3 Mate 1.26.0. Carte Gigabyte H81N.
Intel Core i7-4770 : 4x2 cœurs + Xeon E3-1200 (= circuit 4600), sans carte graphique.
Mémoire 8 Go Dual channel, SSD 120Go, HD 2To.
Les armes nucléaires sont interdites depuis le 22 janvier 2021. Y a plus qu'à ...

Avatar du membre
alain
Administrateur du site
Messages : 14789
Enregistré le : dim. 11 oct. 2015 23:41
Localisation : Chelles
Contact :

Re: Taille réelle d'un fichier sur le disque

Message par alain »

Bonjour.

Sujet archivé (en lecture seule) car résolu.
Si besoin de rouvrir faire un MP à un membre de l'équipe ;)
PC are like air conditioning, they becomes useless when you open Windows (L.T)
PC1 : CM : ASRock 990FX | CPU: AMD FX 8350-8 cores, 4 GHz | RAM: 16 Go DDR3 1600 MHz | CG: ATI RX 580-8 Go | OS : LM 20.3 Uma Xfce 4.16 | K: 5.4
PC2
:Core2 Quad Q9650 @ 3 GHz | CG: Nvidia GTX 650TI | OS: LM 21.3 Xfce 4.18| K: 6.5
PC3 :Core i7-2600 @ 3,5 GHz | CG: ATI HD 4650 | OS: Emmade5 Xfce 4.18.0 | K: 6.1
PC4 : AMD Ryzen 5 3500X 4GHz | CG: GTX 970 | Ram : 8GB |OS : Debian 10.5 | K: 5.10
In a world without walls and fences, who needs windows and gates?

Répondre