Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Problem mit Zip und split: zip -0 not supported

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
ojkastl
Hacker
Hacker
Beiträge: 547
Registriert: 15. Dez 2004, 04:51
Wohnort: Erlangen
Kontaktdaten:

Problem mit Zip und split: zip -0 not supported

Beitrag von ojkastl »

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: Alles auswählen

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: Alles auswählen

zip -vry -9 blabla.zip Suse_Root/
geht natürlich, aber nur bis 2GB.
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

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.

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
ojkastl
Hacker
Hacker
Beiträge: 547
Registriert: 15. Dez 2004, 04:51
Wohnort: Erlangen
Kontaktdaten:

Beitrag von ojkastl »

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.
Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3202
Registriert: 25. Aug 2004, 02:13

Beitrag von robi »

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: Alles auswählen

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: Alles auswählen

cat archivname.tgz.?????? | tar -xz 
robi
Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

Beitrag von regexer »

Saber_Rider hat geschrieben: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.
ojkastl
Hacker
Hacker
Beiträge: 547
Registriert: 15. Dez 2004, 04:51
Wohnort: Erlangen
Kontaktdaten:

Beitrag von ojkastl »

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.
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

Saber_Rider hat geschrieben: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.

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

Beitrag von regexer »

Saber_Rider hat geschrieben: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...
ojkastl
Hacker
Hacker
Beiträge: 547
Registriert: 15. Dez 2004, 04:51
Wohnort: Erlangen
Kontaktdaten:

Beitrag von ojkastl »

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.
Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

Beitrag von regexer »

Saber_Rider hat geschrieben: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:
Antworten