Setup und Start von VMs

Hier ist die Work-in-Pogress Zone für alles Nichtallgemeine sondern Konkrete an Vorarbeiten für die kommenden UEFI-Wiki-Artikel
Forumsregeln
Alles was konkrete Vorarbeiten zu den geplanten UEFI bezogenen Wiki-Artikeln angeht und keine allgemeine Infos sondern eben genauere Arbeitsschritte, detaliertere Anleitungen, aufgetauchte Probleme, Workarounds um eben diese etc. darstellt bitte hier reinsetzen.

Setup und Start von VMs

Beitragvon Robi » Mi 11. Feb 2015, 23:55

Als Virtualsierungsplattform habe ich auf QEMU gesetzt. Das ist nicht die schnellste aber für unsere Zwecke wohl sehr geeignet, da wir hier problemlos uns schnell mit virtueller Hardware rumspielen können.

Es wäre möglich mit aqemu Maschinen zusammenzubauen, zu verwalten und zu starten. Die Konfigurationsmöglichkeiten dort sind ziemlich umfassend und wer dort mal reinschauen möchte kann dieses gerne tun. Ich nutze es manchmal wenn ich nach speziellen Optionen und Einstellungen suche, da man dort dann auch die Befehlszeile herauslesen kann mit der die VM gestartet wird.

Für unsere Zwecke reicht es vollkommen aus mit minimaler Hardware und mit viel default zu arbeiten. Wir brauchen keinen speziellen Prozessor, keine Soundkarte und keine spezielle Grafikkarte und mit einer einfachen Netzwerkkarte kommen wir auch aus. Bei den Plattenkonfiguration müssen wir viel rumspielen,

letztlich brauchen wir wenn wir die v-Platten erstellt haben nur eine Befehlszeile um die VM zu starten. Diese Zeile ist etwas länger, kann aber bequem in eine Datei geschrieben werden, die dann als root von der Shell aus gestartet wird. Diese Datei ist schnell kopiert und die Plattennamen oder die Reihenfolge der Platten geändert und schon haben wir die Hardware der VM geändert. Das ist optimal und gejt schneller und problemloser wie mit jeder anderen Virtualisierungssoftware mit der wir erst noch einen Manager benötigen und die Konfiguration in xml-Dateien abgelegt und verwaltet wird.

Eine soche Zeile zum start der VM sieht zB so hier aus. (alles eine Zeile)
Code: Alles auswählen
/usr/bin/qemu-system-x86_64 -k de -smp 2 -enable-kvm -m 2000 -drive file=/mnt/VM/ISO/openSUSE-13.1-DVD-x86_64.iso,media=cdrom -drive file=/home/VM/name1.qcow2,media=disk -net nic,vlan=0,macaddr=00:16:3e:66:bb:e9,model=e1000 -net tap,vlan=0,ifname=br0.suse-13.1 -boot menu=on -bios /usr/share/qemu/ovmf-x86_64.bin -name suse-13.1   

Ich erkläre mal die einzelnen Komponenten und Optionen dieses Befehls
Code: Alles auswählen
/usr/bin/qemu-system-x86_64                       # das binary des QEMU Emulator dem die Optionen der VM übergeben werden
-k de                                                           # Sprache der Tastatur ( DEUTSCH)
-smp 2                                                        # Anzahl der Prozessoren der VM (2)
-enable-kvm                                                # volle Virtualsierung
-m 2000                                                      # Speicher den die VM bekommen soll in MByte (2GB)
-drive file=/mnt/VM/ISO/openSUSE-13.1-DVD-x86_64.iso,media=cdrom    # ein CD/DVD Laufwerk (Media ist die Imagedatei)
-drive file=/home/VM/name1.qcow2,media=disk                     # eine VDISK (die qcow2 Datei)
-net nic,vlan=0,macaddr=00:16:3e:66:bb:e9,model=e1000       # eine e1000 LAN-karte und eine eindeutige oder zufällige MAC
-net tap,vlan=0,ifname=br0.suse-13.1          # die Karte wird hiermit und den /etc/qemu.if* Scripten mit der Bridge verbunden
-boot menu=on                                           # Bootmenu aktivert
-bios /usr/share/qemu/ovmf-x86_64.bin        # der UEFI Bios der verwendet werden soll, (ohne diese Option hätten wir MBR boot
-name suse-13.1                                        # einen Namen den die VM tragen soll


