Oneiric x64-Instanz kann auf Eucalyptus nicht gestartet werden

Oneiric x64-Instanz kann auf Eucalyptus nicht gestartet werden

BEARBEITEN: Nach vielen Stunden habe ich herausgefunden, dass das Problem nichts mit Eucalyptus zu tun hat. Es sieht so aus, als ob das Bild fehlerhaft ist. Sehr,sehr fehlerhaft. Weitere Einzelheiten am Ende. Ich habe es nicht geschafft, es zu beheben, und werde einen Fehler melden.

BEARBEITEN 2: Ich habe es geschafft, es zu reparieren, es funktioniert anscheinend.


Ich habe einen Cluster aus 4 Maschinen, auf dem Ubuntu Server Natty (11.04) x64 läuft. Auf jeder dieser Maschinen habe ich „Ubuntu Enterprise Cloud“ von der Installations-CD installiert (und dann aktualisiert). Die Cloud scheint gut zu funktionieren, ich habe viele virtuelle Maschinen, auf denen Natty-Server laufen.

Jetzt möchte ich Oneiric in einer virtuellen Maschine ausführen, aber irgendwie geht das nicht.

Ich habe das Image von Oneiric (x64) heruntergeladen vonhttp://cloud-images.ubuntu.com/oneiric/current/, habe es ( uec-publish-tarball oneiric-server-cloudimg-amd64.tar.gz oneiric-server-cloudimg-amd64) genau so veröffentlicht, wie ich es mit Natty gemacht habe, und dann versucht, eine Instanz ( euca-run-instances -n 1 -k my-key -t m1.small -z my-cloud emi-XXXXXXXX) mit dem Image von Oneiric zu starten, aber die Instanz kann nicht gebootet werden.

Mit euca-get-console-outputerhalte ich folgendes:

[    0.461269] VFS: Cannot open root device "sda1" or unknown-block(0,0)
[    0.462388] Please append a correct "root=" boot option; here are the available partitions:
[    0.463855] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    0.465331] Pid: 1, comm: swapper Not tainted 3.0.0-13-generic #22-Ubuntu
[    0.466526] Call Trace:
[    0.466989]  [<ffffffff815d3ee5>] panic+0x91/0x194
[    0.467860]  [<ffffffff81ad1031>] mount_block_root+0xdc/0x18e
[    0.468891]  [<ffffffff81ad126a>] mount_root+0x54/0x59
[    0.469829]  [<ffffffff81ad13dc>] prepare_namespace+0x16d/0x1a7
[    0.470883]  [<ffffffff81ad0d76>] kernel_init+0x140/0x145
[    0.471837]  [<ffffffff815f38e4>] kernel_thread_helper+0x4/0x10
[    0.472889]  [<ffffffff81ad0c36>] ? start_kernel+0x3df/0x3df
[    0.473884]  [<ffffffff815f38e0>] ? gs_change+0x13/0x13

Das Dateisystem trägt die Bezeichnung „cloudimg-rootfs“, innerhalb des Images verweisen sowohl /etc/fstab als auch /boot/grub/grub.cfg immer über die Bezeichnung auf das Image, alles scheint korrekt zu sein, dennoch meldet der Kernel, dass er das Root-Dateisystem nicht finden kann.

Ich habe viele Stunden mit Googeln verbracht, aber nichts kam dabei heraus. Ich habe auf #ubuntu-server gefragt, aber niemand wusste, was zu tun ist. Ich habe auf #eucalyptus gefragt, aber überhaupt keine Antwort bekommen.

Irgendwelche Ideen, warum das passiert und wie man das Problem lösen kann?

Danke


BEARBEITEN: Nach vielen Stunden habe ich herausgefunden, dass das Problem nichts mit Eucalyptus zu tun hat. Es sieht so aus, als ob das Bild fehlerhaft ist. Sehr,sehr fehlerhaft.

Das erste Problem ist, dass der Kernel im Image ein -genericKernel ist, obwohl ich davon ausgehe, dass es ein -virtualEinser-Kernel sein sollte. Ich habe das Image per Chroot erstellt, die -genericPakete entfernt und durch die -virtualEinser-Pakete ersetzt. Dann habe ich den neuen Kernel extrahiert (und den ursprünglichen (-generischen) ersetzt, der mit dem Tarball kam), weil ich ihn brauche, wenn ich ein Image mit Eucalyptus veröffentliche und starte.

Das oben beschriebene Problem wurde behoben.

Doch dann begann die Konsole, Folgendes anzuzeigen:

mount: mount point ext4 does not exist

Wenn Sie die Datei /etc/fstab im Image überprüfen, steht dort:

LABEL=cloudimg-rootfs  ext4 defaults    0   1

Verdammt, wo ist mein Einhängepunkt? Beachten Sie, dass er /procebenfalls fehlt.

Nun, wenn Sie denken, dass es vorbei ist, werden Sie feststellen, dass Ihre Instanz keine Netzwerkverbindung hat. Lassen Sie uns /etc/network/interface überprüfen:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

Oh je! Es fehlt eth0... hier habe ich aufgehört. Ich kann nicht mehr. Ich gebe auf.

Sieht so aus, als hätte Canonical einfach vergessen, dieses Image richtig einzurichten. Zuerst dachte ich: „Habe ich aus Versehen ein Server-Image heruntergeladen?“, aber nein, ich habe es noch einmal überprüft. Es ist wirklich das Cloud-Image, es ist sogar „cloud-init“ installiert (was standardmäßig nicht auf Server-Images vorhanden ist). Sie haben einfach vergessen, es vorzubereiten.

Ich werde einen Fehler melden (und hier darauf verweisen, sobald dies erledigt ist) und hoffe, dass er bald behoben wird!


BEARBEITEN 2: es sieht so aus, als ob die Netzwerkkonfiguration das letzte war, was fehlte. Ich habe beschlossen, es mit den oben genannten Korrekturen zu testen, und es bootete ordnungsgemäß! Ich habe jedoch nicht die geringste Ahnung, ob das Image jetzt einsatzbereit ist ...

Antwort1

Der Fehlerbericht befindet sich unter:https://bugs.launchpad.net/ubuntu/+bug/896772

Ich hoffe, es wird bald behoben!

verwandte Informationen