Erstellen eines Image aus einem ISO (KVM)

[ 0 ] Juni 10, 2010 |

Dieser Artikel beschreibt, wie mittels KVM und dem ISO Image eines Gast Betriebssystems das installiert werden soll, ein Root Dateiystem für Eucalyptus erstellt wird.

Voraussetzung

  • Funktionsfähige KVM Umgebung
  • Hardware Virtualisierung Unterstützung auf dem System (Hardware-assisted virtualization) ist empfehlenswert, da qemu genutzt werden sollte.


Zunächst muss ein ISO Image einer Distribution (Gastbetriebssystem), das installiert werden soll, vorhanden sein. Anschließend wird eine virtuelle Festplatte (virtual disk) z.B. mit der Größe von 4GB erstellt.

dd if=/dev/zero of=new.img bs=1M count=4096

Nun wird KVM gestartet, indem das CDROM als boot device und new.img als Festplatte verwendet wird.

kvm -cdrom iso_image -drive if=scsi,file=new.img,boot=off

Achtung!!! Es wird ein SCSI-Bus benötigt, da Eucalyptus (AWS) erwartet, dass sich die Festplatte unter /dev/sda befindet.

Nun kann die Distribution wie gewöhnlich installiert werden. Dabei sollte darauf geachtet werden, das kein lvm oder md benutzt wird und die Installation innerhalb einer einzigen Partition erfolgt. Zudem sollte man sich merken, in welcher Partition die Distribution installiert wurde.

Achtung!!! Einige Distributionen merken sich die Netzwerkschnittstelle anhand der MAC Adresse. Somit ist die Schnittstelle immer dieselbe. Innerhalb von Eucalyptus muss die Distribution dazu bewegt werden, dass sie die Netzwerkschnittstelle „vergisst“, damit jede Instanz die Schnittstelle als die primäre Schnittstelle erkennt.

Im Falle von Debian / Ubuntu kann das unter /etc/udev/rules.d/*net* erfolgen. Im Falle von CentOS unter /etc/network-scripts/ifcfg-eth0. Sollten die Anpassungen nicht erfolgen, wird die Instanz keinen Netzwerkzugriff erhalten.

Nun müssen wir den Startblock und die Blockgröße des Root-Dateisystems identifizieren. Das kann mittels parted erfolgen.

parted new.img

Parted muss nun so konfiguriert werden, dass es die Blockgröße als Einheit verwendet. Erst „U“ dann „b“ drücken. (Damit wird die Einheit auf Blocks umgestellt.)

(parted) u
Unit? [compact]? b

Mit „p“ kann die aktuelle Partitionstabelle ausgegeben werden.

Wir notieren uns den Startpunkt und die Größe der entsprechenden Partition. Für unser Beispiel nehmen wir an, dass sich der Startpunkt bei 32256 befindet und es sich bei der Größe um 1024000 handelt.

Nun extrahieren wir das Dateisystem.

dd if=new.img of=rootfs.img bs=1 skip=32256 count=1024000

Achtung!!! Um den Vorgang zu beschleunigen kann die Blockgröße z.B. auf 512 erhöht werden. Wir teilen die Partitionsgröße (count) und den Startpunkt (skip) jeweils durch die neue Blockgröße (in diesem Fall 512) und erhalten folgendes Kommando.

dd if=new.img of=rootfs.img bs=512 skip=63 count=2000

Damit haben wir das Image ‚rootfs.img‘ erhalten, welches das Root Dateisystem beinhaltet. Es sollte nun noch sichergestellt sein, dass dieses kompatibel zu dem verwendeten Kernel und der initrd innerhalb der Cloud Umgebung ist.

Quelle

Tags: , , , ,

Category: Tutorials

René Büst

About the Author ()

Rene Buest is Senior Analyst and Cloud Practice Lead at Crisp Research, covering cloud computing, IT infrastructure, open source and Internet of Things. Prior to that he was Principal Analyst at New Age Disruption and member of the worldwide Gigaom Research Analyst Network. Rene Buest is top cloud computing blogger in Germany and one of the worldwide top 50 bloggers in this area. In addition, he is one of the world’s top cloud computing influencers and belongs to the top 100 cloud computing experts on Twitter and Google+. Since the mid-90s he is focused on the strategic use of information technology in businesses and the IT impact on our society as well as disruptive technologies. Rene Buest is the author of numerous professional cloud computing and technology articles. He regularly writes for well-known IT publications like Computerwoche, CIO Magazin, LANline as well as Silicon.de and is cited in German and international media – including New York Times, Forbes Magazin, Handelsblatt, Frankfurter Allgemeine Zeitung, Wirtschaftswoche, Computerwoche, CIO, Manager Magazin and Harvard Business Manager. Furthermore Rene Buest is speaker and participant of experts rounds. He is founder of CloudUser.de and writes about cloud computing, IT infrastructure, technologies, management and strategies. He holds a diploma in computer engineering from the Hochschule Bremen (Dipl.-Informatiker (FH)) as well as a M.Sc. in IT-Management and Information Systems from the FHDW Paderborn.

Leave a Reply

You must be logged in to post a comment.