Mehr und andere Optionen könnten wir jederzeit einfügen, werden wir aber am Anfang für unsere ersten Tests warscheinlich nicht brauchen.
Wie zu sehen ist, das ist kein Hexenwerk dort eine Platte zu tauschen oder den Speicher aufzurüsten oder eine CPU mehr einzubauen usw.

Von den ovmf-Dateien ( das virtuelle UEFI) haben wir wenn ihr das vorgeschlagene Setup verwendet habt, eine ganze Menge mehr. Sie unterscheiden sich wahrscheinlich im Inhalt und vor allem in den Zertifikaten die dort enthalten sind, damit müssen wir uns demnächst etwas beschäftigen wenn es um secure-Boot geht. Dort gibt es wahrscheinlich viel rumzuspielen.

Damit das ganze noch einfacher wird habe ich mal ein Script geschrieben, Dieses könnt ihr als Vorlage für verschiedene Maschienen nehmen. Ihr brauch im Script nur die wichtigsten Parameter an eure Gegebenheiten, Plattennamen- und ISO-namen anzupassen und die Datei zu starten. Dieses starte dann die VM
so ist es noch einfacher mit der Hardware und mit vielen Platten für viele Installationen und Boottests herumzuspielen
Code: Alles auswählen
#!/bin/bash

# Dieses Script startet eine einfache Virtuelle Maschine mittes QEMU
# ihr könnt am Anfang die für unsere Tests wichtigen Parameter der Maschine einstellen
# einige Parameter zB eine e1000 LAN-Karte werden automatisch gesetzt
# Autor: robi  Datum: 11.02.2015
# Version : 0.1

# ------------ Konfigurations--------------------------------------------------------
# Name der Virtuellen Maschine
NAME="suse-13.1"

# Anzahl Prozessoren 1 bis 2 reichen für unsere Zwecke aus
CPU=2

# Hauptspeichergroße in MByte 1500  bis  2000 sollten reichen (entspricht 1,5 - 2 GByte )
MEM=2000

# UEFI Benutzung oder normaler BIOS wenn hier  0 oder kein Wert eingetragen ist
UEFI=1

# SCSI-CDROM Laufwerk entweder die Imagedatei
# alternativ  wenn das physikalische DVD-Laufwerk des Hosts benutzt werde soll, "/dev/cdrom"
CDROM="/mnt/VM/ISO/openSUSE-13.1-DVD-x86_64.iso"


# Im folgenden die Festplatten für die VM, wenn nicht vorhanden dann leer lassen.
# 1. ATA Platte  /dev/sda
HD[0]="/home/VM/name1.qcow2"

# 2. ATA Platte  /dev/sdb
HD[1]=

# 3. ATA Platte  /dev/sdc
HD[2]=

#------------- ENDE der änderbaren Konfigurationsangaben -----------------------------
# ab hier nicht mehr ändern oder wissen was ihr tut, Bearbeitung der Eingaben

MAC=00:16:3e:$(printf "%02x:%02x:%02x" $(( $RANDOM % 256 )) $(( $RANDOM % 256 )) $(( $RANDOM % 256 )) )
UEFI=${UEFI/0/''}
UEFI=${UEFI:+"-bios /usr/share/qemu/ovmf-x86_64.bin"}

QEMU="/usr/bin/qemu-system-x86_64"
LANG="de"

if [ -e $CDROM ]
  then
#       CDROM="-drive file=${CDROM},if=scsi,index=0,media=cdrom"
        CDROM="-drive file=${CDROM},media=cdrom"
  else
        CDROM=
fi

for i in 0 1 2
  do
        if [ -e "${HD[$i]}" ]
          then
                HD[$i]="-drive file=${HD[$i]},media=disk"
          else
                HD[$i]=
        fi
done

# Ausgabe des Startkommandos der Maschine
echo "VM \"$NAME\"  wird gestartet mit folgendem Befehl:"
echo "$QEMU" -k $LANG -smp $CPU -enable-kvm -m $MEM $CDROM ${HD[0]} ${HD[1]} ${HD[2]} \
 -net nic,vlan=0,macaddr=${MAC},model=e1000  -net tap,vlan=0,ifname="br0.$NAME" -boot menu=on $UEFI -name "$NAME"


# Start der Maschin3
"$QEMU" -k $LANG -smp $CPU -enable-kvm -m $MEM $CDROM ${HD[0]} ${HD[1]} ${HD[2]} \
 -net nic,vlan=0,macaddr=${MAC},model=e1000  -net tap,vlan=0,ifname="br0.$NAME" -boot menu=on $UEFI -name "$NAME" &

