Free mini NAS System

Nasoline wurde als kleines, freies NAS System für x86 Hardware entwickelt.

Nasoline belegt gerade mal einen Speicherplatz von 4MB (+ ~3MB Kernel) und läuft in einer 10MB Ramdisk. Dabei eignet sich Nasoline nicht nur als NAS.



Nasoline verfügt über die folgenden Funktionen:


  • NFS V3
  • SSH (Dropbear + SSHF Support)
  • FTP Server (vsftp)
  • RSYNC
  • DruckServer
  • OpenVPN
  • Ext4 Support
  • USBMount (auto)
  • WLAN Support (WPA_Supplicant)
  • PPPOE Support
  • Iptables
  • SMART Unterstützung
  • Samba (kann bei der Installation optional ausgewählt werden)

Darüber hinaus eignet sich Nasoline durch die Eigenschaft komplett im RAM zu laufen, besonders für lautlose und energiesparende Systeme.
Festplatten können, wenn gerade kein Zugriff stattfindet, einfach abgeschaltet werden und Lüfter lassen sich per lm_sensorst regeln.





Die Systemanforderungen hängen stark von der Umgebung ab in der Nasoline genutzt werden soll.

Anzahl der Clients, Druckservernutzung etc. und können daher stark varieieren.

Als Testsystem dient aber als Beispiel ein Rechner mit einem 300MHz Geode Prozessor und 64MB RAM.





Die aktuelle Version NASOLINE-9 können Sie im Downloadbereich oder hier herunterladen.

Bitte beachten Sie die Installationshinweise.


Installation

Laden Sie sich das CD Abbild herunter (nasoline-9.3.iso).

Das Image ist bootbar. Brennen Sie es auf eine CD und starten Sie von dieser.


  1. Melden Sie sich als root an.



    Wenn Sie ein deutsches Tastaturlayout haben, können Sie eine entsprechende Keymap laden.



    # loadkmap < /usr/share/keymaps/de.kmap



  2. Partitionieren Sie Ihre Festplatte und formatieren Sie danach die Partitionen.

    Beispiel: (bitte entsprechend anpassen)



    # cfdisk /dev/hda

    # mkfs.ext3 /dev/hda1



    Hinweis:

    Wenn Sie die Kernel selbst kompilieren wollen, achten Sie darauf, das hierzu ca. 1GB Festplattenplatz gebraucht wird. Sie können hier für auch eine Daten Partition verwenden (siehe HowTo). Der Platz wird nach erfolgter Installation wieder freigegeben.





  3. Mounten Sie die angelegte Partition nach /mnt .



    # mount /dev/hda1 /mnt



  4. Starten Sie das Nasoline Setup.

    Es gibt hierbei drei mögliche Parameter:

    kernel Mit dieser Option wird ein vorkompilierter Kernel installiert und Sie müssen
    den Kernel nicht selbst bauen. Allerdings unterstützt der Kernel auch nur die
    gängigste Hardware.
    samba Diese Option installiert nasoline inkl. Samba Server.
    Bedenken Sie, Samba ist recht groß und lässt Nasoline entpackt auf ~24MB anwachsen.
    noram Normalerweise läuft Nasoline komplett im Arbeitsspeicher. Wenn Ihnen hier
    nicht genug zur Verfügung steht (Bsp.: 32MB RAM + Samba Option),
    können Sie mit dieser Option Nasoline auch konventionell auf die Festplatte
    installieren lassen.





    Rufen Sie setup auf und übergeben Sie gegebenenfalls die gewünschten Parameter.



    # setup kernel



    Es kann einen Moment dauern bis alle Daten entpackt sind.

    Am Ende werden Sie in eine Chroot Umgebung ins Nasoline-Image geführt.




  5. In der Chroot Umgebung sollten Sie jetzt alle relevanten Einstellungen vornehmen.

    Folgende Einstellungen sind empfohlen um den Betrieb als NFS Server und den SSH Zugriff sicherzustellen.



    Passwort ändern

    # passwd



    Netzwerkkonfiguration anpassen (per default ist Nasoline unter der IP 192.168.2.110 zu erreichen)

    # nano /etc/rc.d/S40network



    Partitionen eintragen in die /etc/fstab

    # nano /etc/fstab



    Dropbearschlüßel für den SSH Zugang generieren

    # dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key

    # dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key



    NFS Freigaben in die /etc/exports eintragen

    # nano /etc/exports



    Gegebenenfalls danach noch die /etc/hosts anpassen
    # nano /etc/hosts



    Wenn Sie vorerst keine weiten Dienste wie FTP, VPN oder Druckserver einrichten wollen (HowTo), verlassen Sie jetzt die Chrootumgebung.



    # exit



  6. Falls Sie sich entschieden haben den Kernel selbst zu bauen (keine kernel Option beim Setup angegeben), müssen Sie ihren Kernel jetzt konfigurieren.

    Bauen Sie einen statischen Kernel ohne Module. Wählen Sie nur das aus, was Sie auch wirklich benöigen.


    Stellen Sie sicher das Sie die Optionen
    "Device Drivers" > "Block Devices" > "Loopback Device Support" und "RAM Block Device" angewählt haben. Tragen Sie bei der "Default RAM disk size" bitte 10240 ein.





    Wenn Sie die Konfiguration abgeschlossen haben, wird dieser kompiliert. Dies kann je nach
    Auswahl und System etwas dauern. Machen Sie sich einen Tee oder tanken Sie etwas frische Luft.



  7. Um Zum Abschluss noch Grub zu installieren müssen sie die root Partition und die für die Installation von Grub angeben. Nach dem Beispiel von oben mit hda1, wäre das für Grub folgende (Achtung: grub zählt ab Null)



    root (hd0,0)

    setup (hd0)




    Verlassen Sie im Anschluss Grub mit: quit

    Der Rechner wird daraufhin neu gestartet. Entnehmen Sie die CD.

