problemsolver
Goto Top

ISO Datei für diverse Zwecke erstellen

Wer schon mal gedacht hat, dass eine ISO-Datei gerade nützlich wäre, aber keine Ahnung hat, wie er sie erstellt, der ist hier genau richtig...

[EDIT: 2009-04-20: BugFix nach "echo Imageerstellung". Löst ein Problem mit dem INPUT_PATH, wenn direkt ein CD-Inhalt als ISO Datei erstellt werden soll...]

Hallo zusammen,

VORWORT:
Dieses Tutorial beschreibt kurz und bündig, wie man aus einem vorhandenen beliebigen Ordner eine ISO-Datei in einem anderen Ordner erstellt.

ANLASS:
...für dieses kurze Tutorial war, dass ich -ohne ein Netzwerk einzurichten- Dateien in einer virtuellen Maschine verwenden wollte (OHNE installierte VMware Tools). Wieso also nicht diesen Vorgang für mich "halbwegs automatisieren????" Und wenn ich schon einmal dabei bin - hier bei Administrator.de wird sich vielleicht auch jemand darüber freuen face-wink

Hierzu benötigt man nur das mkisofs Tool aus der CDRTOOLS Sammlung von Jörg Schilling. Die vorkompilierten Win32-Binaries und die DLLs kann man sich hier herunterladen:
[CDRTOOLS Sammlung]
(Bitte die "DLLS needed by mkisofs" und "cygwin1.dll" herunterladen und mit in das Verzeichnis von mkisofs.exe packen! Danke an bastla hierfür! Ich hatte mit der mkisofs aus den c't Offline Update gearbeitet, die auch so funktionierte... face-wink )


Desweiteren benötigt man meine Batch-Datei (siehe unten), die sicherlich nicht allen Künsten von Biber, bastla, Dani oder sonstigen Pro's (*mal-einen-Gruß-dalass*) hier entspricht, aber dennoch funktionieren dürfte. :-P

Ausführliche Kommentare findet Ihr in dieser Batchdatei, falls Sie euch interessieren. Den anderen sei kurz erläutert, was nun zu tun ist:
  1. mkisofs.exe und diese Batch-Datei in einem Ordner speichern.
  2. ISO-Images werden im Ordner erzeugt, wo auch die Batch-Datei liegt. (Wenn man das ändern möchte, siehe Batch-Datei (SET "OUTPUT_PATH=%~dp0")
  3. Aufruf der Batch-Datei...
      • Entweder die Batch-Datei mit dem Verzeichnisnamen als Parameter von der Konsole starten oder
      • das Verzeichnis per Drag and Drop auf die Batch Datei schieben
      • Wer es "super-komfortabel" haben möchte und der Punkt 3 schon prima funktioniert, der kann man eine Verknüpfung zu dieser Batch-Datei im "SendTo" Ordner legen. Dann ist diese Batch bequem per "Rechte-Maustaste auf einen Ordner" --> Senden An... verfügbar. Hierzu bitte einfach "Start --> Ausführen --> Sendto" ausführen. Bei wem das nicht funktioniert: "%userprofile%\Sendto" .

Ich hoffe, ich konnte jemanden hiermit helfen und dieser Beitrag fristet hier nicht ein "Tutorial-was-so-oder-so-niemand-irgendwann-brauchen-wird" Dasein face-wink

Für Anmerkungen bzw. Kritik bin ich natürlich immer und gerne offen!!!

@ECHO OFF & SETLOCAL

:: Rückgabecodes und Ihre Bedeutung in dieser Batchdatei
:: 1 = Der Eingabepfad existiert nicht
:: 2 = Der Ausgabepfad existiert nicht
:: 3 = Die mkisofs.exe fehlt
:: 9 = Vorzeitige Abbruch bei der Kontrolle der Konfigurationsoptionen

SET "MKISOFS=%~dp0mkisofs.exe"  
SET "INPUT_PATH=%~1"  
SET "OUTPUT_PATH=%~dp0"  

:: Die ISO Volumen- und Dateibezeichnung wird tiefer ermittelt, 
:: wenn sichergestellt ist, dass das Verzeichnis auch existiert... ;)
SET "ISO_VOLID="  
SET "ISO_IMAGE="  

::  Logische Überprüfung...
:: Eingabepfad
if "%INPUT_PATH%" EQU "" EXIT 1  
dir /AD "%INPUT_PATH%" >NUL 2>NUL || EXIT 1  

:: Danke an Bastla und miniversum für die nächste Zeile
set "ISO_VOLID=%~nx1" & set "ISO_IMAGE=%~nx1"  

:: Ausgabepfad
if "%OUTPUT_PATH%" EQU "" EXIT 2  
dir /AD "%OUTPUT_PATH%" >NUL 2>NUL || EXIT 2  

:: MKISOFS.exe vorhanden???
if not exist "%MKISOFS%" EXIT 3  

echo Konfigurationsoptionen
echo ********************************************************
echo Pfad zu mkisofs            : %MKISOFS%
echo Eingabepfad                : %INPUT_PATH% 
echo Ausgabepfad                : %OUTPUT_PATH%
echo IsoImage-Dateiname         : %ISO_IMAGE%.iso
echo IsoImage Volumenbezeichnung: %ISO_VOLID%
echo ********************************************************
echo.
set /P ERGEBNIS=[Sind diese Einstellungen richtig? (j/n) ]
if /I "%ERGEBNIS%" NEQ "j" exit 9  
echo Imageerstellung...
:: BugFix: 2009-04-20
if '%INPUT_PATH:~-1%' NEQ '\' "%MKISOFS%" -iso-level 4 -joliet -joliet-long -rational-rock -output "%OUTPUT_PATH%\%ISO_IMAGE%.iso" -volid "%ISO_VOLID%" "%INPUT_PATH%"  
if '%INPUT_PATH:~-1%' EQU '\' "%MKISOFS%" -iso-level 4 -joliet -joliet-long -rational-rock -output "%OUTPUT_PATH%\%ISO_IMAGE%.iso" -volid "%ISO_VOLID%" %INPUT_PATH%  
echo.
echo Imageerstellung...FERTIG! Beliebige Taste zum Beenden!
pause > NUL

Gruß

Markus

Content-Key: 108903

Url: https://administrator.de/contentid/108903

Printed on: April 25, 2024 at 11:04 o'clock

Member: ITwissen
ITwissen Feb 13, 2009 at 11:17:38 (UTC)
Goto Top
Für die, die lieber Klicken wollen, sollte man erwähnen, dass so ziemlich jedes Brennprogramm auch ISO Images anlegen kann.
Member: problemsolver
problemsolver Feb 13, 2009 at 11:37:40 (UTC)
Goto Top
Hallo ITWissen...

und Danke für deinen Kommentar. face-smile

Stimmt natürlich! face-wink
Aber mir soll mal ein Brennprogramm eine "2 Klick"-Erstellung (+ein "J"+"Enter") einer ISO Datei nachmachen *lol* (siehe Senden An Menü)

Gruß

Markus
Member: bastla
bastla Feb 13, 2009 at 16:26:09 (UTC)
Goto Top
Hallo problemsolver!

Schönes Tutorial! face-smile

Gruß zurück
bastla
Member: miniversum
miniversum Feb 16, 2009 at 11:47:03 (UTC)
Goto Top
Gutes Tutorial. Gut kommentierte Batch Datei.
Ich hätte da noch ein oder zwei Verbesserungsvorschläge:

- Die Zeile 21 und 22 könnte man ersetzen durch:
Das entsprechende gilt für die Zeilen 29 und 30.
Der Vorteil wäre der, dass man, wenn man die Batch von der Kommandozeile ausführt, nicht in dem Ordner steht der als Ausgangsverzeichnis angegeben ist, sondern da wo man auch vor dem Start der Batchdatei war.

- Wenn man die Zeile 25 wie folgt ändern:
set "ISO_VOLID=%~nx1" & set "ISO_IMAGE=%~nx1"
Dann werden die Namen auch für Verseichnisse mit einem Punkt im Namen richtig übernommen
Member: problemsolver
problemsolver Feb 16, 2009 at 14:04:18 (UTC)
Goto Top
Hi miniversum face-smile

Danke für den Hinweis! Du hast natürlich recht... so lässt sich die ISO-Erstellung besser in eine schon vorhandene Batchdatei "einpflegen"... und auf die Sache mit dem "Punkt" wäre ich nicht gekommen... getestet hatte ich nur mit Leerzeichen...

Ich sag herzlich Danke!!! face-smile

Gruß

Markus
Mitglied: 68162
68162 Mar 13, 2009 at 11:11:41 (UTC)
Goto Top
Zitat von @ITwissen:
Für die, die lieber Klicken wollen, sollte man erwähnen,
dass so ziemlich jedes Brennprogramm auch ISO Images anlegen kann.

Noch eine Lanze für MKISOFS: wer je eine bootfähige ISO mit iso9660_stage_1_5 oder isolinux.bin erstellen wollte, wird merken, das so manches Klicki-Bunti hier versagt, denn es braucht den Parameter
-boot-info-table und den hat meines Wissens nur MKISOFS.

Ansonsten, tolle Anleitung!

MfG, -FM-81-
Mitglied: 94451
94451 Apr 02, 2012 at 06:40:07 (UTC)
Goto Top
Hallo ihr,

ist zwar ein sau altes thema, aber für mich ist es eben gerade aktuell!

hat jemand ne idee wie man das abändern müsste, das es auch mit verzeichnissen/dateien funktioniert, die ein umlaut im namen haben?

Vielen Dank
Gruß Roadrunner
Member: bastla
bastla Apr 02, 2012 at 08:47:27 (UTC)
Goto Top
Hallo Roadrunner777!

Versuch es mit einem
chcp 1252>nul
in Zeile 2 ...

Grüße
bastla
Mitglied: 94451
94451 Apr 02, 2012 at 09:02:39 (UTC)
Goto Top
Hallo bastla,

Vielen Dank für die schnelle Antwort, doch leider kommt bei mir immer noch bei z.B. Stückliste der Name Stückliste raus :/

hier mein CODE (Leicht abgeändert!):
@ECHO OFF & SETLOCAL
chcp 1252>nul

:: Rückgabecodes und Ihre Bedeutung in dieser Batchdatei
:: 1 = Der Eingabepfad existiert nicht
:: 2 = Der Ausgabepfad existiert nicht
:: 3 = Die mkisofs.exe fehlt
:: 9 = Vorzeitige Abbruch bei der Kontrolle der Konfigurationsoptionen

SET "MKISOFS=%~dp0mkisofs.exe"  
SET "INPUT_PATH=%~1"  
SET "OUTPUT_PATH=%~dp0/imgs"  

:: Die ISO Volumen- und Dateibezeichnung wird tiefer ermittelt, 
:: wenn sichergestellt ist, dass das Verzeichnis auch existiert... ;)
SET "ISO_VOLID="  
SET "ISO_IMAGE="  