#------------------------ Ende Script ------------------------------------------------

Damit solltet ihr eure ersten VM unter UEFI starten können. unmittelbar nach der Initialisierung der Grafikarte sollte ihr eine grafisches LOGO sehen wenn ihr hier eine Tastatureingabe macht, kommt ihr in das konfigmen dieser UEFI, aber wenn ihr eine DVD oder ein Image davon als DVD angegeben habt, sollte diese wahrscheinlich automatisch über UEFI booten, so das ihr schonmal die ersten Installationsversuche machen könntet.

Das Script gibt auch eine Ausgabe der Befehlszeile mit der diese Maschiene gestartet wurde. Was mir gerade auffällt, ich habe in das Script eine automatische Generierung einer zufälligen MAC-Adresse bei jedem Start über dieses Script einprogrammiert. Das wird natürlich je nach Distribution zu Problemen führen, wenn die Netzkartenkonfiguration auf die nackte MAC-Adresse losgeht. Desshalb ist es wohl besser wenn ihr gegebenenfalls nach dem ersten Start während ihr die Maschien installiert, die Befehlszeile die das Script ausgibt kopiert und in einer Datei sichert. Wenn dann die Maschine von qemu wieder neu gestartet werden soll, dann die so gesicherte Befehlszeile ausführen- Sonst könnte es je nach Distribution und Konfiguration eventuell zu Problemen mit Netzwerkkonfiguration geben. Mal sehen ob mir für das Script da noch was anderes mit der MAC-Adresse einfällt.

Frage, Probleme, Anregungen, Erweiterungen, ...... zu diesem Thema, hier in diesen Thread

robi
Robi
 
Beiträge: 68
Themen: 10
Registriert: So 15. Feb 2015, 16:02

Re: Setup und Start von VMs

Beitragvon gehrke » So 15. Mär 2015, 15:16

Robi hat geschrieben:Bei den Plattenkonfiguration müssen wir viel rumspielen,

letztlich brauchen wir wenn wir die v-Platten erstellt haben [...]

Hinweis (weil ich erst suchen musste): Das Handling von virtuellen Festplatten für diesen Zweck ist hier beschrieben:
viewtopic.php?f=42&t=9
http://www.youtube.com/watch?v=PpUrMk3g_og (Angriff auf die Freiheit von Ilija Trojanow / Juli Zeh) - let’s encrypt
Benutzeravatar
gehrke
 
Beiträge: 118
Themen: 1
Registriert: Mo 23. Dez 2013, 21:53

Re: Setup und Start von VMs

Beitragvon gehrke » So 15. Mär 2015, 15:40

Habe das Setup der Hostmaschine nach dieser Anleitung (erfolgreich, wie ich dachte) durchgeführt:
viewtopic.php?f=42&t=8

Anschließend habe ich eine virtuelle Platte nach Anleitung erzeugt und wollte es nun mit einer 13.1-Susi testen. Hierzu habe ich obiges Script genommen und 2 Pfade angepasst. Leider bekomme ich eine Fehlermeldung:
Code: Alles auswählen
gehrke@linux-h2ek:~/vm> ./start_vm.sh
VM "suse-13.1"  wird gestartet mit folgendem Befehl:
/usr/bin/qemu-system-x86_64 -k de -smp 2 -enable-kvm -m 2000 -drive file=/home/gehrke/vm/iso/openSUSE-13.1-DVD-x86_64.iso,media=cdrom -drive file=/home/VM/test1-openSUSE-13.1.qcow2,media=disk -net nic,vlan=0,macaddr=00:16:3e:74:b6:44,model=e1000 -net tap,vlan=0,ifname=br0.suse-13.1 -boot menu=on -bios /usr/share/qemu/ovmf-x86_64.bin -name suse-13.1
gehrke@linux-h2ek:~/vm> Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
^C
gehrke@linux-h2ek:~/vm>


Nachtrag - meine Host-CPU:
Code: Alles auswählen
linux-h2ek:/home/gehrke/vm # cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Genuine Intel(R) CPU           U4100  @ 1.30GHz
stepping        : 10
microcode       : 0xa0b
cpu MHz         : 1200.000
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm dtherm
bogomips        : 2593.34
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Genuine Intel(R) CPU           U4100  @ 1.30GHz
stepping        : 10
microcode       : 0xa0b
cpu MHz         : 1200.000
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
apicid          : 1
initial apicid  : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm dtherm
bogomips        : 2593.34
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

