Pourquoi la taille de la partition et la sortie df sont-elles différentes?

16

J'ai une partition / dev / sda1.
L'utilitaire de disque montre qu'il a une capacité de 154 Go.
df -h montre

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             123G  104G   14G  89% /
devtmpfs             1006M  280K 1006M   1% /dev
none                 1007M  276K 1006M   1% /dev/shm
none                 1007M  216K 1006M   1% /var/run
none                 1007M     0 1007M   0% /var/lock
none                 1007M     0 1007M   0% /lib/init/rw

Pourquoi les résultats sont-ils différents? Où sont les 31 Go manquants?

xralf
la source
3
Veuillez poster la sortie de fdisk -l /dev/sda(exécuter en tant que root).
Gilles 'SO- arrête d'être méchant'
2
Quel système de fichiers utilisez-vous? Si c'est ext2 / 3/4, vous pouvez l'utiliser tune2fs -l /dev/sda1pour l'examiner. Regardez le nombre de blocs et la taille des blocs et multipliez-les pour obtenir la taille du système de fichiers. Aussi, fdisk -s /dev/sda1pour obtenir la taille de la partition en blocs de 1k. Multipliez cela par 1024 pour obtenir la taille en octets. Ce nombre ne devrait être que légèrement supérieur au système de fichiers. Sur ma partition ext4 de 40 Go, c'est 3072 octets de plus. Si votre système de fichiers est étrangement plus petit, vous pouvez essayer de le redimensionner. Pour ext2 / 3/4, utilisez resize2fs /dev/sda1. Vous pouvez le faire en utilisant normalement l'ordinateur.
penguin359
@Gilles sudo fdisk -l / dev / sda montre (je ne poste que la partition sda1, car les autres ne nous intéressent pas). ID de blocs de début de démarrage de périphérique System / dev / sda1 1 18706 150253568 83 Linux
xralf
@ penguin359 J'ai un système de fichiers ext4. nombre de blocs = 32668162, taille de bloc = 4096, 32668162 * 4096 = 133808791552, fdisk -s / dev / sda1 * 1024 = 153859653632. Il semble être étrangement plus petit. Puis-je le redimensionner sans perte de données? Qu'est-ce qui a fait qu'il est plus petit?
xralf
@xralf: le redimensionnement devrait être sûr, je n'ai jamais perdu de données en le faisant. Il pourrait être légèrement plus sûr de le faire sur une partition non montée, avec par exemple un cd live. Mais encore, procurez-vous d'abord une sauvegarde. Obtenez toujours une sauvegarde avant de faire des tâches d'administration sys majeures.
Faheem Mitha

Réponses:

25

L'une des raisons pour lesquelles les capacités de partition peuvent différer est qu'un certain espace est réservé à root, dans le cas où les partitions sont pleines. S'il n'y a pas d'espace réservé pour root et que les partitions sont pleines, le système ne peut pas fonctionner. Cependant, cette différence est généralement de l'ordre de 1%, ce qui n'explique pas la différence dans votre cas. Depuis la page de manuel de df

Si un argument est le nom de fichier absolu d'un nœud de périphérique de disque contenant un système de fichiers monté, df affiche l'espace disponible sur ce système de fichiers plutôt que sur le système de fichiers contenant le nœud de périphérique (qui est toujours le système de fichiers racine).

Donc, df montre vraiment la taille de votre système de fichiers, qui est généralement la taille de l'appareil, mais cela peut ne pas être vrai dans votre cas. Votre système de fichiers s'étend-il sur l'ensemble de votre partition?

Est-ce que

resize2fs /dev/sda1

faire une différence? Cette commande tente d'augmenter votre système de fichiers pour couvrir toute la partition. Mais assurez-vous d'avoir une sauvegarde si vous essayez cela.

Faheem Mitha
la source
>> Votre système de fichiers s'étend-il sur toute la partition? Je le pense. C'est ext4. <br> Que dois-je sauvegarder? Je n'ai pas de disque secondaire pour effectuer une sauvegarde plus importante.
xralf
@xralf: (Ok, c'est hors sujet par rapport à cette question, mais ...) Si vous n'avez pas de sauvegarde, installez-en une immédiatement. La seule alternative d'une bonne sauvegarde (et ce n'est pas une bonne alternative) est l'utilisation systématique d'un système de contrôle de version distribué et le pousser vers un emplacement distant. Mais bien sûr, vous ne pouvez pas tout mettre sous contrôle de version, par exemple. médias. Veuillez m'excuser si je suis occupé.
Faheem Mitha
@xralf: Je publierais vos résultats de sortie dans la question elle-même, c'est plus facile à voir et à lire.
Faheem Mitha
resize2fs est un fonctionnement assez sûr, il n'est pas nécessaire de le sauvegarder (si vous avez une alimentation stable et que vous utilisez un logiciel stable). BTW, le nombre de blocs réservés par défaut est de 5% pour les systèmes de fichiers ext *.
rvs
@rvs: désaccord sur la sauvegarde. Vous avez raison sur les 5% au moins sur Debian. Je me souvenais mal. Mais je ne sais pas si c'est standard dans toutes les distributions.
Faheem Mitha
5

