ISO Datein direkt editieren bzw. deren Inhalt

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
RSMVDL

Hallo liebe Gemeinde,

Ich stehe gerade vor einem kleinen Problem. Ich schreibe einen CloudController für KVM. Lange rede kurzer Sinn ich stehe vor einen Problem.
Ich muss innerhalb einer ISO (CD/DVD Image Datei) Datei ein Datei editieren (*.cfg) innerhalb dieser Datei liegen von mir festgelegte Variablen wie z.B. "%IP_ADRESSE" o.ä.
Diese Einträge müsste ich durch die in diesem Fall tatsächliche IP ersetzten.

Hat Hier irgendjemand eine Idee wie ich die ISO Direkt Editieren könnte?
Derzeit mounte ich das Image und versuche es so zu bearbeiten was aber nicht wirklich dolle funkt, weil ich keine Schreibrechte habe.

Kann sein das der Code untern ein wenig sehr BUGGY ist!

Code: Alles auswählen

import os
ISO_PATH = "/root/ubuntu-10.04.4-server-amd64.iso"
# Mount ISO to temp media folder
os.system("mkdir /media/tmp_iso")
os.system("sudo mount -o rw,loop,uid=$UID %s /media/tmp_iso" % ISO_PATH) ##Hier treten Probleme auf!
parafile = open("/media/tmp_iso/preseedautodeploy.cfg", 'r')
parafile_temp = open('/media/tmp_iso/preseedautodeploy.cfg', 'w')
for line in parafile_temp:
    parafile_temp.write(line.replace('%DNS_SERVER', '212.54.40.25 '))
parafile.close()
parafile_temp.close()
LG Robin
BlackJack

@RSMVDL: Du hast keine Schreibrechte weil ISO-Images nicht zum beschreiben gedacht sind. Das ist das Format für CDs. So ein Image wird einmal erstellt und auf CD gebrannt — versuch mal eine Datei auf einer CD zum schreiben zu öffnen. ;-)

Ich würde das Image erstellen mit einem Platzhalter der gross genug ist für jede IP und dann diese Stelle in einem Hexeditor suchen und den Index an diese Stelle dann zum Schreiben von der IP in die Image-Datei verwenden.
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Setzt aber vorraus, das ISO9660 keine Prüfsummen kennt. Schwer zu glauben.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

@darktrym: Würde mich wundern, wenn es eine Prüfsumme gäbe, oder sie irgendjemand beachten würde.

@RSMVDL: wenn Du die selbe Datei sowohl zum Lesen als auch zum Schreiben öffnest, würde ich das ganze erst an einer wirklich unwichtigen Datei testen.
BlackJack

Hm, soweit ich das sehen kann kennt das Dateisystem keine Prüfsummen, aber die einzelnen Blöcke auf der CD schon. Jetzt ist die Frage ob diese Informationen im Image enthalten sind, oder erst von der Brennsoftware hinzugefügt werden. Und *diese* Prüfsummen werden zumindest von echten CD-ROM-Laufwerken verwendet um Lesefehler zu erkennen.

Edit: Die Informationen in der manpage von ``genisoimage`` lassen vermuten, dass die Prüfsumme nicht Bestandteil des Images ist. Damit sollte es also möglich sein Daten direkt im Image zu manipulieren ohne sich Gedanken um die Neuberechnung von Prüfsummen machen zu müssen.
Antworten