http://www.youtube.com/watch?v=PpUrMk3g_og (Angriff auf die Freiheit von Ilija Trojanow / Juli Zeh) - let’s encrypt
Benutzeravatar
gehrke
 
Beiträge: 118
Themen: 1
Registriert: Mo 23. Dez 2013, 21:53

Re: Setup und Start von VMs

Beitragvon Robi » So 15. Mär 2015, 17:25

Schau mal mit "lsmod" was bei dir für Module geladen sind. Ich denke bei deiner CPU sollten diese beiden von qemu geladen werden
Code: Alles auswählen
kernel/arch/x86/kvm/kvm.ko
kernel/arch/x86/kvm/kvm-intel.ko

wenn nicht geladen dann mal "modprobe kvm-intel" und dann nochmal versuchen.

robi
Robi
 
Beiträge: 68
Themen: 10
Registriert: So 15. Feb 2015, 16:02

Re: Setup und Start von VMs

Beitragvon gehrke » So 15. Mär 2015, 18:03

Code: Alles auswählen
linux-h2ek:/home/gehrke/vm # lsmod | grep kvm
kvm                   469295  0

Code: Alles auswählen
linux-h2ek:/home/gehrke/vm # modprobe kvm-intel
FATAL: Error inserting kvm_intel (/lib/modules/3.11.10-25-desktop/kernel/arch/x86/kvm/kvm-intel.ko): Operation not supported

linux-h2ek:/home/gehrke/vm # dmesg | grep kvm
[ 9613.821862] kvm: no hardware support
[10561.449997] kvm: no hardware support

Ich schau mal nach, ob ich HW-Virtualisierung im BIOS anschalten kann...

EDIT: Nein, da ist nix zu aktivieren!
http://www.youtube.com/watch?v=PpUrMk3g_og (Angriff auf die Freiheit von Ilija Trojanow / Juli Zeh) - let’s encrypt
Benutzeravatar
gehrke
 
Beiträge: 118
Themen: 1
Registriert: Mo 23. Dez 2013, 21:53

Re: Setup und Start von VMs

Beitragvon Robi » So 15. Mär 2015, 18:59

Intel® Pentium® Processor SU4100 (2M Cache, 1.30 GHz, 800 MHz FSB)
Intel® Turbo-Boost-Technik ‡ No
Intel® Hyper-Threading-Technik ‡ No
Intel® Virtualisierungstechnik (VT-x) ‡ No
Intel® 64 ‡ Yes
Erweiterte Intel SpeedStep® Technologie Yes


Die Vollvirtualsisierung mit dem qemu Parameter "-enable-kvm" sollte entweder Intel VTx oder AMD -V benötigen, ob es ohne diesen Parameter auch geht ????

Starte mal aqemu und versuch mal mit deinen beiden Images irgend eine VM zu erstellen und zum laufen zum bringen.
So dicke hab ich die QEMU Docu auch nicht gelesen, und brauchte ich auch nie, da meine CPUs sowas alles schon seit Jahren haben.

robi
Robi
 
Beiträge: 68
Themen: 10
Registriert: So 15. Feb 2015, 16:02

Re: Setup und Start von VMs

Beitragvon gehrke » So 15. Mär 2015, 19:28

Hatte das Host-System zum Glück auf eine externe USB-Platte installiert.

Mit dieser Platte kann ich einen anderen PC als Host-System mit offenbar passenderer CPU booten, dort startet die VM dann erfolgreich. Muss allerdings die Netzwerk-Konfiguration auf die neue Maschine hin anpassen wegen unterschiedlicher NICs. Das läuft auch, diesen Post verfasse ich mit diesem Host-System.

Jetzt habe ich aber ein Problem mit der graphischen Darstellung innerhalb der VM. So ist das Teil leider nicht zu bedienen. Ich versuche mal, irgendwo einen Screenshot hochzuladen, damit Ihr seht, was ich sehe...

So sieht's aus:Bild
Hier viewtopic.php?f=42&t=8#p34 wird von Problemen berichtet. Ist es das selbe Problem?
TNX
http://www.youtube.com/watch?v=PpUrMk3g_og (Angriff auf die Freiheit von Ilija Trojanow / Juli Zeh) - let’s encrypt
Benutzeravatar
gehrke
 
Beiträge: 118
Themen: 1
Registriert: Mo 23. Dez 2013, 21:53

Re: Setup und Start von VMs