::  Logische Überprüfung...
:: Eingabepfad
if "%INPUT_PATH%" EQU "" EXIT 1  
dir /AD "%INPUT_PATH%" >NUL 2>NUL || EXIT 1  

:: Danke an Bastla und miniversum für die nächste Zeile
set "ISO_VOLID=%~nx1" & set "ISO_IMAGE=%~nx1"  

:: Ausgabepfad
if "%OUTPUT_PATH%" EQU "" EXIT 2  
dir /AD "%OUTPUT_PATH%" >NUL 2>NUL || EXIT 2  

:: MKISOFS.exe vorhanden???
if not exist "%MKISOFS%" EXIT 3  

:: BugFix: 2009-04-20
if '%INPUT_PATH:~-1%' NEQ '\' "%MKISOFS%" -iso-level 4 -joliet -joliet-long -rational-rock -output "%OUTPUT_PATH%\%ISO_IMAGE%.iso" -volid "%ISO_VOLID%" "%INPUT_PATH%"  
if '%INPUT_PATH:~-1%' EQU '\' "%MKISOFS%" -iso-level 4 -joliet -joliet-long -rational-rock -output "%OUTPUT_PATH%\%ISO_IMAGE%.iso" -volid "%ISO_VOLID%" %INPUT_PATH%  
Hotly discussed
gleixnerdCheck of ZFW Firewallgleixnerd - 5 CommentsjstrickerWireguard VPN on UDM Pro behind Fritzbox - Handshake did not completejstricker - 3 Comments