Die Installation ist hiermit erfolgreich abgeschlossen.

HowTo

Der eigene Kernel, NFS einrichten, Windows und NFS, Der Druckserver,


Der eigene Kernel


Die Installations-CD beinhaltet neben dem Nasoline-Image auch den GCC und alle nötigen Werkzeuge um einen eigenen Kernel zu bauen. Wenn Sie dies aus Gründen der Systemleistung lieber an ihrem PC als an dem Zielrechner machen möchten, gehen Sie bitte wie folgt vor:



Legen Sie die NASOLINE CD ins Laufwerk und mounten Sie diese.

Wechseln Sie in ein Verzeichnis mit ausreichend Speicherplatz (~1GB).



# /cdrom/tools/unsquashfs /cdrom/nasoline.squashfs

# mkdir -p squashfs-root/usr/src

# tar xvjf /cdrom/nasoline/linux-2.6.29.tar.bz2 -C squashfs-root/usr/src

# mount -o bind /dev squashfs-root/dev

# mount -t proc none squashfs-root/proc

# chroot squashfs-root/ /bin/sh




Wechseln Sie in das Kernel Verzeichnis und kompilieren Sie wie gewohnt den Kernel.



# cd /usr/src/linux-2.6.29

# make menuconfig

# make




Verlassen Sie die Chrootumgebung wieder.



# exit



Um den frisch gebauten Kernel später auf die CD zu bekommen, müssen Sie zunächst ein neues Image erstellen und den Kernel dorthin kopieren.



# mkdir -p nasoline-cd

# rsync -avHP /cdrom nasoline-cd/

# rsync -avHP squashfs-root/usr/src/linux-2.6.29/arch/i386/boot/bzImage nasoline-cd/nasoline/kernel/vmlinuz

# mkisofs -publisher NASOLINE -R -l -L -J -V NASOLINE -A NASOLINE -b boot/isolinux/isolinux.bin -c boot/isolinux/isolinux.boot -no-emul-boot -boot-load-size 4 -boot-info-table -o nasoline-custom.iso nasoline-cd/




Am Ende sollten Sie in Ihrem Verzeichnis eine CD Image mit dem Namen nasoline-custom.iso vorfinden. Brennen Sie dieses Abbild als CD.



Wenn Sie jetzt von CD starten, wählen Sie einfach beim Setup den Parameter kernel mit aus.


NFS einrichten.



Hauptbestandteil von Nasoline ist natürlich der NFS Server. Über diesen können Sie Ordner und Dateien im Netzwerk bereitstellen.

Die Einrichtung vom NFS Server ist sehr einfach und geschieht lediglich durch eine Konfigurationsdatei (/etc/exports).



Öffnen Sie /etc/exports mit einem Editor.

Dort wird dann zuerst das Verzeichnis was Sie freigeben möchten eingetragen, dann der Rechner für den diese Freigabe gelten soll und zum Schluss noch eventuelle Optionen.



Beispiel:

Sie haben Ihre Festplatte unter /mnt/storage1 eingebunden. Sie haben zwei Rechner angeschlossen. Einmal den von Fu und dann noch den von Fara. Beide sollen ihr eigenes Verzeichnis bekommen und dann noch ein gemeinsames für das Netzwerk.



Die /etc/exports könnte dann zB. So aussehen:



/mnt/storage1/fu         192.168.2.101/24(rw,sync,no_root_squash,subtree_check)

/mnt/storage1/fara         192.168.2.102/24(rw,sync,no_root_squash,subtree_check)

/mnt/storage1/share         192.168.2.*/24(rw,sync,no_root_squash,subtree_check)




192.168.2.101 wäre Fu's Pc und 192.168.2.102 Faras. Das Wildcard * steht für das gesamte Netzwerk in dem Adressbereich.



Natürlich lassen sich auch Namen anstellen von IP Adressen verwenden, diese müssten dann allerdings in /etc/hosts eingetragen werden damit sie dem System auch bekannt sind.



Die Optionen müssten natürlich je nach Bedarf angepasst werden.

Ein Tipp: Hätte Fara einen Mac mit OS X, dann sollte man die Option insecure mit hinzufügen.


Windows und NFS



Unter Linux, BSD und OS X dürfte das einbinden eines NFS Share kein Problem darstellen. Da Windows allerdings von Haus aus keine NFS Unterstützung hat, an dieser Stelle eine kleine Anleitung wie Sie ihren Nasoline NFS Server unter Windows nutzen können.