Beitragvon gehrke » So 15. Mär 2015, 20:55

Der Start-Parameter "-vga qxl" beseitigt das Problem mit der fehlerhaften Anzeige in meinem Fall!
http://www.youtube.com/watch?v=PpUrMk3g_og (Angriff auf die Freiheit von Ilija Trojanow / Juli Zeh) - let’s encrypt
Benutzeravatar
gehrke
 
Beiträge: 118
Themen: 1
Registriert: Mo 23. Dez 2013, 21:53

Re: Setup und Start von VMs

Beitragvon gehrke » So 15. Mär 2015, 21:36

So, habe meine erste VM installiert, derzeit noch mit mäßigem Erfolg. Zwar läuft die VM, aber es fehlt nun die Maus (während des Installations-Prozesses war die noch da) und das Netzwerk funktioniert noch nicht. Letzteres kann entweder daran liegen, dass ich das Host-System etwas unsauber getauscht habe oder an dem von Robi berichteten MAC-Problem - oder beidem.

Positiv ist aber, dass ich beim Start kurz was von 'TIANOCORE' lese. Ich vermute, das ist das UEFI-Image, um welches es eigentlich geht.

However, für heute ist Schluss...
http://www.youtube.com/watch?v=PpUrMk3g_og (Angriff auf die Freiheit von Ilija Trojanow / Juli Zeh) - let’s encrypt
Benutzeravatar
gehrke
 
Beiträge: 118
Themen: 1
Registriert: Mo 23. Dez 2013, 21:53

Re: Setup und Start von VMs

Beitragvon Robi » So 15. Mär 2015, 23:04

Das mit der Grafik ist erst mit einem letztem Updates in das QEMU Paket reingekommen, das selbe hatte ich auch, irgendwie scheint die Einstellung auf default qemu-Grafikkarte nicht mehr wirklich zu funktionieren, ich musste hier "-vga cirrus" nehmen.
Positiv ist aber, dass ich beim Start kurz was von 'TIANOCORE' lese. Ich vermute, das ist das UEFI-Image, um welches es eigentlich geht.
genau um das geht es. Wenn dieser Bildschirm erscheint, kannst du mit irgend einer Taste in das UEFI-Setup verzweigen.

Mausprobleme sind kurz nach der Erstinstallation bei mir auch aufgetreten und später gelegentlich kurz nach dem Start der VM. Ich vermute dahinter die für uns unnötigen und Prozessorintensiven Aktivitäten auf KDE-Seite, wie KDE-Indizierung und/oder Apper, dahinter. Nachdem ich die Dinger runter geschmissen oder ausgeschalten habe, ist es sehr selten. Bei mir hilft oftmals ALT-CTRL-G und dann mal kurz ein Fenster des Hosts anzuklicken bevor man wieder zurück auf die VM geht, Dann solte sich die Maus auch richtig zwichen Host und VM synchronisieren.
Geholfen hat bei auch schon mal das kopieren (und damit defragmentieren) des sparsen Plattenimages auf dem die VM ihr Rootdevice hat, das war bei mir kurz nach der Installation in 10000 Fragmente quer über die Platte fragmentiert.
Probleme habe ich gelegentlich nur wenn ich die VM im Vollbildmodus habe, dann komme ich ab und zu mal nicht so einfach zurück auf die Hostmaschine. Aber mir reicht eigentlich eine Eche der VM das ich dort ein Terminal laufen lassen kann. Den ganzen Bildschirm der VM braucht man selten, außer vielleicht wenn man was mit yast2 machen will.

Netzwerk noch mal alles überprüfen, (Scripte und deren Rechte, starten der VM mit Rootrechten) wenn sich die VM mit der Bridge verbindet oder trennt, sollte du im Startterminal die entsprechenden Ausgaben dafür sehen. Netzwerkeinstellungen auf der VM hat bei mir Yast auch schon mal weggeschissen weil der DHCP-Server etwas langsam war. Bin dann auf feste Addresse in VM gegangen.
MAC-Adresen-Probleme solltest du mit Opensuse 13.x auf den VMs trotzdem nicht bekommen, ehr Probleme das dir irgendwann der freie Adressbereich des DHCP-Servers im Router ausgeht und du im Router mal die lease time etwas runterschrauben musst, und diesen mal rebooten musst. ;)

robi
Robi
 
Beiträge: 68
Themen: 10
Registriert: So 15. Feb 2015, 16:02

Nächste

Zurück zu Workspace

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron