Warum unterscheiden sich Partitionsgröße und df-Ausgabe?

16

Ich habe eine Partition / dev / sda1.
Das Festplatten-Dienstprogramm hat eine Kapazität von 154 GB.
df -h zeigt

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

Warum sind die Ergebnisse unterschiedlich? Wo sind die fehlenden 31 GB?

xralf
quelle
3
Bitte poste die Ausgabe von fdisk -l /dev/sda(als root ausführen).
Gilles 'SO- hör auf böse zu sein'
2
Welches Dateisystem verwenden Sie? Wenn es ext2 / 3/4 ist, können Sie tune2fs -l /dev/sda1es untersuchen. Schauen Sie sich die Blockanzahl und Blockgröße an und multiplizieren Sie sie, um die Dateisystemgröße zu erhalten. Auch fdisk -s /dev/sda1um die Partitionsgröße in 1k-Blöcken zu erhalten. Multiplizieren Sie dies mit 1024, um die Größe in Byte zu erhalten. Diese Zahl sollte nur geringfügig größer sein als das Dateisystem. Auf meiner 40 GB ext4-Partition sind sie 3072 Byte größer. Wenn Ihr Dateisystem merkwürdig kleiner ist, können Sie versuchen, die Größe zu ändern. Verwenden Sie für ext2 / 3/4 resize2fs /dev/sda1. Sie können dies tun, während Sie den Computer normal verwenden.
Pinguin359
@ Gilles sudo fdisk -l / dev / sda zeigt (ich poste nur die sda1-Partition, weil andere uns nicht interessieren). Gerätestart Start End Blocks ID System / dev / sda1 1 18706 150253568 83 Linux
xralf
@ penguin359 Ich habe ext4-Dateisystem. Blockanzahl = 32668162, Blockgröße = 4096, 32668162 * 4096 = 133808791552, fdisk -s / dev / sda1 * 1024 = 153859653632. Es scheint merkwürdig kleiner zu sein. Kann ich die Größe ohne Datenverlust ändern? Was hat dazu geführt, dass es kleiner ist?
Xralf
@xralf: Größenänderung sollte sicher sein, ich habe dabei nie Daten verloren. Es ist möglicherweise etwas sicherer, dies auf einer nicht gemounteten Partition zu tun, z. B. mit einer Live-CD. Sichern Sie sich jedoch zuerst eine Sicherungskopie. Holen Sie sich immer eine Sicherungskopie, bevor Sie wichtige Systemadministrationsaufgaben ausführen.
Faheem Mitha

Antworten:

25

Ein Grund dafür, dass die Partitionskapazitäten unterschiedlich sein können, ist, dass für den Fall, dass die Partitionen voll werden, etwas Platz für root reserviert ist. Wenn für root kein Speicherplatz reserviert ist und die Partitionen voll werden, kann das System nicht funktionieren. Dieser Unterschied liegt jedoch normalerweise in der Größenordnung von 1%, sodass der Unterschied in Ihrem Fall nicht erklärt wird. Von der Manpage für df

Wenn ein Argument der absolute Dateiname eines Plattengeräteknotens ist, der ein bereitgestelltes Dateisystem enthält, zeigt df den verfügbaren Speicherplatz auf diesem Dateisystem und nicht auf dem Dateisystem, das den Geräteknoten enthält (der immer das Root-Dateisystem ist).

Df zeigt also wirklich die Größe Ihres Dateisystems an, was normalerweise der Größe des Geräts entspricht. In Ihrem Fall trifft dies jedoch möglicherweise nicht zu. Erstreckt sich Ihr Dateisystem über die gesamte Partition?

Tut

resize2fs /dev/sda1

einen Unterschied machen? Dieser Befehl versucht, Ihr Dateisystem so zu vergrößern, dass es die gesamte Partition abdeckt. Stellen Sie jedoch sicher, dass Sie ein Backup haben, wenn Sie dies versuchen.

Faheem Mitha
quelle
>> erstreckt sich Ihr Dateisystem über die gesamte Partition? Ich glaube schon. Es ist ext4. <br> Was soll ich sichern? Ich habe keine sekundäre Festplatte, um ein größeres Backup zu erstellen.
Xralf
@xralf: (Ok, dies ist in Bezug auf diese Frage nicht relevant, aber ...) Wenn Sie keine Sicherung haben, richten Sie sofort eine ein. Die einzige Alternative eines guten Backups (und es ist keine gute Alternative) ist die systematische Verwendung eines verteilten Versionskontrollsystems und das Verschieben an einen entfernten Ort. Aber natürlich können Sie nicht alles unter Versionskontrolle stellen, z. Medien. Bitte entschuldigen Sie, wenn ich geschäftig bin.
Faheem Mitha
@xralf: Ich würde deine Ausgabeergebnisse in der Frage selbst posten, es ist einfacher zu sehen und zu lesen.
Faheem Mitha
resize2fs ist ein ziemlich sicherer Betrieb, es ist kein Backup erforderlich (wenn Sie über eine stabile Stromversorgung verfügen und stabile Software verwenden). Übrigens beträgt die voreingestellte Anzahl reservierter Blöcke für ext * -Dateisysteme 5%.
rvs
@rvs: Nicht einverstanden mit erneuter Sicherung. Sie haben recht mit den 5%, die zumindest auf Debian liegen. Ich habe mich falsch erinnert. Aber ich weiß nicht, ob das für alle Distributionen Standard ist.
Faheem Mitha
5

