Warum meldet tar nicht genügend Speicherplatz, wenn noch genügend Speicherplatz vorhanden ist?

7

Auf einem Ubuntu 14.04-System habe ich versucht, ein Teerarchiv zu extrahieren:

/media/ntfs-drive/target-dir$ tar --extract -v --file ../source-dir/data.tar

Nach dem Extrahieren einiger Dateien meldet tar, dass nicht genügend Speicherplatz vorhanden ist, während in Wirklichkeit genügend Speicherplatz vorhanden ist. Hier ist die Ausgabe von df -mfür das betreffende Gerät, aus der hervorgeht, dass noch ca. 86 GByte freier Speicherplatz übrig sind:

/dev/sdb5         226966  139075     87892   62% /media/ntfs-drive

Außerdem werden nur 2% der Inodes des Laufwerks wie folgt verwendet df -i:

/dev/sdb5      91114956  1086160 90028796    2% /media/ntfs-drive

Einige weitere Informationen, die relevant sein könnten:

  • Sowohl das Quell- als auch das Zielverzeichnis befinden sich auf demselben NTFS-Laufwerk
  • Das Archiv data.tarenthält eine große Anzahl kleiner Dateien
  • Meine Root-Partition ist fast voll (1,4 GByte frei)
  • mount sagt, dass das entsprechende Laufwerk mit Optionen montiert wurde rw,nosuid,nodev,allow_other,default_permissions,blksize=4096

Was könnte der Grund für die Fehlermeldung von tar sein und wie kann ich dieses Problem lösen?

Aktualisieren

Es scheint, dass dies kein wirkliches Teerproblem ist, da das System meldet, dass die Festplatte nach der fehlgeschlagenen Teerextraktion voll ist. Z.B

touch /media/ntfs-disk/test

schlägt mit dem Fehler fehl, dass nicht genügend Speicherplatz vorhanden ist. Wie ich oben beschrieben habe, gibt es jedoch noch genügend Speicherplatz und Inodes df. Gibt es versteckte temporäre Dateien, die von nicht gesehen werden df?

Update 2

Ich habe festgestellt, dass ich Dateien auf der Festplatte ändern und vergrößern kann, aber keine neuen Dateien erstellen kann. Ich habe hier gelesen , dass NTFS über 4 Milliarden Dateien pro Volume unterstützt. Derzeit enthält meine Festplatte ungefähr 1 Million Dateien. Aber gibt es eine andere Begrenzung für die Anzahl der Dateien?

Deve
quelle
1
Ich würde ein NTFS-Problem vermuten. Ich bin kein gebürtiger FS ... Ist da etwas drin dmesg(8)? Wenn Sie in Windows neu starten und die Überprüfung der Festplatte erzwingen, ändert sich die Situation? Der einzige andere Grund könnte sein, quota(8)aber ich bin nicht sicher, wie es in NTFS gehandhabt werden würde ...
Matija Nalis
1
@MatijaNalis Ich lief chkdskunter Windows, was ergab, dass viele Dateinamen enthalten waren :, was unter Windows ein unzulässiges Zeichen ist. Nach dem Ausführen chkdskkonnte ich wieder Dateien erstellen. Vielen Dank!
Deve

Antworten:

8

GNU tar wird verwendet, $TMPDIRum zu entscheiden, wo erweiterte Header-Informationen geschrieben werden sollen. Sie können versuchen TMPDIR, auf einen beschreibbaren Speicherort auf Ihrem großen Laufwerk zu verweisen.

Thomas Dickey
quelle
Danke für deine Antwort. Derzeit kann ich nicht überprüfen, ob das Problem dadurch behoben wird, da das System jetzt meldet, dass die Festplatte voll ist (siehe meine Bearbeitung).
Deve