ownCloud wird mir immer sympathischer

Scheinbar gibt es ein großes interesse an dem Hosten einer eigenen Cloud, denn mein Artikel “Die eigene Cloud mit ownCloud” von Oktober 2011 ist laut Piwik bei Google scheinbar recht gut zu finden. Suchbegriffe, die ownCloud oder eigene Cloud enthalten, sind meistens in den Top 3.

Nun, inzwischen ist viel Zeit vergangen, ownCloud liegt schon länger in der Version 3 vor und Version 4 wird im April erscheinen. Die Android App ist noch in der Entwicklung und im Moment noch nicht wirklich gut zu gebrauchen, denn das interessanteste Feature, die Synchronisierung von Kontakten und Terminen, funktioniert (meines Wissens) noch nicht.

Bisher habe ich mit ownCloud eher herumgespielt, ein paar große Dateien in E-Mails verlinkt und hin und wieder eine aktuelle Entwicklerversion installiert. Nun habe ich ownCloud neu installiert (Version 3 final) und werde mit einem Update bis zur Version 4 warten, da ich nun angefangen habe, es produktiv einzusetzen. Meine Kontakte sind bereits importiert, der Kalender auch größtenteils.

Thunderbird Synchronisierung

Auf die Synchronisierung mit Android lege ich im Moment keinen großen Wert. Dafür funktioniert die Synchronisierung mit Thunderbird Kalender (durch das Add On Lightning einbaubar) wunderbar. Für die Kontaktsynchronisierung habe ich noch das Add On Inverse SOGo Connector installiert, welches auch gut zu funktionieren scheint.

Nun ja, ownCloud ist eigentlich keine echte Cloud und alles was damit möglich ist, war vorher auch bereits mit anderen Mitteln möglich. Ich sehe den großen Vorteil aber in dem hübschen Webinterface und in der einfachen Installation und Verwaltung. Wenn nun noch Apps für mobile Geräte vorhanden sind und funktionieren, kann der Siegeszug von ownCloud meiner Meinung nach beginnen.

Möchte man ownCloud per WebDAV in sein System einbinden, findet man auf der ownCloud Seite Anleitungen für alle gängigen Betriebssysteme.

Bei einigen Linux Distributionen scheint es aber hin und wieder Probleme zu geben.

Hochgeladene Dateien sind 0 Byte groß

Bei mir hat es geholfen, use_locks 0 in die Datei /etc/davfs2/davfs2.conf einzufügen. An anderer Stelle wird hingegen die Option if_match_bug 1 vorgeschlagen.

/sbin/mount.davfs: / is the home directory of user nobody. You can’t mount into another users home directory

In die eben erwähnte Konfigurationsdatei wird dann noch die Zeile ignore_home       nobody,dbus,avahi,usbmux eingefügt und dann sollte das mounten auch klappen.

NFS und mount –bind

Ich nutze seit kurzem NFSv4, um Zugriff auf die Daten meines Heimservers zu haben. Soweit klappt auch alles ganz gut und mit der Performance bin ich sehr zufrieden. Allerdings beinhaltet der Ordner, den ich per NFS freigegeben habe, ein Verzeichnis, welches ich dort mit mount --bind, weil ich an dieser Stelle keine Symlinks einsetzen kann und möchte.

Für derart gemountete Verzeichnisse gibt es zwar die NFS Option “nohide”, diese ist aber nur dann hilfreich, wenn man ein derart gemountetes Verzeichnis direkt in die /etc/exports eintragen möchte. In meinem Fall handelt es sich aber um ein Unterverzeichnis.

Die Lösung ist denkbar einfach, hat mich aber doch einige Sucherei gekostet. Man erweitert die Optionen in der /etc/exports um die Option crossmnt und schon hat man Zugriff auf mit mount --bind eingebundene Verzeichnisse.

Meine /etc/exports sieht nu in etwa so aus:

1
/home/finn 192.168.1.0/24(rw,fsid=0,no_subtree_check,async,no_root_squash,nohide,crossmnt)

Auto Mount Shell Script

Was nützt eine Datensicherung, bei der man manuell eingreifen muss? Der Mensch ist von Natur aus faul und es wäre ziemlich ärgerlich, wenn meine Festplatte im Notebook den Geist aufgibt und die letzte Datensicherung ein paar Tage oder sogar Wochen alt ist.

