xorriso zum Konvertieren eines Rohbilds in ISO schlägt fehl (Dateigröße zu groß)

1016
DaveM

Wie der Titel sagt, versuche ich, eine Rohbilddatei in ein ISO-Bild zu konvertieren.

Ich habe diese als Referenz verwendet.

https://www.turnkeylinux.org/blog/convert-vm-iso

https://manpages.debian.org/cgi-bin/man.cgi?sektion=1&query=xorrisofs&apropos=0&manpath=sid&locale=de

kurz (tldr :) (unten ist ein erweiterter Hintergrund, wenn es hilft)

Ich habe ein Roh-Image von meiner qcow2-VM erstellt und dieses als Loopback-Gerät eingebunden

virtMachineIMG.mount 

Wenn ich folgendes laufe

xorrisofs -v -J -r -V -o ./MyCentos_img.iso ./virtMachineIMG.mount/ 

Ich bekomme am Ende einen Fehler, dass das Bild zu groß ist und nicht geschrieben werden kann.

Hat jemand eine Idee, wie ich das umgehen kann?

Meine RAW-Bilddatei ist 8 GB groß. Ich weiß nicht genau, wie viel davon verwendet wird oder wie man die Festplatte sicher auf die Größe der darin enthaltenen Daten "verkleinert".

Verpasse ich einen Schritt in meiner Vorbereitung? sollte ich mit qemu eine weitere platte erstellen, auf die ich dann mein roh-Image brenne?

Ich sollte beachten, dass mein RAW-Bild (ursprüngliche qcow2-Datei) LVM verwendet. Macht das einen Unterschied?

Jede Hilfe wird gut angenommen und sehr geschätzt.

David.

ps. Wenn Sie weitere Informationen zur ausführlichen Ausgabe benötigen, fragen Sie einfach nach, ich kann xorrisofs immer erneut ausführen - es dauert etwa 2 Stunden, bis das ausgeführt wird. Ist dies normal?

___________ Hintergrund : ____________

Ich habe ein Testsystem auf einem lokalen PC in einer virtuellen Maschine eingerichtet. Host: Debian Guest: Centos mit: Qemu / KVM im Virtual Machine Manager.

Aufgrund der Beschaffenheit des Testsystems musste ich alle erforderlichen Komponenten installieren (Postgres, Tomcat, usw., usw.).

Das lief wirklich gut und meine Kollegen sind zufrieden mit dem, was ich getan habe. Da sie jedoch nicht in mein Büro kommen müssen, schlug ich vor, zu prüfen, ob ich daraus eine ISO machen könnte, die sie dann problemlos von überall ausführen könnten.

Begründung:

  • Sie könnten von jedem PC in dieses System booten.
  • Es könnte einfacher auf einen anderen Server verschoben werden (je nach Bedarf).
  • Ich wollte meine Kollegen nicht damit belästigen, dass sie irgendetwas installieren müssen. Stecken Sie einfach das USB-Laufwerk mit dem ISO in Ihren PC und booten Sie direkt davon.
  • Auch für Präsentationen der Plattform viel einfacher.
  • kann es verwenden, um eine VM in einem unserer Server für erweiterte Tests zu erstellen (ich gehe davon aus, dass ein ISO dafür leichter sein wird als ein Raw oder qcow2)

Wenn dort rpms oder debs der Hauptplattform (es musste nicht von Quelle installiert werden), dann hätte ich einfach ein CentOS-ISO mit Links zu den erforderlichen rpms erstellt, um eine Installation zu starten.

Ich möchte auch, dass meine Kollegen auf einige 'Beispieldaten' innerhalb der Plattform zugreifen, und so kann ich sicher sein, dass wir alle von derselben Basis aus arbeiten.

0

1 Antwort auf die Frage

0
Thomas Schmitt

Vielen Dank, dass Sie Xorriso fliegen.

Ohne die genaue Fehlermeldung zu kennen, muss ich etwas erraten. Eine solche Ablehnung kann auftreten, wenn das resultierende ISO-Image nicht auf Ihre lokale Festplatte passt. Eine Laufzeit von 2 Stunden weist auf eine Verzeichnisschleife in ./virtMachineIMG.mount hin. Wenn dies der Fall ist, sollten auch Programme wie "du" und "find" eine merkwürdig wiederholte Ausgabe zeigen.

In jedem Fall fehlt Ihrem xorriso-Lauf ein für ISO-Dateisysteme geeignetes Boot-Equipment. Da Sie eine echte Maschine von USB starten möchten, benötigen Sie einen MBR und möglicherweise eine GUID-Partitionstabelle. Außerdem muss das ISO-Dateisystem alle Dateien enthalten, die zum Ausführen des Betriebssystems auf dem realen Computer erforderlich sind, und der Bootloader, der mit MBR oder GPT gestartet wird, muss wissen, wie das Betriebssystem gestartet wird. (Das Gesamt-ISO wird klassisch als "Live-CD" bezeichnet.)

Wenn Ihr virtuelles System bereits über den Bootloader GRUB2 bootet, sind Sie davon nicht weit entfernt. Das Programm "grub-mkrescue" kümmert sich um die Bootloader-Software und um die Expertenoptionen für xorriso. Siehe https://www.gnu.org/software/grub/manual/html_node/Making-a-GRUB-bootable-CD_002dROM.html

Die verbleibende Expertenaufgabe besteht darin, eine "grub.cfg" -Datei für "grub-mkrescue" aus der "grub.cfg" -Datei im VM-Disk-Image abzuleiten.

Eine Alternative zu GRUB2 ist ISOLINUX mit Isohybrid. Siehe http://www.syslinux.org/wiki/index.php?title=Isohybrid Viele Linux-Distributoren verwenden ISOLINUX für die BIOS-Firmware und GRUB2 für EFI-Firmware in demselben ISO-Image.


xorrisofs -v -J -r -V -o ./MyCentos_img.iso ./virtMachineIMG.mount/

Diese Befehlszeile ist falsch, da die Option -V eine Zeichenfolge als Datenträger-ID (Datenträgerbezeichnung) erwartet. Es wird die Option -o verbrauchen und "./MyCentos_img.iso" als Eingabepfad belassen (wie für "./virtMachineIMG.mount" vorgesehen).

Wenn "./MyCentos_img.iso" noch nicht vorhanden ist, sollte der Lauf mit fehlschlagen

xorriso : FAILURE : Cannot determine attributes of source file './MyCentos_img.iso' : No such file or directory 

Andernfalls werden viele Binärdaten an Ihr Terminal ausgegeben (weil stdout die Standardeinstellung ist, wenn keine Option -o erkannt wird).

Ah, ich muss meine Befehlszeile überprüfen. Ich hatte gehofft, dass ich die erforderlichen Details für Grub usw. korrekt hinzugefügt hatte. Aber mit Ihren zusätzlichen Informationen sollte ich feststellen können, ob es funktioniert hat. Eine Verzeichnisschleife in meinem Bild ist möglich (ich verwende harte Links für bestimmte Quellen, die von der Quelle gesteuert werden). Vielleicht handelt es sich dabei um ein Artefakt der Verwendung von LVM in der virtuellen Maschine. Für jetzt hast du mir eine Menge Sachen gegeben, die ich untersuchen kann. Ich werde mich in Kürze bei Ihnen melden. Vielen Dank DaveM vor 7 Jahren 0