Gemeinsame Ordner unter Ubuntu Server 10.04 in VirtualBox einrichten

Wie ich bereits im vorherigen Artikel dieser Serie berichtet habe, bieten die Gasterweiterungen für VirtualBox Gemeinsame Ordner an. Diese können dann vom Gast einfach eingebunden werden und z.B. wie eine Netzwerkfreigabe verwendet werden.

Um die Gemeinsamen Ordner zu aktivieren, muss in den Einstellungen des Gastsystems – im Bereich Gemeinsame Ordner – ein Ordner hinzugefügt werden. Dieser kann diverse Optionen haben. (nur lesbar, automatisch einbinden, permanent. Siehe Screenshot.)Virtualbox Gemeinsame Ordner

Die Einbindung bei Windowssystemen klappt bei Auswahl des Häkchen „automatisch Einbinden“ ohne Zutun. Um diesen Ordner nun auf einem Linux Gast z.B. Ubuntu 10.04 Server einzubinden, muss ein Mountpunkt definiert werden. Dann kann eingebunden werden.

$ mkdir /home/sven/share
$ sudo mount -t vboxsf SharedFolder /home/sven/share

Wenn man nicht den Root User verwendet, sondern der aktuelle Benutzer die Rechte am eingebundenen Ordner haben soll, kann man einfach die Benutzer- und Gruppen ID (uid,gid) in die Mount Optionen einfügen.

$ sudo mount -t vboxsf -o rw,uid=1000,gid=1000 SharedFolder /home/sven/share

Alternativ kann man auch eine Permanente Einbindung machen. Hierzu muss die Datei rc.local bearbeitet werden.

$ sudo nano /etc/rc.local

Sollte darin zuvor keine Änderung gemacht worden sein, sollte sie jetzt so aussehen.

!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
mount -t vboxsf -o rw,uid=1000,gid=1000 SharedFolder /home/sven/share
exit 0

Wichtig! Die Raute in der ersten Zeile muss entfernt werden, so dass nur !/bin/sh -e da steht. Ausserdem muss die uid und gid auf den entsprechenden Benutzer angepasst sein. Der Befehl id zeigt die benötigte Information an.

Beim nächsten Neustart steht dann der Ordner dauerhaft bereit.

VirtualBox Gasterweiterungen auf Ubuntu Server 10.04 installieren

Zum Testen setze ich in meiner Entwicklungsumgebung unter anderem auch auf Linux-Server als Virtuelle Maschinen. Da ich hier keine grafische Oberfläche wie Gnome oder KDE installiert habe, sind die Gasterweiterungen von VirtualBox eigentlich nicht nötig. Die Gasterweiterungen stellen aber die Funktion „Gemeinsame Ordner …“ bereit, die beim Testen einiges vereinfacht.

Einige Bedingungen sollten zunächst erfüllt sein, bevor man mit der Installation beginnen kann.

$ sudo apt-get install dkms build-essential

Im Anschluss sollte das System neu gestartet werden.

Nach dem Neustart muss das ISO Image mit den Gasterweiterungen von VirtualBox geladen werden. Über das Menü „Geräte -> Gasterweiterungen installieren … “ oder der Tastenkombination [HOST] + D ist das schnell erledigt.
Virtualbox Gasterweiterung für Ubuntu 10.04

Auf dem Ubuntu Server kann nun das Medium eingebunden werden.

$ sudo mkdir /media/cdrom
$ sudo mount /dev/cdrom /media/cdrom

Abhängig von der Systemarchitektur (32bit oder 64bit) startet die Installation mit dem Skript:

$ sudo /media/cdrom/VBoxLinuxAdditions.run

Am Ende der Installation erscheint der Fehler „Could not find X.Org or XFree.86 Window System“ der auf das Fehlen der grafischen Oberfläche verweist.

Befehl im Hintergrund ausführen

Häufig habe ich einen Befehl ausgeführt, ohne auf die Laufzeit zu achten. Solange ein Programm aktiv läuft, ist das Terminal nicht zu verwenden. Mit der Tastenkombination Strg + Z kann man den Befehl einfrieren und ihn anschließend mit bg in den Hintergrund verfrachten. Schon kann man das Terminal weiter verwenden.

$ bg

Um einen Befehl wieder in den Vordergrund zu holen, benutzt man fg.

$ fg %1

Wenn man im vorherein weiss, das die Ausführung länger dauert, kann man den Befehl auch direkt in den Hintergrund verfrachten indem man ein & (Kaufmanns-Und) anhängt.

$ befehl &

Um zu erfahren welche Prozesse im hintergrund gerade laufen – oder auch nicht – gibt der Befehl jobs Auskunft.

$ jobs

Weitere Informationen zum Thema:
http://wiki.ubuntuusers.de/shell/prozesssteuerung

Doppelte Zeilen aus Datei entfernen

Heute habe ich eine Excel Tabelle erhalten, die ich in eine Datenbanktabelle importieren wollte. Das Problem: die Quelle hatte einige Dopplungen die mit dem UNIQUE KEY der Datenbanktabelle kollidierten. Damit der Import der weit über 16000 Zeilen ohne händisches Zutun importiert werden konnte, musste ein Script her.

Die Lösung ist eine Kombination der Programme cat, sort und uniq. Diese erledigt die Arbeit sogar in einer Zeile.

Die folgende Zeile entfernt doppelte Einträge und speichert das Ergebnis dann in einer neuen Datei ab.

$ cat dateiname | sort | uniq > dateiname.neu

Weitere Informationen zum Thema:
http://manpages.ubuntu.com/manpages/lucid/en/man1/cat.1.html
http://manpages.ubuntu.com/manpages/lucid/en/man1/sort.1.html
http://manpages.ubuntu.com/manpages/lucid/en/man1/uniq.1.html