Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Letzte Überarbeitung Beide Seiten der Revision | ||
v_lizedlab [2012/06/25 00:28] admin |
v_lizedlab [2015/12/09 22:31] admin |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== V'lizedlab ====== | + | ====== VlizedLab ====== |
+ | |||
+ | [[USB-Stick einbinden]] | ||
+ | [[Zugriff auf eine DVD]] | ||
+ | |||
+ | |||
+ | ===== Download ===== | ||
+ | |||
+ | http://proxy.asn-graz.ac.at/~d4e/experimental/ | ||
+ | |||
+ | tar xvfj vlizedlab.x86_64.tar.bz2 -C / | ||
+ | |||
+ | *PXE Installationsdateien | ||
+ | /srv/tftpboot | ||
+ | |||
+ | *Skripte (künftig als YaST-Modul) | ||
+ | /opt/s4e/vlizedlab | ||
+ | |||
+ | *Globale Konfiguration für alle virtuellen Maschinen | ||
+ | /usr/share/vlizedlab/scripts/vb... | ||
+ | |||
+ | *Beispiel-Konfigurationsdateien für die jeweilige virtuelle Maschine | ||
+ | /vm/vb/Windows7... | ||
===== Installation via PXE ===== | ===== Installation via PXE ===== | ||
Zeile 18: | Zeile 40: | ||
*Standardbenutzer | *Standardbenutzer | ||
- | * root : vlizedlab | + | * root : open23 |
* student : student | * student : student | ||
apt-get update | apt-get update | ||
- | apt-get install mc vim htop hwinfo screen virtualbox virtualbox-ose hal ntpdate | + | apt-get install mc vim htop hwinfo screen virtualbox virtualbox-ose hal ntpdate ntfs-3g |
apt-get dist-upgrade | apt-get dist-upgrade | ||
Zeile 226: | Zeile 248: | ||
#VBoxManage --nologo storageattach $MACHINE --storagectl C$MACHINE --port 1 --device 0 \ | #VBoxManage --nologo storageattach $MACHINE --storagectl C$MACHINE --port 1 --device 0 \ | ||
# --type dvddrive --medium $MACHINEDIR/Windows7_AIO.iso | # --type dvddrive --medium $MACHINEDIR/Windows7_AIO.iso | ||
+ | </code> | ||
+ | |||
+ | ==== WindowsXP ==== | ||
+ | |||
+ | <code bash /vm/vb/WindowsXP/init.add.sh> | ||
+ | VBoxManage --nologo modifyvm $MACHINE --ostype "WindowsXP" | ||
+ | VBoxManage --nologo modifyvm $MACHINE --nictype1 "Am79C970A" --audiocontroller hda | ||
+ | VBoxManage --nologo storagectl $MACHINE --name C$MACHINE --add ide --controller PIIX4 --hostiocache on | ||
+ | VBoxManage --nologo sharedfolder add $MACHINE --name media --hostpath /media --automount | ||
+ | |||
+ | mtyp="immutable" | ||
+ | #mtyp="normal" | ||
+ | VBoxManage --nologo storageattach $MACHINE --storagectl C$MACHINE --port 1 --device 0 \ | ||
+ | --type hdd --medium $MACHINEDIR/$MACHINE.vdi --mtype $mtyp | ||
+ | |||
+ | #VBoxManage --nologo storageattach $MACHINE --storagectl C$MACHINE --port 1 --device 0 \ | ||
+ | # --type dvddrive --medium $MACHINEDIR/WindowsXP.iso | ||
</code> | </code> | ||
Zeile 243: | Zeile 282: | ||
#VBoxManage --nologo storageattach $MACHINE --storagectl C$MACHINE --port 1 --device 0 \ | #VBoxManage --nologo storageattach $MACHINE --storagectl C$MACHINE --port 1 --device 0 \ | ||
# --type dvddrive --medium $MACHINEDIR/d4e2012.i586.iso | # --type dvddrive --medium $MACHINEDIR/d4e2012.i586.iso | ||
+ | </code> | ||
+ | |||
+ | ==== Windows 8 ==== | ||
+ | |||
+ | <code bash /vm/vb/Windows8/init.add.sh> | ||
+ | VBoxManage --nologo modifyvm $MACHINE --synthcpu on --memory 3000 --vram 21 --pae on --ioapic on --hwvirtex on --bioslogofadein off --bioslogofadeout off --bioslogodisplaytime 1 --nic1 nat --audio alsa --accelerate2dvideo off --accelerate3d off | ||
+ | |||
+ | VBoxManage --nologo modifyvm $MACHINE --ostype "Windows8" | ||
+ | VBoxManage --nologo modifyvm $MACHINE --nictype1 "82540EM" --audiocontroller hda | ||
+ | VBoxManage --nologo storagectl $MACHINE --name C$MACHINE --add sata --controller IntelAHCI --hostiocache on | ||
+ | VBoxManage --nologo sharedfolder add $MACHINE --name media --hostpath /media --automount | ||
+ | |||
+ | mtyp="immutable" | ||
+ | #mtyp="normal" | ||
+ | VBoxManage --nologo storageattach $MACHINE --storagectl C$MACHINE --port 1 --device 0 \ | ||
+ | --type hdd --medium $MACHINEDIR/$MACHINE.vdi --mtype $mtyp | ||
+ | |||
+ | #VBoxManage --nologo storageattach $MACHINE --storagectl C$MACHINE --port 1 --device 0 \ | ||
+ | # --type dvddrive --medium $MACHINEDIR/de_windows_8_x64_x86_aio.iso | ||
+ | |||
</code> | </code> | ||
Zeile 258: | Zeile 317: | ||
</code> | </code> | ||
+ | ==== Lernstick ==== | ||
+ | |||
+ | <code bash /vm/vb/lernstick/init.add.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | MACHINE="geogebra" | ||
+ | MACHINEDIR="/home/matthias/Downloads/geogebra" | ||
+ | rm -rf $MACHINEDIR/$MACHINE | ||
+ | |||
+ | VBoxManage --nologo createvm --name $MACHINE --register --basefolder $MACHINEDIR | ||
+ | |||
+ | VBoxManage --nologo modifyvm $MACHINE --synthcpu on --memory 1536 --vram 21 --ioapic on --hwvirtex off --bioslogofadein off --bioslogofadeout off --bioslogodisplaytime 1 --nic1 nat --audio alsa --accelerate2dvideo on --accelerate3d on | ||
+ | |||
+ | VBoxManage --nologo modifyvm $MACHINE --ostype "Debian" | ||
+ | VBoxManage --nologo modifyvm $MACHINE --chipset piix3 --pagefusion on | ||
+ | VBoxManage --nologo storagectl $MACHINE --name C$MACHINE --add ide --controller PIIX4 --hostiocache on | ||
+ | VBoxManage --nologo modifyvm $MACHINE --mouse usbtablet | ||
+ | |||
+ | VBoxManage --nologo storageattach $MACHINE --storagectl C$MACHINE --port 1 --device 0 \ | ||
+ | --type dvddrive --medium $MACHINEDIR/geogebra-lernstick-2014-02-18.iso | ||
+ | |||
+ | VBoxManage --nologo startvm $MACHINE 2>&1 3>&1 | ||
+ | </code> | ||
===== Dateien und Ordner auf alle Clients übertragen ===== | ===== Dateien und Ordner auf alle Clients übertragen ===== | ||
Zeile 279: | Zeile 361: | ||
tar -czv udpcastlist `cat udpcastlist` | udp-sender | tar -czv udpcastlist `cat udpcastlist` | udp-sender | ||
+ | |||
+ | ===== Verteilen der virtuellen Maschinen ===== | ||
+ | |||
+ | == Empfänger == | ||
+ | |||
+ | vludpreceiveVMs | ||
+ | |||
+ | == Sender == | ||
+ | |||
+ | vludpsendVMs | ||
===== Deployment auf einen anderen Rechner ===== | ===== Deployment auf einen anderen Rechner ===== | ||
Zeile 299: | Zeile 391: | ||
mkdir /media/sda3/{dev,proc,sys,vm} | mkdir /media/sda3/{dev,proc,sys,vm} | ||
- | rn /media/sda1/etc/udev/rules.d/70-persistent-net.rules | + | rm /media/sda1/etc/udev/rules.d/70-persistent-net.rules |
mount --bind /proc /media/sda1/proc | mount --bind /proc /media/sda1/proc | ||
Zeile 316: | Zeile 408: | ||
*planck:/opt/wartung/vlizedlab # | *planck:/opt/wartung/vlizedlab # | ||
- | klonen.sh ping.sh reboot.sh setwol.sh shutdown.sh ssh.sh startvm.sh transfer.sh view.sh wakeup.sh wakeup_single.sh | + | <code ini /etc/dhcpd.conf> |
+ | authoritative; | ||
+ | ddns-update-style none; | ||
+ | |||
+ | # eth2 unterrichtsnetz | ||
+ | subnet 192.168.100.0 netmask 255.255.255.0 { | ||
+ | authoritative; | ||
+ | range 192.168.100.161 192.168.100.200; | ||
+ | range 192.168.100.30 192.168.100.100; | ||
+ | default-lease-time 14400; | ||
+ | max-lease-time 172800; | ||
+ | |||
+ | option broadcast-address 192.168.100.255; | ||
+ | option routers 192.168.100.254; | ||
+ | option subnet-mask 255.255.255.0; | ||
+ | option netbios-name-servers 192.168.100.254; | ||
+ | option netbios-node-type 8; | ||
+ | option domain-name-servers 193.170.221.1, 8.8.4.4, 8.8.8.8; | ||
+ | option ntp-servers 193.170.221.1; | ||
+ | # pxe | ||
+ | filename "pxelinux.0"; | ||
+ | next-server 192.168.100.14; | ||
+ | } | ||
+ | |||
+ | # AULA HP xw4400 Workstation | ||
+ | host aula01 { hardware ethernet 00:1c:c4:32:0b:b7; fixed-address 192.168.100.74; } | ||
+ | host aula02 { hardware ethernet 00:15:60:a4:48:7f; fixed-address 192.168.100.75; } | ||
+ | host aula03 { hardware ethernet 00:1b:78:b0:8c:2c; fixed-address 192.168.100.76; } | ||
+ | host aula04 { hardware ethernet 00:1c:c4:32:0a:30; fixed-address 192.168.100.77; } | ||
+ | host aula05 { hardware ethernet 00:1c:c4:32:07:88; fixed-address 192.168.100.78; } | ||
+ | host aula06 { hardware ethernet 00:1b:78:b0:86:50; fixed-address 192.168.100.79; } | ||
+ | host aula07 { hardware ethernet 00:1b:78:a5:f6:c2; fixed-address 192.168.100.80; } | ||
+ | host aula08 { hardware ethernet 00:1c:c4:32:0b:a0; fixed-address 192.168.100.81; } | ||
+ | host aula09 { hardware ethernet 00:1c:c4:32:07:34; fixed-address 192.168.100.82; } | ||
+ | host aula10 { hardware ethernet 00:1c:c4:32:0b:e5; fixed-address 192.168.100.83; } | ||
+ | host aula11 { hardware ethernet 00:1c:c4:32:0b:db; fixed-address 192.168.100.84; } | ||
+ | host aula12 { hardware ethernet 00:1c:c4:32:0b:a1; fixed-address 192.168.100.85; } | ||
+ | |||
+ | # eth1 verwaltungsnetz | ||
+ | |||
+ | subnet 192.168.238.0 netmask 255.255.255.0 { | ||
+ | range 192.168.238.100 192.168.238.200; | ||
+ | default-lease-time 345600; | ||
+ | max-lease-time 691200; | ||
+ | option broadcast-address 192.168.238.255; | ||
+ | option routers 192.168.238.254; | ||
+ | option subnet-mask 255.255.255.0; | ||
+ | option netbios-name-servers 193.170.221.1; | ||
+ | option domain-name-servers 8.8.8.8, 193.170.221.1, 8.8.8.8; | ||
+ | option ntp-servers 193.170.221.1; | ||
+ | } | ||
+ | |||
+ | </code> | ||
+ | |||
+ | <code bash klonen.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | if [ "$1" != "eg" ] && [ "$1" != "ikt" ] &&[ "$1" != "aula" ] &&[ "$1" != "ug" ] &&[ "$1" != "klabu" ]; then | ||
+ | echo "eg / ikt / aula / ug / klabu" | ||
+ | exit | ||
+ | fi | ||
+ | |||
+ | clients=`awk '/'$1'/ {print $2}' /etc/dhcpd.conf` | ||
+ | if [ "$1" == "ikt" ]; then | ||
+ | MUSTERRECHNER="192.168.100.130" | ||
+ | elif [ "$1" == "klabu" ]; then | ||
+ | MUSTERRECHNER="192.168.100.86" | ||
+ | elif [ "$1" == "aula" ]; then | ||
+ | MUSTERRECHNER="192.168.100.74" | ||
+ | elif [ "$1" == "eg" ]; then | ||
+ | MUSTERRECHNER="192.168.100.60" | ||
+ | elif [ "$1" == "ug" ]; then | ||
+ | MUSTERRECHNER="192.168.100.109" | ||
+ | fi | ||
+ | |||
+ | for client in $clients; do | ||
+ | echo $client | ||
+ | IP=`awk '/'$client'/ {print $8}' /etc/dhcpd.conf | tr -d ";"` | ||
+ | if [ "$IP" != "$MUSTERRECHNER" ]; then | ||
+ | /usr/bin/expect -c " spawn /usr/bin/ssh -q -l root $IP \" killall udp-receiver; killall VirtualBox; vlinitvbox; killall screen; rm -rf /var/run/screen; mkdir /var/run/screen; chown root:utmp /var/run/screen; screen -dm -S udp vludpreceiveVMs; \" ;\ | ||
+ | expect \"word: \" {send \"PASSWORT\r\" } ;\ | ||
+ | interact " | ||
+ | fi | ||
+ | done | ||
+ | </code> | ||
+ | |||
+ | <code bash transfer.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | if [ "$1" != "eg" ] && [ "$1" != "ikt" ] &&[ "$1" != "aula" ] &&[ "$1" != "ug" ] &&[ "$1" != "klabu" ]; then | ||
+ | echo "eg / ikt / aula / ug / klabu" | ||
+ | exit | ||
+ | fi | ||
+ | |||
+ | clients=`awk '/'$1'/ {print $2}' /etc/dhcpd.conf` | ||
+ | if [ "$1" == "ikt" ]; then | ||
+ | MUSTERRECHNER="192.168.100.130" | ||
+ | elif [ "$1" == "klabu" ]; then | ||
+ | MUSTERRECHNER="192.168.100.86" | ||
+ | elif [ "$1" == "aula" ]; then | ||
+ | MUSTERRECHNER="192.168.100.74" | ||
+ | elif [ "$1" == "eg" ]; then | ||
+ | MUSTERRECHNER="192.168.100.60" | ||
+ | elif [ "$1" == "ug" ]; then | ||
+ | MUSTERRECHNER="192.168.100.109" | ||
+ | fi | ||
+ | |||
+ | for client in $clients; do | ||
+ | echo $client | ||
+ | IP=`awk '/'$client'/ {print $8}' /etc/dhcpd.conf | tr -d ";"` | ||
+ | if [ "$IP" != "$MUSTERRECHNER" ]; then | ||
+ | /usr/bin/expect -c " spawn /usr/bin/ssh -q -l root $IP \" killall screen; rm -rf /var/run/screen; mkdir /var/run/screen; chown root:utmp /var/run/screen; screen -dm -S udp /usr/local/bin/getfiles; \" ;\ | ||
+ | expect \"word: \" {send \"PASSWORT\r\" } ;\ | ||
+ | interact " | ||
+ | fi | ||
+ | done | ||
+ | </code> | ||
+ | |||
+ | <code bash ping.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | if [ "$1" != "eg" ] && [ "$1" != "ikt" ] &&[ "$1" != "aula" ] &&[ "$1" != "ug" ] &&[ "$1" != "klabu" ]; then | ||
+ | echo "eg / ikt / aula / ug / klabu" | ||
+ | exit | ||
+ | fi | ||
+ | |||
+ | clients=`awk '/'$1'/ {print $2}' /etc/dhcpd.conf` | ||
+ | |||
+ | for client in $clients; do | ||
+ | echo $client | ||
+ | IP=`awk '/'$client'/ {print $8}' /etc/dhcpd.conf | tr -d ";"` | ||
+ | nmap -sP $IP | grep "host up" 2>&1 >/dev/null && echo -e "\033[45;1;32m=> $IP : ON \033[0m" || echo -e "\033[44;1;33m=> $IP : OFF \033[0m" | ||
+ | done | ||
+ | |||
+ | </file> | ||
+ | |||
+ | <code bash wakeup.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | if [ "$1" != "eg" ] && [ "$1" != "ikt" ] &&[ "$1" != "aula" ] &&[ "$1" != "ug" ] &&[ "$1" != "klabu" ]; then | ||
+ | echo "eg / ikt / aula / ug / klabu" | ||
+ | exit | ||
+ | fi | ||
+ | |||
+ | clients=`awk '/'$1'/ {print $2}' /etc/dhcpd.conf` | ||
+ | |||
+ | for client in $clients; do | ||
+ | if [ "$1" == "klabu" ]; then sleep 0.5; else sleep 0.1; fi | ||
+ | echo $client | ||
+ | MAC=`awk '/'$client'/ {print $6}' /etc/dhcpd.conf | tr -d ";"` | ||
+ | for i in {1..17} | ||
+ | do | ||
+ | /usr/sbin/ether-wake -i eth2 $MAC | ||
+ | done | ||
+ | done | ||
+ | |||
+ | </code> | ||
+ | |||
+ | <code bash shutdown.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | if [ "$1" != "eg" ] && [ "$1" != "ikt" ] &&[ "$1" != "aula" ] &&[ "$1" != "ug" ] &&[ "$1" != "klabu" ]; then | ||
+ | echo "eg / ikt / aula / ug / klabu" | ||
+ | exit | ||
+ | fi | ||
+ | |||
+ | clients=`awk '/'$1'/ {print $2}' /etc/dhcpd.conf` | ||
+ | |||
+ | if [ "$1" == "ikt" ]; then | ||
+ | MUSTERRECHNER="192.168.100.130" | ||
+ | elif [ "$1" == "klabu" ]; then | ||
+ | MUSTERRECHNER="192.168.100.86" | ||
+ | elif [ "$1" == "aula" ]; then | ||
+ | MUSTERRECHNER="192.168.100.74" | ||
+ | elif [ "$1" == "eg" ]; then | ||
+ | MUSTERRECHNER="192.168.100.60" | ||
+ | elif [ "$1" == "ug" ]; then | ||
+ | MUSTERRECHNER="192.168.100.109" | ||
+ | fi | ||
+ | |||
+ | for client in $clients; do | ||
+ | echo $client | ||
+ | IP=`awk '/'$client'/ {print $8}' /etc/dhcpd.conf | tr -d ";"` | ||
+ | # if [ "$IP" != "$MUSTERRECHNER" ]; then | ||
+ | /usr/bin/expect -c " spawn /usr/bin/ssh -q -l root $IP \" poweroff; exit \" ;\ | ||
+ | expect \"word: \" {send \"PASSWORT\r\" } ;\ | ||
+ | interact " | ||
+ | # fi | ||
+ | done | ||
+ | </code> | ||
===== Randnotizen ===== | ===== Randnotizen ===== | ||
Zeile 327: | Zeile 608: | ||
*[[VL Lehrer]] | *[[VL Lehrer]] | ||
+ | |||
+ | ===== Wartung ===== | ||
+ | |||
+ | *[[Wartung Kurzversion]] | ||
+ | |||
+ | *[[http://peer.st/dw/doku.php?id=nx-client|NX CLient für Linux starten ...]] | ||
+ | |||
+ | ===Zu einem Client verbinden=== | ||
+ | |||
+ | feynman:~ # sh view.sh 192.168.100.xx | ||
+ | Kennwort: eu... | ||
+ | |||
+ | Clients sind auf Plank unter /etc/dhcpd.conf zu finden | ||
+ | |||
+ | ===Clients aktualisieren:=== | ||
+ | |||
+ | Login auf Planck | ||
+ | cd /opt/wartung/vlizedlab | ||
+ | Check ob alle PCs im Saal laufen: | ||
+ | sh ping.sh ug | ||
+ | |||
+ | ===Alle PCs im UG einschalten=== | ||
+ | |||
+ | sh wakeup.sh ug | ||
+ | |||
+ | === Einzelnen PC wecken: === | ||
+ | |||
+ | sh wakeup_single.sh ug01 | ||
+ | |||
+ | === Mit Musterrechner verbinden === | ||
+ | |||
+ | ssh ug01 (eu...) | ||
+ | |||
+ | === Laufende VM "killen" === | ||
+ | |||
+ | killall VirtualBox; vlinitvbox | ||
+ | |||
+ | === Konfiguration der VM ändern === | ||
+ | |||
+ | vi /vm/vb/Windows7/init.add.sh | ||
+ | |||
+ | === Folgende beiden Zeilen sind für das "readonly"-schalten wichtig === | ||
+ | |||
+ | #mtyp="immutable" -> nur lesend | ||
+ | mtyp="normal" -> schreiben & lesen | ||
+ | |||
+ | === Konfiguration "speichern" === | ||
+ | |||
+ | killall VirtualBox; vlinitvbox | ||
+ | |||
+ | === Via NX zum Client verbinden bzw. hingehen === | ||
+ | |||
+ | Änderungen durchführen | ||
+ | |||
+ | === Windows und Office Aktivierung === | ||
+ | |||
+ | Lokal als .\root (uS...) anmelden | ||
+ | |||
+ | Startmenü -> cmd -> rechte Maustaste -> Als Administrator ausführen: | ||
+ | |||
+ | === Nur Windows lizenzieren === | ||
+ | |||
+ | cscript slmgr.vbs -skms kms.lsr-stmk.gv.at | ||
+ | cscript slmgr.vbs -ato | ||
+ | |||
+ | === Nur Office lizenzieren === | ||
+ | |||
+ | cscript "\Program Files\Microsoft Office\Office14\ospp.vbs" /sethst:kms.lsr-stmk.gv.at | ||
+ | cscript "\Program Files\Microsoft Office\Office14\ospp.vbs" /act | ||
+ | |||
+ | === Wenn nicht erfolgreich, dann auf Planck === | ||
+ | |||
+ | ifdown dsl0 | ||
+ | ifup dsl0 | ||
+ | |||
+ | ... etwas Geduld ... | ||
+ | |||
+ | ping kms.lsr-stmk.gv.at muss funktionieren! | ||
+ | |||
+ | |||
+ | Rechner sauber herunterfahren! | ||
+ | |||
+ | === Konfiguration der VM wieder zurück ändern === | ||
+ | |||
+ | vi /vm/vb/Windows7/init.add.sh | ||
+ | |||
+ | mtyp="immutable" -> nur lesend | ||
+ | #mtyp="normal" -> schreiben & lesen | ||
+ | |||
+ | killall VirtualBox; vlinitvbox | ||
+ | |||
+ | === Klonen === | ||
+ | |||
+ | Am Planck kontrollieren, ob wirklich alle Rechner laufen. | ||
+ | cd /opt/wartung/vlizedlab | ||
+ | sh ping.sh ug | ||
+ | |||
+ | === Client zum Lauschen bringen === | ||
+ | |||
+ | sh klonen.sh ug | ||
+ | |||
+ | === Am Musterrechner eine screen Sitzung starten === | ||
+ | |||
+ | Wenn diese Fehlermmeldung kommt: | ||
+ | Directory '/var/run/screen' must have mode 777. | ||
+ | |||
+ | Dann | ||
+ | |||
+ | chmod 777 /var/run/screen | ||
+ | und nochmals "screen" starten | ||
+ | |||
+ | vludpsendVMs | ||
+ | -> "Blauer" Bildschirm erscheint, gewünschte VM zum Klonen auswählen, | ||
+ | Liste der Clients die Lauschen erscheint -> Bestätigen... | ||
+ | Strg+A und D screen in den Hintergrund legen | ||
+ | |||
+ | Nach dem Klonen unbedingt alle Clients komplett neu starten, am besten | ||
+ | via Planck: | ||
+ | sh reboot.sh ug | ||
+ | |||
+ | Bisschen warten... und erneut verbinden. | ||
+ | Enjoy! |