User Tools

Site Tools


Sidebar

software-basic:taille-correcte-dossiers-dans-différents-outils-sous-linux

01) 02.18
[REFERENCE]

Affichage correct des tailles des fichiers, dossiers et partitions sous Linux (en MiB et MB).

INTRODUCTION

Bonjour,

J'utilise Linux Mint 18.2. J'ai constaté que Linux Mint avec ses différents outils de traitement de dossiers et de partitions affiche les tailles de ces éléments de manière non-cohérente et parfois totalement fausse.
En partant de la base, il y a les systèmes Linux et Unix, sur lesquels est construit Ubuntu, sur lesquels sont basés Linux Mint, Cinnamon et Caja.
Tous ces systèmes utilisent des affichages de tailles de partitions et dossiers différents et pas toujours corrects, voire parfois complètement faux.
Il me semble nécessaire de faire une MISE AU POINT CONCERNANT L'AFFICHAGE DES TAILLES DE PARTITIONS CORRECTES et subsidiairement de dossiers corrects.
Ceci est basé sur des tests et des expériences en traitant un grand nombre de données et de dossiers.
Article demandant a être augmenté prochainement. Vos commentaires sont les bienvenus.

Légendes :
GB unités SI (puissances 1000)
GiB unité Gibibyte (puissances 1024) voir wikipedia Mebibyte (MiB) (= GBi ici)

PROBLEM (PBM)
Taille des partitions affichée par 'System monitor' pas correcte
Utiliser Gparted pour savoir la taille exactement, fdisk -l <dev> ou autre commande.

TAILLE CORRECTE DES PARTITIONS

COMMANDES affichant les partitions et leurs tailles correctes :
List disk and partitions, along with their size
----------------------------------------

fdisk			manip disk part.table					*** le plus utile et le plus simple, LENT
fdisk -l <dev>
-l		list

cfdisk			display and manip. disk part.table		inutile
cfdisk <dev>

partx			tell kernel presence of disk part.		** pas mal, limité
partx -s <dev>
-s --show		show

lsblk			list block devices (disks), recognized by sysfs, udev	*** très utile également, RAPIDE
lsblk -x NAME -p <dev>
-l		list
-x		sort by
-p		print full path

RESULTATS

GUI Gparted		Fait office de référence, fait en général tout juste
sur /dev/sda
DEV				TYPE		SIZE (GBi)		USED		UNUSED
/dev/sda1		ntfs		16.80
/dev/sda2		ext4		15.63
/dev/sda3		NA
/dev/sda4		extended	42.08
/dev/sda5		linux-swap	 1.91
/dev/sda6		ext4		28.00
/dev/sda7		ext4		 6.67
/dev/sda8		ext4		 5.50
--------------------
PC2-RJ skyward # fdisk -l
Disk /dev/sda: 74,5 GiB, 80000000000 bytes, 156250000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x80264df8

Device     Boot     Start       End  Sectors  Size Id Type
/dev/sda1              63  35225599 35225537 16,8G  7 HPFS/NTFS/exFAT
/dev/sda2        35225600  68001791 32776192 15,6G 83 Linux
/dev/sda4        68003838 156249677 88245840 42,1G  5 Extended
/dev/sda5        68003840  72001535  3997696  1,9G 82 Linux swap / Solaris
/dev/sda6        72003584 130723839 58720256   28G 83 Linux
/dev/sda7  *    130725888 144713727 13987840  6,7G 83 Linux
/dev/sda8       144715776 156248063 11532288  5,5G 83 Linux

Disk /dev/sdb: 1,8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xaf43838b

Device     Boot      Start        End    Sectors  Size Id Type
/dev/sdb1             2048   41945087   41943040   20G  7 HPFS/NTFS/exFAT
/dev/sdb2         41945088   83888127   41943040   20G 83 Linux
/dev/sdb3         83888128  115345407   31457280   15G 83 Linux
/dev/sdb4        115345408 3907028991 3791683584  1,8T  5 Extended
/dev/sdb5        115347456  146804735   31457280   15G 83 Linux
/dev/sdb6        146806784  176166911   29360128   14G 83 Linux
/dev/sdb7        176168960  209723391   33554432   16G 82 Linux swap / Solaris
/dev/sdb8        209725440 1258301439 1048576000  500G 83 Linux
/dev/sdb9       1258303488 2139107327  880803840  420G 83 Linux
/dev/sdb10      2306881536 3907028991 1600147456  763G  7 HPFS/NTFS/exFAT
/dev/sdb11      2139109376 2306879487  167770112   80G 83 Linux

Disk /dev/sdc: 1,8 TiB, 2000365289472 bytes, 3906963456 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xbccad455

Device     Boot      Start        End    Sectors  Size Id Type
/dev/sdc1             2048 2097154047 2097152000 1000G 83 Linux
/dev/sdc2       2273314816 3906963455 1633648640  779G  7 HPFS/NTFS/exFAT
/dev/sdc3       2097154048 2273314815  176160768   84G 83 Linux

Disk /dev/sdd: 931,5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x30cc3e7b

Device     Boot Start        End    Sectors   Size Id Type
/dev/sdd1          63 1953523711 1953523649 931,5G 83 Linux

