mkisofs unter Windows

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Ergänzend zum Thread 'Datei-Backup optimieren' eröffne ich jetzt noch einen neuen Thread, obwohl er nicht direkt mit Python zu tun hat. Ich habe versucht, das Backup mit den cdrtools zu brennen. Mit InfraRecorder funktioniert die Erstellung eines Images problemlos. Verwende ich aber mkisofs aus einem CLI direkt, erscheint immer die Fehlermeldung 'No such file or directory. Invalid node - 'C:\Dir1\Dir2', obwohl das Verzeichnis existiert. Hat jemand Erfahrung mit mkisofs unter Windows und weiß, warum das nicht funktioniert? Mit Google habe ich ähnliche Probleme ohne Lösung gefunden.
Danke
HWK
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Liegt es vielleicht am Pfad?
mkisofs wird wohl anstelle von 'C:\Dir1\Dir2' lieber 'C:/Dir1/Dir2' moegen...
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Nein! Ich habe schon alles mögliche probiert. Klein und groß, '/' und '\\'. Nichts klappt. Ich habe jetzt aber herausgefunden, dass es funktioniert, wenn die einzelnen Dateien bzw. Verzeichnisse in der Befehlszeile in Anführungsstrichen eingegeben werden. In einer Datei für -path-list klappt das aber weiterhin nicht.
MfG
HWK
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo HWK!

Mit diesem Befehl wurde mir eine ISO-Datei (Joliet) erstellt, in der je ein Ordner "hallo" und "welt" sind. In "hallo" ist danach die "InstallHelper.log"-Datei und in "welt" findet sich die "ZopeEdit.ini".

Code: Alles auswählen

J:\>mkisofs -o test.iso -J -graft-points
  "hallo/Installhelper.log=J:/InstallHelper.log"
  "welt/ZopeEdit.ini=J:/Dokumente und Einstellungen/Gerold/ZopeEdit.ini"
Fazit: Anführungszeichen und statt dem Backslash (\) einen Slash (/) verwenden.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Das Problem mit den Anführungszeichen hatte ich auch schon erkannt. Dann geht es auch mit Backslashs. Was aber trotzdem nicht funktioniert, ist eben -path-list. Eine wichtige Info war aber die Option -graft-points. Nach so etwas hatte ich schon gesucht.
Danke
HWK
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

HWK hat geschrieben:Was aber trotzdem nicht funktioniert, ist eben -path-list.
Hallo HWK!

"-path-list" lässt sich wirklich nicht dazu überreden. Ich habe es mit mehreren Formaten probiert.

Aber wir haben je Python ;-) :

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-

import subprocess


args = ["mkisofs", "-J", "-joliet-long", "-max-iso9660-filenames", "-r", "-graft-points"]
files = [
    "/=J:/InstallHelper.log",
    "Dokumente und Einstellungen/Gerold/=J:/Dokumente und Einstellungen/Gerold/ZopeEdit.ini"
]
args += files

isofile = file("J:\\Ablage\\hallo.iso", "wb")
process = subprocess.Popen(args, stdout = isofile, stderr = subprocess.PIPE)
print process.stderr.read()
isofile.close()
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Nochmals danke. Ich hab's etwas anders mit os.system gelöst. Es tauchen aber wieder neue Probleme auf: cdrecord brennt keine DVDs. Auch das empfohlene ProDVD unterstützt scheinbar meinen Brenner nicht.
MfG
HWK
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

HWK hat geschrieben:Nochmals danke. Ich hab's etwas anders mit os.system gelöst. Es tauchen aber wieder neue Probleme auf: cdrecord brennt keine DVDs.
Hallo HWK!

Ich habe "subprocess" verwendet, da man mit dem Parameter "-o" keinen absoluten Zielpfad unter Windows angeben kann. Als Ersatz schreibe ich STDOUT in eine Datei.

Seit Mai 2006 ist der DVD-Support in die OSS-Version eingebaut. Erkennt cdrecord deinen Brenner mit ``cdrecord -scanbus``?

Kannst du damit eine CD brennen?

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Hallo, Gerold!
Du hattest wie immer recht. Meine Versionen von cdrecord und ProDVD waren schon uralt. Mit einer neueren von cdrecord läuft es tadellos. Das Problem mit dem Parameter '-o' war mir noch gar nicht aufgefallen, da ich die ISOs immer im selben Verzeichnis wie das Pythonscript gespeichert habe.
Also: Das Backup-Programm läuft jetzt auch mit den cdrtools, wobei Nero aber schneller zu sein scheint.
Danke nochmals
HWK

