analog.eins
Anmeldungsdatum: 16. September 2015
Beiträge: 20
|
Ich versuche mich zum ersten Mal mit der Einrichtung virtueller Maschinen. Ich habe einen Ubuntu Server und möchte via SSH mit qemu die VMs installieren. Die virtuellen Maschinen sollen ebenfalls ubuntu in unterschiedlichen Versionen sein. Die Installation ist bisher immer an einem Screen hängen geblieben mit dem wenig aussagenden Verweis "640 x 480 Graphic Mode" (in der Shell). Es hat mich etwas Zeit gekostet dahinter zu kommen, was das Problem ist. Letztlich ist es aber logisch: Der Installer des Guest Systems startet ein grafisches Interface, der Host hat keins (Server) und so lässt sich die Installation nicht durchführen. Die Lösung scheint mir eine ubuntu ISO mit einem reinen Textinstaller zu sein. Den scheint es auch mit dem Debian Installer zu geben. Ich habe mir zu dem Zweck Ubuntu als Network Installer / mini.iso heruntergeladen. Leider startet diese Installation aber auch mit einem kurzen grafischen Interface. Dort kann man dann den Text-Installer als eine Variante der Installation auswählen. So weit komme ich bei einem System ohne GUI in der Shell aber nicht. Mann kann den "640 x 480 Graphic Mode" Screen mit ESC verlassen und kommt dann zu einem ich nenne es mal "Boot Prompt". Dort kann man den Installer auch mit bestimmten Flags starten, im Netz habe ich dazu z.B. | install vga=normal fb=false
|
gefunden. Hat bei mir aber nicht funktioniert. Meine Fragen:
Kann mir jemand bestätigen ob ich die Ursache für den Fehler richtig erkannt habe? Gibt es eine ubuntu Version mit einem reinen Text-Installer und wo? Wenn es das nicht gibt, wie ist den die übliche Vorgehensweise? Ich meine Ubuntu Server Host, Ubuntu Server Guest und qemu ist doch kein so exotisches Szenario?
Danke
Andreas
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Ich würde einfach die VNC-Konsole aktivieren, und die Installation damit durchführen. Dazu beim Starten der VM einfach
-vnc 127.0.0.1:1,password
mit angeben (password entsprechend ändern), und dann den Port per SSH-Tunnel auf die lokale Maschine ziehen:
ssh -CfN -L 5901:localhost:5901 user@remote
Anschließend kannst du dich mit einem normalen VNC-Client verbinden, und die Installation durchführen. Am Schluss nicht vergessen, den SSH-Prozess für den Tunnel zu killen, ansonsten bleibt er bis zum nächsten shutdown bestehen.
|
analog.eins
(Themenstarter)
Anmeldungsdatum: 16. September 2015
Beiträge: 20
|
Ich habe noch nicht mit der VNC Konsole gearbeitet, werde das aber wenn es erfolgversprechend ist gerne mal testen. Ich bin mir aber ziemlich sicher, dass es meine Probleme nicht löst. Der Host (in diesem Fall Ubuntu Server) hat keine GUI. Ob ich die Installation wie beschrieben via ssh von einem anderen Rechner ausführe oder direkt Monitor und Tastatur an den Server anschließe macht keinen Unterschied (das habe ich schon getestet). Sobald ich mit qemu den Installationsprozess auf dem Server starte, beginnt die Installation mit einer einfachen gui die ein Server ohne gui nicht abbilden kann? Nicht ssh ist meiner Meinung nach das Problem sondern die Tatsache, das Ubuntu Server keine grafische Oberfläche hat. Ob ich mich via ssh oder vnc auf dem Host anmelde ist egal wenn es auf dem Host nicht funktioniert. Ich benötige eine Möglichkeit ubuntu rein textbasiert zu installieren, was meiner Meinung nach irgendwie gehen muss?
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
analog.eins schrieb: Ich bin mir aber ziemlich sicher, dass es meine Probleme nicht löst. Der Host (in diesem Fall Ubuntu Server) hat keine GUI.
Das ist egal... Der Host braucht kein GUI.
Ich benötige eine Möglichkeit ubuntu rein textbasiert zu installieren, was meiner Meinung nach irgendwie gehen muss?
In der Tat, du kannst mit der Option -nographic bzw. -serial stdio auch eine direkte Konsole zur VM herstellen. Ich würde aber die VNC-Variante empfehlen, denn dort kannst du nach belieben connecten und disconnecten. Man kann auch die serielle Konsole an ein Char-Device des Hosts knöpern, beispielsweise mit -serial /dev/ttyS0 oder man machts per TCP-Socket, mittels -serial telnet:localhost:12345 . Sinnvoll wäre es da auch per -append "console=ttyS0" die ersten Bootmeldungen mitzubekommen.
|
analog.eins
(Themenstarter)
Anmeldungsdatum: 16. September 2015
Beiträge: 20
|
Noch mal für mich zum Verständnis: Wenn ich mich mit Monitor und Maus vor den Ubuntu Server setze und die Installation einer virtuellen Maschine mit qemu starte funktioniert das nicht wegen des grafischen Installers! Wenn ich von einem Remote Rechner via SSH die Installation einer virtuellen Maschine auf dem Ubuntu Server mit qemu starte funktioniert das nicht wegen des grafischen Installers! Aber Du meinst wenn ich mir den Bildschirminhalt des Ubuntu Servers mittels VNC auf meinen Remote Rechner hole und die unter 1. genannte Installation von Remote ausführe funktioniert das! Ich will Dir gerne glauben aber mir ist nicht klar warum es funktionieren sollte. Das Problem ist ja nicht der Remote Zugriff.
Also ich bin parallel dabei VNC zu installieren und mir einen Client für meinen Rechner zu suchen. Aber über eine kurze Erklärung würde ich mich freuen weil ich es nicht verstehe.
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
analog.eins schrieb: Wenn ich mich mit Monitor und Maus vor den Ubuntu Server setze und die Installation einer virtuellen Maschine mit qemu starte funktioniert das nicht wegen des grafischen Installers!
Jo.
Wenn ich von einem Remote Rechner via SSH die Installation einer virtuellen Maschine auf dem Ubuntu Server mit qemu starte funktioniert das nicht wegen des grafischen Installers!
Nein, das hab ich ja gerade erklärt. Wenn du auf dem Client-Rechner einen X-Server hast, reicht das aus.
Aber Du meinst wenn ich mir den Bildschirminhalt des Ubuntu Servers mittels VNC auf meinen Remote Rechner hole und die unter 1. genannte Installation von Remote ausführe funktioniert das! Ich will Dir gerne glauben aber mir ist nicht klar warum es funktionieren sollte. Das Problem ist ja nicht der Remote Zugriff.
Ich meine nicht den Bildschirminhalt des Ubuntu-Servers, sondern den der VM. Der Ubuntu-Server hat, wie du richtig erkannt hast, kein GUI, aber die VM schon. Und diesen Inhalt kann man per VNC an einem Port bereitstellen. Das ist quasi, wie als würdest du einen virtuellen Monitor und Peripherie an die VM anstecken, aber eben per VNC.
Also ich bin parallel dabei VNC zu installieren und mir einen Client für meinen Rechner zu suchen. Aber über eine kurze Erklärung würde ich mich freuen weil ich es nicht verstehe.
Du brauchst VNC nicht auf dem Hostsystem zu installieren! Alles was du brauchst, bringt qemu mit – du musst nur die entsprechende Option beim starten der VM angeben.
|
analog.eins
(Themenstarter)
Anmeldungsdatum: 16. September 2015
Beiträge: 20
|
Ok vielen Dank das hört sich gut an Ich starte den Installationsprozess mit qemu wie folgt
| qemu-system-x86_64 -enable-kvm -cpu host -hda webserver.img -cdrom mini.iso -boot d -m 1024
|
Wenn ich das mache hängt die Konsole einfach und nichts geht weiter Wenn ich den Installationsprozess mit qemu mit -vnc starte habe ich genau das gleiche (scheint mir auch logisch) | qemu-system-x86_64 -enable-kvm -vnc :1 -cpu host -hda webserver.img -cdrom mini.iso -boot d -m 1024
|
Dann komme ich überhaupt nicht mehr so weit, dass ich das Passwort ändern könnte, z.B. laut Wiki mit
im Prinzip brauche ich da auch kein Passwort weil das sowieso nur im lokalen Netzwerk ist aber die Installation scheint sowieso zu hängen. Sorry wenn ich noch ein paar Fragen zu dem VNC Thema habe, aber ich google mir da Einen und komme nicht voran:
| -vnc 127.0.0.1:1,password
|
Was für eine IP gibst Du da ein? Die IP meiner VM kenne ich ja noch gar nicht?
| ssh -CfN -L 5901:localhost:5901 user@remote
|
Sorry, verstehe ich überhaupt nicht was da passiert und wo das gemacht werden soll. Ich arbeite unter OSX und würde mich mit dem Onboard Client anmelden. Die Anmeldung erfolgt dort unter "Mit Server verbinden" und dann mit:
| vnc://XXX.XXX.XXX.XX:5901
|
vermutlich würde ich dort wenn die VM läuft die IP der VM einfügen und dann den Port? Aber woher weiß ich die IP der VM. Ich habe ein Bridge zum Testen mit DHCP konfiguriert. Ich habe den Installationsprozess mal angestoßen und in einer zweiten Shell mit
geschaut ob sich dort irgendwas getan hat (da ich bis jetzt keine VM am Laufen habe ist mir nicht klar wie das aussieht) aber dort tut sich nichts? Vielleicht habe ich doch noch ein paar grundsätzliche Probleme beim starten der Installation / der VM?
Was müsste eigentlich in dem VNC Client passieren. Da öffnet sich dann ein Fenster mit dem grafischen Ubuntu Installer? Vielen Dank bis hierher
|
analog.eins
(Themenstarter)
Anmeldungsdatum: 16. September 2015
Beiträge: 20
|
Ich habe einfach das Problem, dass nach dem Start der Installation entweder: NICHTS passiert oder mit dem flag -display curses dieser "640x480 graphic mode" erscheint. Ich komme einfach nicht so weit, dass ich irgendwas mit der VM machen könnte, z.B. per VNC Client zugreifen.
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
analog.eins schrieb: Wenn ich den Installationsprozess mit qemu mit -vnc starte habe ich genau das gleiche (scheint mir auch logisch)
| qemu-system-x86_64 -enable-kvm -vnc :1 -cpu host -hda webserver.img -cdrom mini.iso -boot d -m 1024
|
Ja, das ist auch richtig. Der Port für VNC sollte dann aber trotzdem gebunden sein. Das kannst du, während die VM läuft, im Hostsystem (!) mit netstat prüfen:
netstat -tulpen | grep 590
Dann komme ich überhaupt nicht mehr so weit, dass ich das Passwort ändern könnte, z.B. laut Wiki mit
Das ist auch nicht möglich, weil du wie gesagt keinen VNC-Server installiert hast. Das Passwort, wenn du eins vergeben willst, kannst du wie oben von mir Beschrieben festlegen. Das hier ist was völlig anderes, als ein normales VNC-Setup. Du musst dich um nichts kümmern, außer client-seitig um einen Client, also auf deinem Mac.
Sorry wenn ich noch ein paar Fragen zu dem VNC Thema habe, aber ich google mir da Einen und komme nicht voran:
| -vnc 127.0.0.1:1,password
|
Was für eine IP gibst Du da ein? Die IP meiner VM kenne ich ja noch gar nicht?
Nein, diese IP ist localhost, also eine Adresse, die nur lokal anliegt. QEMU bindet VNC also an die IP 127.0.0.1 und den Port 5901 (weil Port 5900 + Displaynummer, die hier 1 ist). Da du diesen Port aber nicht von außen, sondern nur lokal auf dem Hostsystem erreichst, brauchst du den nächsten Schritt:
| ssh -CfN -L 5901:localhost:5901 user@remote
|
Sorry, verstehe ich überhaupt nicht was da passiert und wo das gemacht werden soll.
In diesem Schritt wird ein SSH-Tunnel gelegt. Das ist einfach eine Port-Weiterleitung durch eine SSH-Verbindung. Der Port 127.0.0.1:5901 auf dem Hostsystem wird auf deinem Client (deinem Mac) gebunden. Das ermöglicht deinem VNC-Client sich mit dem Port zu verbinden.
Ich arbeite unter OSX und würde mich mit dem Onboard Client anmelden. Die Anmeldung erfolgt dort unter "Mit Server verbinden" und dann mit:
| vnc://XXX.XXX.XXX.XX:5901
|
Dort müsstest du dann also folgendes eingeben:
vnc://127.0.0.1:5901
vermutlich würde ich dort wenn die VM läuft die IP der VM einfügen und dann den Port?
Nein, die IP der VM ist in jedem Falle egal. Es gibt weder einen VNC-Server auf dem Hostsystem, noch in der VM. Sondern er wird direkt von QEMU bereitgestellt.
Was müsste eigentlich in dem VNC Client passieren. Da öffnet sich dann ein Fenster mit dem grafischen Ubuntu Installer?
Genau.
|
analog.eins
(Themenstarter)
Anmeldungsdatum: 16. September 2015
Beiträge: 20
|
Vielen Dank, so langsam arbeite ich mich voran. Dank
| netstat -tulpen | grep 590
|
| sehe ich das wenigstens überhaupt etwas passiert
tcp 0 0 127.0.0.1:5901 0.0.0.0:* LISTEN 1000 28902 1664/qemu-system-x8
tcp6 0 0 ::1:5901 :::* LISTEN 1000 28910 1673/ssh
|
Wenn ich den SSH Tunnel lege
| ssh -CfN -L 5901:localhost:5901 user@remote
|
bekomme ich nach dem Ersten Versuch nach Eingabe des Passowrts die Meldung
| bind: Address already in use
|
und wenn ich das dann noch mal mache
| bind: Address already in use
channel_setup_fwd_listener_tcpip: cannot listen to port: 5901
Could not request local forwarding.
|
Ich habe dazu noch folgende Fragen:
Irgendeine Idee woran das liegt? Das betrifft doch die Adresse der VM? Ich habe sowohl beim Start der VM als auch beim Tunnel ander Ports getestet (2 bzw 5902 oder 10 bzw 5910) aber das ändert nichts? user@remote sind ein normaler Benutzer auf dem Client/Mac und die IP oder der Hostname des Clients/Mac? Wenn ich die Konsole mit -vnc 127.0.0.1:1,password starte, ist password sowohl ein Option von -vnc als auch das default Passwort? Wofür brauche ich das? Wahrscheinlich wenn ich von meinem Client/Mac die VNC Verbindung öffne? So weit bin ich leider noch nicht gekommen? Kann ich das nicht einfach auch ohne die Passwort Option machen?
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
analog.eins schrieb: Wenn ich den SSH Tunnel lege
| ssh -CfN -L 5901:localhost:5901 user@remote
|
bekomme ich nach dem Ersten Versuch nach Eingabe des Passowrts die Meldung
| bind: Address already in use
|
Das Problem ist, dass du den Befehl auf deinem Mac ausführen musst, nicht auf dem Server. Auf dem Server ist alles ok, sobald der Port 5901 gebunden ist.
user@remote sind ein normaler Benutzer auf dem Client/Mac und die IP oder der Hostname des Clients/Mac?
Da du das auf dem Mac ausführen musst, ist user@remote einfach der normale SSH-Zugang für das Hostsystem.
Wenn ich die Konsole mit -vnc 127.0.0.1:1,password starte, ist password sowohl ein Option von -vnc als auch das default Passwort?
"password" ist an der Stelle das Passwort. Du kannst auch folgendes nehmen:
-vnc 127.0.0.1:1,mys3cre7p455w0rd
Wofür brauche ich das?
Das brauchst du nicht zwingend, wenn der Port nicht im Internet erreichbar ist, was er bei dir ja nicht ist.
|
analog.eins
(Themenstarter)
Anmeldungsdatum: 16. September 2015
Beiträge: 20
|
Du bist mein Held - funktioniert Weil ich die Sachen immer ganz gerne verstehe der Vollständigkeit halber noch ein paar Fragen:
| ssh -CfN -L 5901:localhost:5901 user@remote
|
Wo finde ich den hierfür die Doku bzw. was passiert an der Stelle -CfN (das finde ich nirgendwo)
Wenn ich wie von Dir vorgeschlagen
| -vnc 127.0.0.1:1,mys3cre7p455w0rd
|
angebe bekomme ich beim Start der VM folgende Fehlermeldung
| -vnc 127.0.0.1:1,mys3cre7p455w0rd: Invalid parameter 'mys3cre7p455w0rd'
|
An der Stelle habe ich lange gehangen bis ich das Passwort einfach weggelasssen habe. Würde mich aber doch interessieren wie es funktioniert.
Und hier noch ein Hinweis an alle Nutzer unter OS X. Theoretisch kann man mit Finder → gehe zu → Mit Server verbinden: vnc://127.0.0.1:5901 mit dem OS X eigenen VNC Client auf die virtuelle Maschine zugreifen (man kann den auch in der Shell öffnen open vnc://127.0.0.1:5901). Das hat bei mir nicht funktioniert und wenn man googelt findet man häufiger Hinweise das dieser VNC Client ziemlich buggy ist. Also irgendeinen anderen VNC Client installieren. Dann hat es bei mir auf Anhieb geklappt.
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
analog.eins schrieb: | ssh -CfN -L 5901:localhost:5901 user@remote
|
Wo finde ich den hierfür die Doku bzw. was passiert an der Stelle -CfN (das finde ich nirgendwo)
Siehe man ssh .
-C Requests compression of all data
-f Requests ssh to go to background just before command execution.
-N Do not execute a remote command. This is useful for just forwarding ports.
Siehe auch. Diese Parameter sind optional, ich nutze die nur gewohnheitsmäßig beim Tunnel erstellen.
angebe bekomme ich beim Start der VM folgende Fehlermeldung
| -vnc 127.0.0.1:1,mys3cre7p455w0rd: Invalid parameter 'mys3cre7p455w0rd'
|
Ok, dann muss das vermutlich doch so aussehen:
-vnc 127.0.0.1:1,password=mys3cre7p455w0rd
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Der Vollständigkeit halber: Es geht auch mit virsh und im Textmodus. Beispiel: virt-install --name VMNAME --ram 4096 --disk VM_PLATTE.img --vcpus 2 --os-type linux --os-variant ubuntu18.04 --network network:default --graphics none --console pty,target_type=serial --location 'http://gb.archive.ubuntu.com/ubuntu/dists/bionic/main/installer-amd64/' --extra-args 'console=ttyS0,115200n8 serial' --force --debug Damit installierst du direkt von den Quellen 18.04 im Textmodus.
|
analog.eins
(Themenstarter)
Anmeldungsdatum: 16. September 2015
Beiträge: 20
|
Vielen Dank, virsh steht bei mir auch tendenziell als nächstes auf der Liste. Jetzt muss ich mich aber erst von meinen Abenteuern mit VNC erholen. Immerhin habe ich jetzt schon mal VMs am Laufen. Wahrscheinlich gibt das zur gegebenen Zeit einen neuen Beitrag 😀
|