Wie kann eine Partition voll sein, wenn du sie nicht zeigt?

2143
Jeroen Wiert Pluimers

Auf einem meiner Systeme ist die Root-Partition voll:

snip:˜ # df -h Filesystem Size Used Avail Use% Mounted on rootfs 11G 9.3G 0 100% / devtmpfs 744M 36K 744M 1% /dev tmpfs 751M 0 751M 0% /dev/shm tmpfs 751M 296K 751M 1% /run /dev/sda7 11G 9.3G 0 100% / tmpfs 751M 0 751M 0% /sys/fs/cgroup tmpfs 751M 296K 751M 1% /var/lock tmpfs 751M 296K 751M 1% /var/run tmpfs 751M 0 751M 0% /media /dev/sda5 151M 39M 104M 28% /boot /dev/sda8 4.4G 207M 3.3G 6% /home 

Zeigt dujedoch nicht etwa 9,3 Gigabyte der Nutzung an:

snip:~ # du /* -s -h 5.2M /bin 34M /boot 36K /dev 22M /etc 199M /home 154M /lib 20M /lib64 0 /media 0 /mnt 0 /opt 0 /proc 7.9M /root 288K /run 7.1M /sbin 0 /selinux 756K /srv 0 /sys 0 /tmp 1.6G /usr 1.1G /var 

Es macht nur etwa 3 Gigabyte aus.

  • Wie kann das sein?
  • Wo sollte ich nach den verbleibenden 6 Gigabyte der verwendeten Gigabytes suchen?

Ich verwende openSUSE 12.2:

snip:~ # cat /etc/SuSE-release openSUSE 12.2 (x86_64) VERSION = 12.2 CODENAME = Mantis 
1
Haben Sie die Verknüpfung von Dateien aufgehoben? (z. B. Löschen / Löschen einer Protokolldatei, während sie noch verwendet wird. Entfernen Sie sie also aus der Verzeichnisliste, während sie noch Speicherplatz belegt?) Hennes vor 11 Jahren 1
Andere Idee: Haben Sie Speicherplatz in einem Verzeichnis unter / verwendet und dann ein weiteres Verzeichnis darüber angehängt, wodurch die alten Dateien maskiert wurden? Hennes vor 11 Jahren 0
@ Henes nein und nein. Ich bin verblüfft: Ich habe noch nie zuvor etwas Ähnliches auf einem Linux-System gesehen. Jeroen Wiert Pluimers vor 11 Jahren 0
Lass uns Nuance den vorherigen Kommentar @Hennes: Ich habe es nicht bewusst gemacht. Kann es ein Subsystem geben, das dies getan haben könnte? Jeroen Wiert Pluimers vor 11 Jahren 0
Es kann leicht getestet werden, indem Sie einen Neustart durchführen (um nicht verknüpfte Dateien freizugeben) und anschließend in den Einzelbenutzermodus starten. Die zweite kann auch auf andere Weise ausgeführt werden, z. B. `tellinit 1`, vielleicht` shutdown` ohne -h -r (nicht sicher über Linux, BSD, das Sie zum Runlevel 1 bringt), `umount -a`. Oder einfach nur schauen, was montiert ist, und das testen. Hennes vor 11 Jahren 0
Deine Reittiere "versteckt" einfach eine Menge Dinge unter ihnen. Mat vor 11 Jahren 0
Ich werde im Einzelbenutzermodus booten und sehen, was los ist. Jeroen Wiert Pluimers vor 11 Jahren 0
@Hennes Ich habe ein Rettungssystem von CD gebootet, da es im Einzelbenutzermodus nicht ordnungsgemäß angezeigt würde, da root voll ist. Vom Rettungssystem aus habe ich `mount / dev / sda7 / mnt` gemacht, dann` chroot / mnt` und dann `du -s -h *`: praktisch dasselbe Ergebnis: Die `du'-Ergebnisse summieren sich nicht auf das `df` Ergebnis. Jeroen Wiert Pluimers vor 11 Jahren 1
Glück mit einer fsck (vor der Montage der RW)? Fühlen Sie sich frei, dies dem Beitrag hinzuzufügen, damit wir die Kommentare löschen können. Hennes vor 11 Jahren 2
Ich habe es in den openSUSE-Foren gefunden: Es verwendet Btrfs und Snapshots. Die Schnappschüsse beanspruchen also viel Platz. Und ich muss einen Weg finden, alte Schnappschüsse zu löschen. https://forums.opensuse.org/deutsch/get-technical-help-here/install-boot-login/490199-how-can-partition-full-if-du-does-not-show.html#post2583491 Jeroen Wiert Pluimers vor 11 Jahren 0
Ich glaube, ich habe es gefunden: http://www.nrtm.org/index.php/2012/03/13/die-freunde-von-btrfs-and-opensuse-or-no-space-left-on-device/ Jeroen Wiert Pluimers vor 11 Jahren 0
@Hennes hat es gefunden und eine Antwort gepostet. Jeroen Wiert Pluimers vor 11 Jahren 0

1 Antwort auf die Frage

1
Jeroen Wiert Pluimers

Zunächst einige Hintergrundinformationen

Wenn Sie unter http://www.opensuse.org/de/ btrfs in Ihrem Root-Dateisystem haben, werden zwei Dinge passieren:

  1. openSUSE beginnt automatisch mit Snapper, um Snapshots Ihres Root-Dateisystems zu erstellen.
  2. Die Momentaufnahmen belegen den Speicherplatz, den du nicht anzeigt

Dies bedeutet, dass der Festplattenspeicher früher ausgehen wird als erwartet. Daher wird empfohlen (nicht in den Dokumenten) , Partitionen zu erstellen, die Schnappschüsse verwenden, die doppelt so groß sind wie normalerweise .

Ich habe keine Möglichkeit gefunden, die Größe pro Momentaufnahme oder die Gesamtgröße aller Momentaufnahmen anzuzeigen.

Sie müssen also Ihren freien Speicherplatz mit dfoder mit diesem btrfs-spezifischen Befehl für das root- /Dateisystem überwachen :

btrfs filesystem df / 

Snapper-Snapshots bereinigen

Dank NerdyRoom ™ »Die Freuden von btrfs und OpenSuSE - oder„ Kein Platz mehr auf dem Gerät “. Ich habe herausgefunden, wie Sie am einfachsten ältere Snapshots löschen können, die Sie möglicherweise löschen möchten (und Sie müssen, wenn der Speicherplatz knapp wird).

Starten snapper listSie zuerst die Sequenznummer der vorhandenen Snapshots.

Wählen Sie aus dieser Liste eine angemessene untere und obere Grenze der zu löschenden Snapshots aus.

Dann führe dies mit der unteren ( 1) und oberen ( 3656) - Grenze aus:

for i in `seq 1 3656`; do snapper delete $i; done 

20161212 bearbeiten:

Ein anonymer Benutzer schlug eine Bearbeitung vor, um dies zu verkürzen. Ich bin damit einverstanden, wie die oben kürzer als je getan werden Schnapper Manpage :

snapper delete 1-3656