Der Hauptunterschied besteht darin, dass einige Dinge sagen, dass 1 Kilobyte 1000 Bytes ist, und andere sagen, dass 1 Kilobyte 1024 Bytes ist.

Gnome Disk Utility zeigt die Kapazität mit 1 Kilobyte = 1000 Bytes an, da die Festplattenhersteller die Festplattengrößen auf diese Weise beschreiben. Dies bedeutet, dass Ihre Festplattenkapazität nahezu 154.000.000.000 Byte beträgt .

Auf der anderen Seite sagen die meisten Betriebssysteme 1 Kilobyte = 1024 Bytes. Alle Werkzeuge mögen dfund fdiskverwenden diese Konvention. Also 154.000.000.000 Bytes / 1024/1024/1024 = 143,4 GB .

Wie jlliagre zu Recht betont (und Gilles impliziert, wenn er nach Ihrer fdiskAusgabe fragt ), gibt das Festplatten-Dienstprogramm die Größe Ihrer gesamten Festplatte an. Ist /dev/sda1aber eine einzelne Partition auf Ihrer Festplatte. Auf Ihrer Festplatte befinden sich möglicherweise einige andere Partitionen, z. B. eine Partition mit 4 bis 8 GB für den Austausch (auch als virtueller Speicher bezeichnet) und eine Startpartition mit normalerweise etwa 100 MB.

Sie haben die Ausgabe von fdisk -l /dev/sdanicht gepostet, nehmen wir also an, dass Ihre Swap-Partition 8 GB beträgt. Jetzt haben wir 135 GB .

Dann gibt es einige andere Dinge, die zum Unterschied beitragen.

Das Dateisystem verwendet beispielsweise einen Teil der Festplattenpartition für Metadaten. Metadaten sind Dinge wie Dateinamen, Dateiberechtigungen, welche Teile der Partition zu welchen Dateien gehören und welche Teile der Partition frei sind. Auf meinem System werden ungefähr 2% der Partition dafür verwendet. Angenommen, Ihre ist ähnlich, würde dies den freien Speicherplatz auf ungefähr 132 GB reduzieren .

Das Dateisystem kann auch Speicherplatz reservieren, der nur vom Root-Benutzer verwendet werden kann. Auf meinem System sind es 5% der Partition, was in Ihrem Fall eine Gesamtkapazität von ca. 125 GB bedeutet .

Die genauen Zahlen hängen davon ab, ob Sie ext2, ext3, ext4, fat, ntfs, btrfs usw. verwenden und welche Einstellungen beim Formatieren der Partition verwendet wurden.

Wenn Sie ext2 oder ext3 verwenden, sudo tune2fs -l /dev/sda1können Sie besser nachvollziehen, wohin der Speicherplatz führt.

Mikel
quelle
Das Festplatten-Dienstprogramm zeigt genau die Kapazität von 154 GB (153.859.653.632 Byte) an.
Xralf
>> sudo tune2fs -l / dev / sda1 << Welche Parameter sagen mir, wohin der Raum geht?
Xralf
2

Wahrscheinlich werden sie von Inodes verwendet. Einige Beträge können von MBR verbraucht werden.

balki
quelle
1
Der MBR wird nicht wie in Zylinder 0 angezeigt (auch nicht in der ersten Partition, die häufig im Sektor 2048 beginnt). Es gibt jedoch Kopien des Superblocks. Trotzdem sind es die Inodes. Siehe auch: unix.stackexchange.com/questions/13547/… und die Befehle "lsblk / dev / sdX" und "dumpe2fs -h / dev / sdX"
David Tonhofer
1

sda1 ist nicht Ihre gesamte Festplatte, sondern ihre erste primäre Partition. Möglicherweise haben Sie andere nicht gemountete Partitionen erstellt, die in der df-Ausgabe nicht angezeigt werden, oder Sie haben einfach sda1, das aus irgendeinem Grund nicht den gesamten nutzbaren Speicherplatz ausfüllt, oder das Dateisystem hat nicht den gesamten verfügbaren Speicherplatz in seiner Partition verwendet.

fdisk -l wird Ihnen sagen, wie Ihre Partitionstabelle aussieht.

jlliagre
quelle
Natürlich. Wir sprechen nur über die Partition / dev / sda1, nicht über die gesamte Festplatte.
Xralf
Das war aus Ihrer Frage nicht ersichtlich, da Sie auf ein Festplatten-Dienstprogramm verweisen, ohne dessen Ausgabe anzuzeigen. Sie sollten es bearbeiten, um dies zu verdeutlichen. Es wäre auch nützlich zu sagen, wie Sie das Dateisystem / erstellt haben.
Juli
Der relevante Teil der Ausgabe des Festplatten-Dienstprogramms ist "Kapazität der sda1-Partition = 154 GB".
Xralf
Bitte bearbeiten Sie Ihre ursprüngliche Frage, um dies zu verdeutlichen.
Juli