Debian muss mit — GNU/Linux in der VirtualBox
Debian GNU/Linux in der VirtualBox unter Windows zu installieren, ist eine praktische Sache. Wenn man sich mit Themen rund um GNU/Linux, Web- und FTP-Server oder ähnliches beschäftigen will, hat man es immer auf dem Notebook dabei. So kann man Freunden, Familien, Kunden zeigen, wie ihr Blog, Homepage oder Webshop aussehen könnte. Man kann die virtuelle Maschine besonders mit Debian als Gast-System etwas schmaler konfigurieren, was gleich gezeigt werden soll, damit sie zum Beispiel auch gut auf ein Netbook passt und dort nicht allzuviel Speicher braucht.
Um die Installation zu starten benötigt man VirtualBox und eine Installations-CD von Debian, zum Beispiel das offizielle „Netinst“-Images für die „Stable“-Veröffentlichung in der i386-Version.
Nachdem VirtualBox installiert ist, legt man über den Button „Neu“ eine neue virtuelle Maschine an und nimmt folgende Einstellungen vor:
Der Name ist im Prinzip frei wählbar, in diesem Fall ist es „Debian“. Als nächstes muss man entscheiden, wieviel Hauptspeicher der virtuellen Maschine zur Verfügung stehen soll. Es gilt im Prinzip, wer hat, der hat, die voreingestellten 384 MB sind ok, die auf meinem Netbook eingestellten 256 MB sollten es aber mindestens sein.
Als Dateityp der Festplatte kann man VDI nehmen und als Art der Speicherung „dynamisch alloziert“. Als Größe für die Festplatte habe ich 4 GB festgelegt, was zum Testen gut ausreicht. Wenn die virtuelle Festplatte erzeugt ist, sollte man das System noch ein bisschen „finetunen“. So habe ich zum Bespiel unter „System“ die CPU auf 80% begrenzt.
Unter „Massenspeicher“ bindet man die heruntergeladene ISO von Debian als CD unterhalb des IDE-Controllers ein, so wie in der Abbildung. Nach der Installation kann man sie dort auch wieder entfernen.
Danach nimmt man sich noch die Einstellungen unter „Netzwerk“ vor, um im 1. Adapter eine Netzwerkbrücke einzurichten. Wie man in der Abbildung sehen kann, habe ich die Netzwerkbrücke für meine WLAN-Karte bereitgestellt. Was man nicht sehen kann ist, dass unter Adapter 2 eine Netzwerkbrücke für meine LAN-Karte existiert. Als Adaptertyp habe ich bei beiden PCnet-FAST III genommen. Die Netzwerkbrücke hat den Vorteil, dass die virtuelle Maschine eine IP-Adresse erhält, die vom Wirts-System aus angepingt werden kann.
Nun kann man die virtuelle Maschine durch einen Klick auf „Starten“ endlich hochfahren, bzw. mit der Installation beginnen. Hier kann man im Prinzip den Vorgaben des Installers folgen, außer man möchte einmal gefahrlos etwas anderes ausprobieren. Zum Schluss habe ich neben den Standard-Systemwerkzeugen noch Web- und SSH-Server gewählt. Der FTP-Server folgt später.
Nach dem Debian fertig installiert und gestartet ist, soll es jetzt darum gehen, sich mit PuTTY über SSH zu verbinden. Dazu braucht man allerding die IP-Adresse der virtuellen Maschine, die man als Root unter Debian mit dem Befehl ifconfig
herausbekommt. In diesem Fall ist die IP 192.168.178.20:
Mit Hilfe der IP-Adresse und Port 22 kann man sich nun auch mit PuTTY über SSH in die virtuelle Maschine einloggen. Das hat den Vorteil, dass man mit Copy und Paste arbeiten kann, was im nächsten Abschnitt sehr hilfreich sein wird.
Da Debian in einer virtuellen Maschine läuft möchte ich, dass der User gleich angemeldet wird, nachdem das Betriebssystem gestartet ist. Dazu muss man mit dem Befehl su
Root werden, falls man sich nicht über SSH bereits als Root eingeloggt hat, um dann einen Editor zu öffnen.
nano /etc/inittab |
In der Datei „inittab“ sucht man nach folgender Zeile,
1:2345:respawn:/sbin/getty 38400 tty1 |
um sie mit einem #-Zeichen auszukommentieren, etwa so:
#1:2345:respawn:/sbin/getty 38400 tty1 |
Darunter fügt man dann folgende Zeile ein, in der man USERNAME durch den Benutzernamen ersetzt, der automatisch eingeloggt werden soll:
1:2345:respawn:/bin/login -f USERNAME tty1 </dev/tty1 >/dev/tty1 2>&1 |
Nach dem Speichern und dem nächsten Neustart, sollte der Benutzer ganz von selbst angemeldet werden. Als nächstes habe ich die folgende Fehlermeldung beim Systemstart ausgeschaltet:
input: PC Speaker as /devices/platform/pcspkr/input/input3 Error: Driver 'pcspkr' is already registered, aborting...
Dazu gibt man als Root den unten stehenden Befehl ein:
echo "blacklist snd-pcsp" >> /etc/modprobe.d/alsa-base-blacklist |
Da es erstmal darum geht, sich schnell mit PuTTY über SSH mit der virtuellen Maschine zu verbinden, habe ich das kleine Skript „PuTTY2Debian.bat“ gebastelt, das das mit einem Doppelklick macht:
@echo OFF echo. echo Starting Debian in VirtualBox and PuTTY to login with SSH, please wait... echo Waiting 10 seconds... start /b "" "%ProgramFiles%\Oracle\VirtualBox\VBoxHeadless.exe" --startvm Debian >NUL rem Set server... set server=192.168.178.20 :start ping -n 1 %server% | find "TTL" >NUL if %errorlevel% == 0 goto putty echo Waiting another 10 seconds... ping -n 10 127.0.0.1 >NUL goto start :putty echo Start Putty ... ping -n 5 127.0.0.1 >NUL start /b "" "%ProgramFiles(x86)%\PuTTY\putty.exe" -ssh -P 22 root@%server% goto ende :ende pause |
Das Skript macht in der Hauptsache nichts anderes, als zu warten, bis die virtuelle Maschine „Debian“ gestartet ist, um dann mit PuTTY loszulegen. Dabei wird „Debian“ im Headless-Modus aufgerufen. Man sieht von der virtuellen Maschine nichts, außer einen Prozess im Taskmanager. Im Abschnitt „start“ wird ein Ping zur virtuellen Maschine abgesetzt. Die IP-Adresse wird in der Zeile darüber der Variablen „server“ übergeben und lautet in meinem Fall 192.168.178.20. Sie kann aber auch anders heißen und muss dann im Skript entsprechend abgeändert werden. Wenn die Antwort die Zeichenfolge „TTL“ enthält, war der Ping erfolgreich und die virtuelle Maschine wurde gestartet und das Skript springt in den Abschnitt „putty“. Wird „TTL“ nicht zutückgegeben, ist die virtuelle Maschine noch dabei zu starten und das Skript wartet 10 Sekunden, bis es den nächsten Ping-Versuch unternimmt. Im Abschnitt „putty“ wird sicherheitshalber nochmal 5 Sekunden gewartet, bis PuTTY sicher gestartet werden kann, ohne dass es eine Fehlermeldung wegen Timeout oder ähnlichem gibt. Zum Schluss ist man dann als Root in der virtuellen Maschine eingeloggt.
Benutzt man ein Windows 7 32-bit, muss man die Zeile, in der PuTTY gestartet wird, noch anpassen, indem man das „(x86)“ entfernt. Bei 32-bit liegen alle Programme im Ordner %ProgramFiles%
.
Unsere virtuelle Maschine ist jetzt soweit, dass man weiter an Debian basteln kann, z.B. fehlt noch ein FTP-Server, um Dateien zwischen dem Gast- und dem Wirts-System auszutauschen. Der Webserver funktioniert übrigens schon, was man leicht testen kann. Wenn man die IP-Adresse im Browser eingibt, erhält man folgende Antwort:
Aber nicht nur das, PHP funktioniert auch schon:
Doch dazu später mehr. Wer am Anfang nicht daran gedacht hat, den Web-Server zu installieren, kann das leicht nachholen. Eine passende Anleitung gibt es dazu bei sysadminslife.com. Demnächst wird es erstmal darum gehen, einen FTP-Server unter Debian zu installieren, um über FileZilla Dateien zwischen Wirts- und Gast-System auszutauschen. Mit dem Befehl halt
kann ich als Root Debian erstmal herunterfahren und die virtuelle Maschine dadurch beenden.