La principale différence est que certaines choses disent que 1 kilo-octet équivaut à 1 000 octets et que d'autres disent que 1 kilo-octet équivaut à 1 024 octets.

Gnome Disk Utility affiche la capacité en utilisant 1 kilo-octet = 1000 octets, car les fabricants de disques décrivent les tailles de disque de cette façon. Cela signifie que la capacité de votre disque est proche de 154 000 000 000 octets .

D'un autre côté, la plupart des systèmes d'exploitation disent 1 kilo-octet = 1024 octets. Tous les outils aiment dfet fdiskutilisent cette convention. Donc 154 000 000 000 octets / 1024/1024/1024 = 143,4 Go .

Comme jlliagre le fait remarquer à juste titre (et Gilles l'indique en demandant votre fdisksortie), l'utilitaire de disque vous indique la taille de votre disque dur entier. Mais /dev/sda1est une seule partition sur votre disque dur. Par exemple, votre disque dur contient probablement d'autres partitions, comme une partition de 4 à 8 Go pour l'échange (également connue sous le nom de mémoire virtuelle) et une partition de démarrage d'environ 100 Mo.

Vous n'avez pas publié la sortie de fdisk -l /dev/sda, supposons donc que votre partition de swap soit de 8 Go. Nous en sommes maintenant à 135 Go .

Ensuite, il y a d'autres choses qui contribuent à la différence.

Par exemple, le système de fichiers utilise une partie de la partition de disque pour les métadonnées. Les métadonnées sont des choses comme les noms de fichiers, les autorisations de fichiers, les parties de la partition qui appartiennent à quels fichiers et les parties de la partition qui sont libres. Sur mon système, environ 2% de la partition est utilisée pour cela. En supposant que le vôtre soit similaire, cela ramènerait l'espace libre à environ 132 Go .

Le système de fichiers peut également réserver de l'espace qui ne peut être utilisé que par l'utilisateur root. Sur mon système, c'est 5% de la partition, donc dans votre cas, cela signifierait une capacité totale d'environ 125 Go .

Les nombres exacts varient selon que vous utilisez ext2, ext3, ext4, fat, ntfs, btrfs, etc. et quels paramètres ont été utilisés lors du formatage de la partition.

Si vous utilisez ext2 ou ext3, vous sudo tune2fs -l /dev/sda1pouvez comprendre où va l’espace.

Mikel
la source
L'utilitaire de disque affiche exactement la capacité 154 Go (153 859 653 632 octets).
xralf
>> sudo tune2fs -l / dev / sda1 << Quels paramètres me disent où va l'espace?
xralf
2

Ils sont probablement utilisés par des inodes. Une certaine quantité peut être utilisée par MBR.

balki
la source
1
Le MBR n'apparaît pas tel qu'il est dans le cylindre 0 (pas même dans la première partition, qui commence souvent au secteur 2048). Cependant, il existe des copies du superbloc. Pourtant, ce sont les inodes. Voir aussi: unix.stackexchange.com/questions/13547/… et les commandes "lsblk / dev / sdX" et "dumpe2fs -h / dev / sdX"
David Tonhofer
1

sda1 n'est pas votre disque entier mais sa première partition principale. Vous avez peut-être créé d'autres partitions non montées qui n'apparaissent pas dans la sortie df ou simplement que sda1 ne remplit pas tout l'espace utilisable pour une raison quelconque ou que le système de fichiers n'utilise pas tout l'espace disponible dans sa partition.

fdisk -l vous dira à quoi ressemble votre table de partition.

jlliagre
la source
Bien sûr. Nous parlons uniquement de la partition / dev / sda1, pas du disque entier.
xralf
Ce n'était pas évident à partir de votre question car vous faites référence à un utilitaire de disque sans afficher sa sortie. Vous devez le modifier pour que cela soit clair. Dire comment vous avez créé le système de fichiers / serait également utile.
jlliagre
La partie pertinente de la sortie de l'utilitaire de disque est "la capacité de la partition sda1 = 154 Go".
xralf
Veuillez modifier votre question d'origine pour que cela soit clair.
jlliagre