• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Problem mit Zip und split: zip -0 not supported

ojkastl

Hacker
Hallo,

da eine Googlesuche gerade mal drei japanische treffer ergab, müsst ihr jetzt herhalten ;-)

Ich habe auf meiner Linxukiste einen ordner Suse_Root, da hab ich mal mit Kubuntu das Suse-/ gesichert, bevor ich die 9.3 isntalliert hab. Das ist also so wie ein Root-Verzeichnis im NICHT laufenden zustand aussieht.

Jetzt hab ich mal mit zip und split versucht, das Ding zu zippen und in 1GB-Häppchen aufzuteilen, da Zip nach 2GB abbricht (obwohl das FS wohl mehr kann, aber ZIP anscheinend nicht). Ging nicht. Dann runtergeschraubt und erstmal getestet:
Code:
zip -vry -9 - Suse_Root/ | split --verbose -b 15m - /suse_root_zip-

Bringt ein paar Fehler

zip warning: ignoring special file: Suse_Root/var/lib/named/dev/null
zip warning: ignoring special file: Suse_Root/var/lib/named/dev/random
zip warning: ignoring special file: Suse_Root/var/run/lirc/lircd
zip warning: ignoring special file: Suse_Root/var/run/lirc/lircm
zip warning: ignoring special file: Suse_Root/var/spool/postfix/public/pickup
zip warning: ignoring special file: Suse_Root/var/spool/postfix/public/qmgr
zip warning: ignoring special file: Suse_Root/lib/bootsplash/control
zip warning: ignoring special file: Suse_Root/lib/klibc/dev/console
zip warning: ignoring special file: Suse_Root/lib/klibc/dev/null

und bricht dann ab:

adding: Suse_Root/boot/grub/device.map.old (in=60) (out=37) (deflated 38%)
adding: Suse_Root/boot/message... (in=134144) (out=93297) (deflated 30%)
adding: Suse_Root/boot/vmlinuz
zip error: Invalid command arguments (zip -0 not supported for I/O on pipes or devices)
RobinLinux:/Daten #

Da mag er wohl irgendwas nicht, nur finde ich zur Fehlermeldung halt gar nix. Ob er Symlinks nicht mag? Die hätte ich aber gerne drin. Und ohne "-y" bringt er nur noch abstrusere Fehlermeldungen.

Was kann das sein? Ach ja, ein Aufruf ala

Code:
zip -vry -9 blabla.zip Suse_Root/

geht natürlich, aber nur bis 2GB.
 

TeXpert

Guru
warum zip? warum nicht tar, da hast Du keien Probleme mit Symlinks.

und evtl. hat zip mit Special-Files Probleme... ich würde jetzt spontan erst mal mit tar an die Kiste rangehen.
 
OP
O

ojkastl

Hacker
Ich hab es mit tar auch schon probiert, da geht das auch. Jetzt wollte ich mit zip ran, da bei zip nicht nur "eine grosse Datei gezippt wird", also nach dem entzippen ein .tar da liegt, sondern ich viele Dateien hab. was soviel ich weiss auch fehlerunempfindlicher ist. Das ist aber nur "irgendwo gelesen".

Ausserdem geht ZIP ja, wenn man eben nicht split dahinterhängt.
 
A

Anonymous

Gast
Keine Ahnung was du vorhast, kommt zip wirklich mit allen Dateitypen im Rootfilesystem klar? sonst bekommst du das Dateisystem nie wieder zu laufen.
Wenn du ganz viele Dateien haben willst das Dateisystem aber irgendwann mal wieder auspacken und laufen lassen willst, dann kannst du das aber auch wunderbar mit tar erzeugen.
Code:
tar -cz /VERZEICHNIS | split -da6 -C30m - archivname.tgz.
Das produziert dir jede Menge Einzeldateien mit einer Größe von maximal 30MB ( ich hoffe es werden genug für dich und du verlierst keine Einzige, denn dann kannst du beim auspacken alles vergessen was dahinter kommt)
Vollständigkeitshalber erzähle ich dir auch noch wie du das Ganze dann auch mal wieder auspacken kannst.
Code:
cat archivname.tgz.?????? | tar -xz

robi
 

regexer