Ich sitze hier hauptsächlich an meinem Notebook und mache damit privaten Kram, Arbeit und Studienangelegenheiten, gelegentlich sitze ich an einem alten Rechner, aber damit mache ich nichts wichtiges. Wie bereits erwähnt führe ich mit rsnapshot Datensicherungen durch. Bisher hat sich mein Server die Daten per SSH vom Notebook gezogen, aber da ich in meinem eigenen LAN keine Verschlüsselte Verbindung dafür brauche und die durchschnittliche Übertragungsrate nur bei 10-15 MB/s lag, habe ich per NFS einen Ordner meines Servers freigegeben. Jetzt läuft rsnapshot auf meinem Notebook und schiebt die Daten auf meinen Server, dazu muss aber die NFS Freigabe ins Dateisystem eingebunden sein. Dank NFS geht es jetzt deutlich schneller und mit weniger CPU Last.

Da mein “Server” (eigentlich eher ein HTPC mit ein paar Serverdiensten) im Schnitt nur ein paar Stunden täglich läuft, gibt es Probleme mit dem automatischen Einbinden der NFS Freigabe. Beim Booten des Notebooks ist der Server meistens noch ausgeschaltet. Wird der Server eingeschaltet, kann die Datensicherung trotzdem nicht ausgeführt werden, da die Freigabe noch nicht eingebunden ist. Nach langer nicht erfolgreicher Suche hatte ich die Idee einfach etwas wie “mount /media/NFS_Freigabe” in die crontab einzutragen, was dann alle 5 Minuten ausgeführt wird.

Irgendwie erschien mir das aber nicht allzu elegant und entstanden ist ein winziges Shell Script, welches eine Liste von Freigaben (ich mounte auch ownCloud per WebDav bzw. wdfs) in einem Array speichert, prüft ob diese schon eingebunden sind und wenn nicht, werden sie eingebunden. Im Prinzip recht simpel und wahrscheinlich stark verbesserungswürdig, aber vielleicht kann der eine oder andere so etwas ja gebrauchen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash
# This is a little script to check if volumes are mounted.
# If a volume is not mounted the script will try to mount it.
#
# Put your volumes between the round brackets,
# one line per volume.
# The volumes have to be in /etc/fstab
# It should look like this:
# VOLUMES=(
# /media/myFolder1
# /media/myFolder2
# )

VOLUMES=(
/media/ownCloud
/media/finn-server
)

for i in ${VOLUMES[@]}
do
if ! [[ $(mount | grep ${i}) ]]; then
mount ${i}
fi
done

Keine Ahnung warum, aber scheinbar entfernt das CodeColorer Plugin Tabs und Leerzeichen am Anfang einer Zeile. Wahrscheinlich eine Einstellungssache, aber ich nutze es zu selten, keine Ahnung. Ich habe es ansonsten hier noch einmal hochgeladen: http://www.finnchristiansen.de/wp-content/uploads/2012/03/mountchecker.sh

Das Ganze wird dann noch mit chmod a+x mountchecker.sh ausführbar gemacht und kann dann von cron z.B. im 5 Minuten-Takt ausgeführt werden, was z.B. so aussehen würde:

1
*/5 * * * * /home/finn/mountchecker.sh

Ich habe diese simple Angelegenheit in ein Script gepackt, weil ich es noch erweitern möchte. Demnächst soll eine Samba Freigabe hinzu kommen und ich will eine kleine Netzwerk Prüfung einbauen, damit die NFS Freigabe nur in meinem LAN versucht eingebunden zu werden. Außerdem möchte ich beim Wechsel des Netzwerkes oder Herunterfahren des Servers die NFS Freigabe wieder aushängen, da rsnapshot ziemlichen Ärger zu machen scheint, wenn die Freigabe zwar eingebunden, aber der Server nicht erreichbar ist.

Vielleicht habe ich mir die kleine Mühe auch umsonst gemacht und jemand kennt eine bessere Lösung. Ich bin über jeden HInweis dankbar!

BIOS flashen ohne Floppy mit Linux