--------------------
PC2-RJ skyward # lsblk -x NAME -p
NAME       MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
/dev/fd0     2:0    1     4K  0 disk 
/dev/sda     8:0    0  74,5G  0 disk 
/dev/sda1    8:1    0  16,8G  0 part 
/dev/sda2    8:2    0  15,6G  0 part /
/dev/sda4    8:4    0     1K  0 part 
/dev/sda5    8:5    0   1,9G  0 part 
/dev/sda6    8:6    0    28G  0 part /home
/dev/sda7    8:7    0   6,7G  0 part 
/dev/sda8    8:8    0   5,5G  0 part 
/dev/sdb     8:16   0   1,8T  0 disk 
/dev/sdb1    8:17   0    20G  0 part 
/dev/sdb10   8:26   0   763G  0 part /media/skyward/intHD2-2TB-part10
/dev/sdb11   8:27   0    80G  0 part /media/skyward/intHD2-2TB-par11
/dev/sdb2    8:18   0    20G  0 part 
/dev/sdb3    8:19   0    15G  0 part /media/skyward/intHD2-2TB-p3-L2
/dev/sdb4    8:20   0     1K  0 part 
/dev/sdb5    8:21   0    15G  0 part 
/dev/sdb6    8:22   0    14G  0 part 
/dev/sdb7    8:23   0    16G  0 part [SWAP]
/dev/sdb8    8:24   0   500G  0 part /media/skyward/intHD2-2TB-part8
/dev/sdb9    8:25   0   420G  0 part /media/skyward/intHD2-2TB-part9
/dev/sdc     8:32   0   1,8T  0 disk 
/dev/sdc1    8:33   0  1000G  0 part /media/skyward/extHD2-2TB-part1
/dev/sdc2    8:34   0   779G  0 part /media/skyward/extHD2-2TB-part2
/dev/sdc3    8:35   0    84G  0 part /media/skyward/extHD2-2TB-part3
/dev/sdd     8:48   0 931,5G  0 disk 
/dev/sdd1    8:49   0 931,5G  0 part /media/skyward/exthd1-1TB-part1
/dev/sr0    11:0    1  1024M  0 rom  

METHODE

Voir wikipedia pour théorie de base Mebibyte (MiB)
Connaître la taille réelle d'un dossier ou d'une partition.
Lire les différents manuels des outils Linux.
Etablir un outil qui est fiable dans son expression des grandeurs mesurées : “ls” et “du” de la CLI Linux.
Tester et comparer tous les autres outils Linux sur cette base-là.
En tirer ses conclusions sur quel outil affiche les tailles correctement ou non.

CONCLUSIONS

CLI tools

ls (CLI)
du (CLI)

fait tout juste, unités en puissances de 2 (1024) : MiB, GiB, etc. "M" = MiB et "G" = GiB. "MB" = MB (1000) et "GB" = GB (1000).
<code>
Otherwise, units default to 1024 bytes.
The SIZE argument is an integer and optional unit (example: 10K is 10*1024).  Units are K,M,G,T,P,E,Z,Y (powers of 1024) or KB,MB,... (powers of 1000).
</code>

fdisk- l

fait juste, affichage des tailles correcte, en GBi (1024), arrondit 1 décimale, y compris partitions 'extended', donne beaucoup de détails, mais LENT

lsblk -x NAME -p

fait juste, affichage des tailles correcte, en GBi (1024), arrondit 1 décimale, fait faux partitions 'extended', peut donner plus de détails, RAPIDE, ce qui fait son avantage

GUI tools

Gparted (GUI)

fait tout juste, affichage des tailles correct, en GBi (1024), arrondit 2 décimales, LENT, unmount et remonte les partitions avant/après usage

System monitor (GUI)

fait pas très juste en GBi, fait faux en GBi d'un facteur 0.98. Convertit systématiquement toute taille trouvée dans le système (initialement en GBi) par un facteur 98% = 0.98 =~1000/1024 sauf pour fs=ntfs. Je ne sais pas pourquoi. Prétend afficher tailles en GBi mais en fait c'est faux d'un facteur [0.977, 0.984]=~ 0.98 (testé sur quatre partitions => 80 GBi). 

Interprétation : Il prend certainement une taille trouvée quelque part dans le système, en hypothéquant que l'unité est en GB (1000), les convertit en GBi (1024) automatiquement. Or le problème c'est qu'il fait manifestement une conversion en GBi de trop. Les tailles dans le système, en Console, sont DEJA en GBi. Il ne fait cette erreur que sur fs=linux, ext4, etc., et ne fait pas cette erreur sur fs=ntfs. blocksize, fonctionnement du fs ?
Affichage des tailles FAUSSES

Disk partition utilities de Linux Mint (GUI) (System > Preference > Hardware > Disks)

fait pas du tout juste en GBi, fait juste seulement EN AFFICHANT TOUT EN GB (1000)

Caja (dossiers) (GUI)

Faux, ne compte pas le nombre d'items juste, ni taille totale juste. Prétendument tout en GBi.

AMELIORATION NECESSAIRES

System monitor

Afficher les tailles partitions justes (en GBi) !

Caja

Calculer le nombre d'items juste, taille des dossiers justes (en GBi).
software-basic/taille-correcte-dossiers-dans-différents-outils-sous-linux.txt · Last modified: 2018/04/18 05:52 by 88.189.96.103