EDIT: Es gibt doch noch Probleme! Ich habe Dateien mit demselben Namen in verschiedenen Verzeichnissen. Das gefällt mkisofs scheinbar nicht. Folgender Fehler erscheint:

Code: Alles auswählen

Using THUMBS000.DB;1 for  Eigene Dateien/Eigene Bilder/Thumbs.db (Thumbs.db)
/cygdrive/c/Programme/cdrtools/mkisofs: Error:
C:/Dokumente und Einstellungen/HWK/Eigene Dateien/Eigene Bilder/ZooHan2004/Thumbs.db 
and C:/Dokumente und Einstellungen/HWK/Eigene Dateien/Eigene Bilder/Neujahr06/Thumbs.db have the same Joliet name
/cygdrive/c/Programme/cdrtools/mkisofs: Joliet tree sort failed.
Erst dachte ich, es würde an dem sehr langen Pfad liegen. Er überschreitet aber die erlaubten 120 Zeichen nicht?! Was könnte denn helfen?
MfG
HWK
BlackJack

Ich würde auf die Länge tippen. Es sind zwar 128 Bytes, aber nur 64 (Unicode-)Zeichen erlaubt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

HWK hat geschrieben:Was könnte denn helfen?
Schon mit diesen Parametern probiert?

Code: Alles auswählen

args = ["mkisofs", "-J", "-joliet-long", "-max-iso9660-filenames", "-r", "-graft-points"]
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ist zwar schön, dass hier trotzdem Python verwendet wird, ich verschiebe den Thread in meiner Boshaftigkeit trotzdem nach Offtopic ;)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

@Gerold: Das ändert alles nichts.

@BlackJack: Die Länge war auch mein erster Gedanke. Aber warum? Wenn die Namen rechts abgeschnitten werden, sollten ja auch andere nicht identische Dateien in den Ordnern betroffen sein. Wenn links abgeschnitten wird, unterscheiden sich ja schon die bemängelten Namen.

Ich sehe insgesamt ein Problem darin, ein komplexe Dateisystem auf Betriebssystem A mit einem Programm, das für Betriebssystem B geschrieben wurde und nur mit Tricks auf A zum Laufen gebracht werden kann, zu archivieren. Wer weiss, ob und wie die Dateien dann archiviert werden. Ich glaube, ich bleibe doch lieber bei Nero.

Trotzdem vielen Dank an alle
HWK
BlackJack

Wenn der Rest abgeschnitten wird, dann kommt man genau bis zu dem Punkt wo sich die beiden Pfade *nicht* unterscheiden:

Code: Alles auswählen

In [62]: a[:64]
Out[62]: 'C:/Dokumente und Einstellungen/HWK/Eigene Dateien/Eigene Bilder/'
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Das stimmt wohl. In dem Pfad 'C:/Dokumente und Einstellungen/HWK/Eigene Dateien/Eigene Bilder/' befinden sich aber viele Ordner mit noch mehr Dateien, die ja dann alle den gleichen Joliet-Namen haben müssten. Wenn ich jedoch eine der bemängelten Dateien lösche, gibt es keine Probleme mehr. Der identische Dateiname muss also wohl eine Rolle spielen.
MfG
HWK
BlackJack

Tja, da müsste man jetzt wissen wie bei Joliet die Namen verkürzt werden. Vielleicht wird ja in der Mitte etwas rausgenommen und in diesem Fall bleibt dann der gleiche Präfix vorne und der gleiche Dateiname hinten übrig oder so.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Das mag sein. Ich habe deshalb auch schon überlegt, wie ich den Pfad ohne Kopieren der Dateien in ein anderes Verzeichnis verkürzen kann. Ein Gedanke waren die Optionen -root und -old-root. Das funktioniert aber nicht.
MfG
HWK
BlackJack

Dann vielleicht doch ein Archiv. Oder UDF statt Joliet.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Ich hatte schon Hoffnung. Komischerweise liefert aber -udf denselben Joliet-Fehler. Ein Archiv möchte ich ungern nehmen.
MfG
HWK

EDIT: :oops: Der Fehler lag bei mir. 'name_' statt 'name' bei einem Copy-and-Paste. Dadurch kamen in der Dateiliste wirklich identische Pfade vor. Ein weiterer Fehler war ein fehlender Slash am Ende der graf-points. Nach Löschen des '_' und Einfügen des '/' läuft es scheinbar problemlos. Sorry für die unnötige Mühe. Mir hat es aber neue Erfahrungen über die cdrtools gebracht.
MfG
HWK
Antworten