Kürzlich hatte ich ein Problem mit einem Mainboard und ich wollte das BIOS flashen und damit updaten. Leider lief auf dem Rechner kein Windows und ein Diskettenlaufwerk war nicht vorhanden. Die meisten Hersteller für Mainboards stellen entweder nur BIOS Flash Tools für Windows oder Dateien für das Starten von einer Diskette bereit.

Wie kann man also sein BIOS als Linux Benutzer flashen? Dazu benötigt man entweder einen CD-Rohling oder, falls der Rechner das Booten von USB unterstützt, einen USB Stick.

Ich habe mir das nicht selbst ausgedacht, sondern hier gefunden und ich möchte das hier noch einmal für deutschsprachige Benutzer verewigen. Ich selbst benutze Ubuntu 11.04, daher dürften die Befehle auf allen auf Debian basierenden Systemen ausführbar sein. Ansonsten dürfte nur das sudo durch vorheriges su zu ersetzen sein.

Zu erst benötigt man ein FreeDOS Image, welchet mit wget schnell heruntergeladen ist:

1
2
wget http://www.fdos.org/bootdisks/autogen/FDOEM.144.gz
gunzip FDOEM.144.gz

Als nächstes werden zwei Module zum Einbinden des Images benötigt werden. Wahrscheinlich sind sie schon geladen, im Zweifelsfall einfach mit modprobe laden:

1
2
sudo modprobe vfat
sudo modprobe loop

Um das FreeDOS Image temporär einbinden zu können, muss man schauen, ob ein Eintrag von tmpfs in /proc/filesystems vorhanden ist, das dürfte meines Wissens nach bei allen gängigen Distributionen der Fall sein.

Wir erstellen nun ein Verzeichnis für das Image und binden dieses ein:

1
2
sudo mkdir /tmp/floppy
sudo mount -t vfat -o loop FDOEM.144 /tmp/floppy

Jetzt wird das BIOS Image des Mainboards benötigt. Meistens liegen gezippt vor und enhalten eine kurze Anleitung, der man entnehmen kann, welche Dateien man benötigt. Die benötigten Schritte sehen dann in etwa so aus:

1
2
unzip BIOS.zip
sudo cp FLASHBIOS.EXE BIOS.ROM /tmp/floppy

Dann kann das Image wieder ausgebunden werden:

1
sudo umount /tmp/floppy

Nun erstellen wir aus dem veränderten FreeDOS Image eine bootbare iso Datei:

1
mkisofs -o bootcd.iso -b FDOEM.144 FDOEM.144

Diese kann man nun entweder auf eine CD brennen oder, falls der Rechner das Booten von USB unterstützt, auf einen USB Stick geschoben werden:

1
sudo dd if=bootcd.iso of=/dev/sdb

Viel Erfolg beim Flashen eures BIOS!

mfg
Finn

1
2
wget http://www.fdos.org/bootdisks/autogen/FDOEM.144.gz
gunzip FDOEM.144.gz

wget http://www.fdos.org/bootdisks/autogen/FDOEM.144.gzgunzip FDOEM.144.gz

Only root can mount…

Diese Fehlermeldung oder zumindest so ähnlich habe ich vorhin nach einem Neustart bekommen, nachdem ich bei meinem Ubuntu 8.04 Hardy Heron ein Update gemacht habe.

Eigentlich soll die Partition /dev/sda5 beim Systemstart gemountet werden, so habe ich es zumindest in meiner /etc/fstab stehen und bis zum Update klappte dies auch wunderbar.
/dev/sda5 soll bei mir eigentlich auf /media/Volume gemountet werden, aber der Volume Ordner war nicht mehr vorhanden.

Also habe ich ihn erneut angelegt, das geht z.B. mit

1
<div class="codebox_content">sudo mkdir /media/Volume

oder man startet Nautilus als root (mitunter ganz praktisch) und legt ihn dort neu an:

1
2
3
</div>
<div class="codebox_content">sudo nautilus</div>
<div class="codebox_content">

Dann die Partition mounten, als root:

1
2
3
</div>
<div class="codebox_content">sudo mount /dev/sda5 /media/Volume</div>
<div class="codebox_content">

Das funktionierte schon einmal und erfreulicherweise wird die Partition jetzt auch wieder beim Systemstart gemountet.

Inwiefern das nun mit dem Update zusammenhing oder nicht, weiß ich nicht genau, aber kann ja sein. Keine Ahnung ;-)

mfg
Finn