Advanced Hacker
Saber_Rider schrieb:
Jetzt wollte ich mit zip ran, da bei zip nicht nur "eine grosse Datei gezippt wird", also nach dem entzippen ein .tar da liegt, sondern ich viele Dateien hab. was soviel ich weiss auch fehlerunempfindlicher ist. Das ist aber nur "irgendwo gelesen".
Ich arbeite mir verschiedenen SuSE-Linux-Versionen und auch SCO Unixware. Mit tar hatte ich (sogar zwischen den verschiedenen Systemen) nie Probleme.

Allerdings musste ich feststellen, dass das der UNIX-compress nicht mit dem gzip von Linux kompatibel ist. Deswegen ist beim zippen wesentlich mehr vorsicht geboten als beim tar.
 
OP
O

ojkastl

Hacker
Kurz nochmal: ZIP kommt mit den Dateien klar, allerdings NUR wenn man sie nicht per Pipe an split übergibt. Das ist es was mich interessiert.

Das ich mit tar und split kleinere Dateien erzeugen kann weiss ich. Dennoch brauch ich alle Dateien um die wiederzusammenzufügen. und wenn sich ein bit dreht ist die ganze Datei im Eimer. Soweit zumindest dass was ich dazu mal gelesen habe. Ob das jetzt so stimmt ist die andere Frage. Richtig ist halt dass in einer tar.gz ein tar steckt. Und dass das ganze Ding im Eimer ist, wenn beim entzippen (also von tar.gz nach tar) was schief geht.

Während bei eine Zip wohl nur die entpsrechende Datei, bei der der Fehler auftritt, im Eimer ist, und die anderen fehlerfrei entpackt werden können. Deckt sich mit meinen Erfahrungen mit kaputten ZIP-Dateien.

Ob das Problem mit tar auftritt oder nicht hab ich bisher noch nicht bemerkt, wollte halt auch mal die Variante mit zip ausprobieren. Und da ist eben das Interesse an der obskuren Fehlermeldung aufgetaucht.
 

TeXpert

Guru
Saber_Rider schrieb:
Das ich mit tar und split kleinere Dateien erzeugen kann weiss ich. Dennoch brauch ich alle Dateien um die wiederzusammenzufügen. und wenn sich ein bit dreht ist die ganze Datei im Eimer. Soweit zumindest dass was ich dazu mal gelesen habe. Ob das jetzt so stimmt ist die andere Frage. Richtig ist halt dass in einer tar.gz ein tar steckt. Und dass das ganze Ding im Eimer ist, wenn beim entzippen (also von tar.gz nach tar) was schief geht.

Während bei eine Zip wohl nur die entpsrechende Datei, bei der der Fehler auftritt, im Eimer ist, und die anderen fehlerfrei entpackt werden können. Deckt sich mit meinen Erfahrungen mit kaputten ZIP-Dateien.

bei tar ist gar nix im Eimer, da ist nur das gekippte Bit weg (tar komprimiert nicht) d.h. es kommt dann darauf an, mit welchem Kompressor Du rden Stream komprimierst, und da Zip AFAIK auch mit Blockgrlüßen arbeitet, können da auch mehr als eine Datei kaputt sein. Alsomit bzip2 Pakcen, da kannst Du die Blockgröße auch einstellen.
 

regexer

Advanced Hacker
Saber_Rider schrieb:
Das ich mit tar und split kleinere Dateien erzeugen kann weiss ich.
Übrigens: tar unterstützt das verteilen des tar-files über mehrere Medien. Mit den Options -M und -F kann man sogar einen Autoloader bedienen.
Und zippen kann er auch sofort. Doch hier wäre ich wie gesagt etwas vorsichtiger...
 
OP
O

ojkastl

Hacker
Hallo,

danke euch beiden für die Antworten. Ich bin natürlich davon ausgegangen dass das Tar danach noch komprimiert wird, habs aber nicht explizit erwähnt.

Vielleicht sollte ich erwähnen, dass der Ordner eigentlich schon längst gelöscht wäre, wenn mich nicht die Neugier gepackt hätte, wie das mit zip und split geht. Und da kam dann diese obskure Fehlermeldung.
 

regexer

Advanced Hacker
Saber_Rider schrieb:
Vielleicht sollte ich erwähnen, dass der Ordner eigentlich schon längst gelöscht wäre, wenn mich nicht die Neugier gepackt hätte, wie das mit zip und split geht. Und da kam dann diese obskure Fehlermeldung.
Naja, ich sag mal so: Löschen ist gut, Archivieren ist besser. :wink:
 
Oben