Die Nötigen Tools gibt es frei Haus.

Das Haupt Programm das für den NFS Clienten Benötigt wird, gibt es direkt von Microsoft und nennt sich Services for Unix kurz SFU.

Hier können Sie es herunterladen: http://technet.microsoft.com/en-us/interopmigration/bb380242.aspx



Da wir zwei Dateien vom Nasoline Server kopieren müssen benötigen wir noch eine SCP Clienten.

Ein leicht zu bedienender und freier wäre WinSCP. http://winscp.net/eng/download.php







Um mit Hilfe von dem SFU NFS-Client sich unter Windows mit dem Nasoline Server verbinden zu können, benötigen Sie die Dateien /etc/passwd und /etc/group.



Legen Sie eine Verzeichnis für passwd und group an

Bsp.: C:\nasoline



Melden Sie sich bei WinSCP einfach mit ihrem SSH Login auf dem Nasoline Server an und kopieren Sie die Dateien /etc/passwd und /etc/groups in das angelegte Verzeichnis C:\nasoline








Danach können Sie WinSCP wieder schließen und wenn Sie es nicht mehr brauchen sollten auch gegebenenfalls wieder Deinstallieren.





Entpacken Sie jetzt das SFU Archiv.

Starten Sie die Setup.EXE und wählen Sie Custom Installation.

Wählen Sie alles bis auf den NFS Client ab.

Wählen Sie Local User Mapping Server und Password and Group files

Beenden Sie das Setup.



Starten Sie SFU Administrartion.

Wählen Sie User Name Mapping aus und Use Password and Group files

Geben Sie wie im Screenshot zu sehen die Pfadangaben an C:\nasoline\passwd und C:\nasoline\group







Klicken Sie auf Maps

Wählen Sie unter Advanced Maps - Show User Maps und betätigen Sie die Knöpfe List Windows Users und List Unix Users. Wählen Sie nun Ihren Benutzer-Account und root für das Unix System (Nasoline Server) aus. Drücken Sie ADD







Gehen Sie genause unter Show Group Maps für die Gruppen Benutzer und root vor.



Drücken Sie zum Abschluß Apply



Wechseln Sie auf den Arbeitsplatz und Mappen Sie die NFS Freigabe wie gewohnt.

Extra ? Duchsuchen . Wählen Sie unter NFS Network die IP vom Nasoline Server aus und das Verzeichnis das Sie freigeben.



Nun können Sie auch problemlos die NFS Freigaben unter Windows nutzen.




Der Druckserver


Als Druckserver wird bei Nasoline p910nd verwendet.

Es Handelt sich hierbei um einen reinen RAW Druckserver. Das heißt es müssen keine Druckertreiber installiert werden und es wird auch jeder Drucker damit laufen, dafür müssen die Treiber aber auf den Clients vorhanden sein.


    Konfiguration des Servers:


    Hier ist ansich nicht viel zu machen.

    Die Konfiguration findet in der Datei /etc/rc.d/S80p910nd statt. Standartwerte sind hier /dev/usb/lp0 für USB Drucker und Port 9100. Wer einen anderen Port, mehrere Drucker oder keinen USB Drucker hat, kann hier die Einstellungen entsprechend ändern. Die Grundeinstellungen sollten mit einem USB Drucker aber problemlos laufen.

    Konfiguration der Clients:

  • Linux u. OS X.


    Jedes DE und auch OS X haben eine eigene Konfigurationsoberfläche. Gemeinsam haben Sie aber auch das Cups Webinterface.
    Das Webinterface erreicht man via Webbrowser und die Adresse localhost:631

    1. Wählen Sie add printer
    2. Geben sie einen Namen ein (freie Wahl)
    3. wählen Sie bei Device AppSocket / HP Jedirect



    4. Geben Sie jetzt bei der URL folgendes ein socket://192.168.2.110:9100 (ersätzen sie gegebenenfalls die IP Adresse).



    5. Wählen Sie zuletzt noch den Treiber für Ihren Drucker aus der Liste aus.




      Sollte er dort nicht auftauchen besorgen Sie sich entsprechendes PPD File von http://www.linuxfoundation.org/en/OpenPrinting .


  • Windows.

    1. Starten Sie den Assistenten über Drucker hinzufügen.
    2. Wählen Sie Lokaler Drucker der an den Computer angeschlossen ist (auch wenn er es nicht ist)
      Plug & Play können Sie weg lassen.



    3. Wählen Sie einen Neuen Anschluss erstellen. Und bei Anschlusstyp Standard TCP/IP.



    4. Geben Sie die IP Adresse des Nasoline Servers an. Beim Portnamen können Sie sich was ausdenken oder die Vorgabe belassen.



    5. Wählen Sie im nächsten Fenster benutzerdefiniert und klicken Sie auf Einstellungen.

      Vergewissern Sie sich das beim Protokoll RAW angegeben ist und beim Port 9100.



    6. Zu guter letzt müssen Sie noch den Treiber für Ihren Drucker auswählen.



Das wars.