Vor einiger Zeit habe ich bereits über die Möglichkeit, über ein so genanntes „fun_plug“ das Conceptronic CH3SNAS (Baugleich mit dem D-Link DNS-323) zu erweitern, berichtet. Damals hatte ich einen Webserver über diese Möglichkeit hinzugefügt. Leider muss jedes Mal meine Festplatte anlaufen, wenn eigentlich nur eine Seite angefordert wird und ich nur schnell was ansehen möchte. Resultat ist eine schneller verschleißende Festplatte und eine lange Responsezeit (eben bis die Festplatte angelaufen ist). Ein anderes Problem ist der Lüfter, dessen Script gerne irgendwohin loggen würde. Leider gehen aber die Festplatten nicht aus, wenn der Lüfter läuft (von daher gibts dann wieder nicht viel zu protokollieren :P). Werbung
Ein Abhilfe für diese Probleme bietet das NAS jedoch von Haus aus. Dank eines USB-Ports auf der Rückseite, der eigentlich für einen Drucker gedacht ist, ist es leicht mit einem USB-Speicher erweiterbar. Natürlich liefert Conceptronic diese Möglichkeit nicht mit, jedoch dank des fun_plug ist auch dieses Problem leicht zu beheben.
Nach der erfolgreichen Installation des fun_plug benötigt man Konsolenzugang zum CH3SNAS um die folgenden Schritte ausführen zu können. Der USB-Stick muss noch nicht eingesteckt werden. Ich rate zu einer Formatierung mit ext2 (dieser Schritt wird später direkt auf dem NAS gemacht), jedoch kann der Stick auch bei FAT(32) betrieben werden. Dabei ist dann jedoch die Rechtevergabe eingeschränkt.
Zunächst wird ein Kernel-Modul für USB-Speicher benötigt. Dieses kann man hier herunterladen. Anschließend wird es in das Hauptverzeichnis der ersten Festplatte gelegt (HD_a2) und nun entsprechend ins lib-Verzeichnis des fun_plug verschoben. Die Variablen werden durch das fun_plug gesetzt. Sollte das unten angegeben fehlschlagen, stimmt etwas mit dem fun_plug nicht:
mkdir $LIBDIR/usbstorage mv /mnt/HD_a2/usb-storage.ko $LIBDIR/usbstorage/
Das Modul wird nun mittels
$SBINDIR/insmod $LIBDIR/usbstorage/usb-storage.ko
geladen.
Für ext2 sollte nun der USB-Stick erstmal formatiert werden. Ich gehe davon aus, dass 2 Festplatten verbaut wurden (daher sdc für den USB-Stick). ACHTUNG: Wird die falsche Festplatte formatiert, werden Ihre Daten verloren sein! Bitte daher doppelt prüfen! Wurde nur eine verbaut oder mehrere USB-Sticks (über einen Hub) angesteckt worden sein, so muss der Laufwerksbuchstabe entsprechend angepasst werden (Eine Festplatte – Erster USB-Stick: /dev/sdb):
fdisk /dev/sdc
Mit der Eingabe von „p“ kann man sich alle Partitionen auf dem Stick anzeigen lassen. „d“ löscht Partitionen und „n“ legt neue an (Primary Partition in voller Größe: „n“ => „p“ => „1“ und zweimal dann Enter)
Nun muss das Dateisystem erzeugt werden, hier ist der Buchstabe der gleiche wie oben, die Zahl ist die Nummer der Partition:
mke2fs /dev/sdc1
Getestet werden kann das ganze nun mit einem Mount-Befehl:
[code]mkdir /mnt/HD_a2/usbstorage
mount /dev/sdc1 /mnt/HD_a2/usbstorage[/code]
Wie prüft man nun, ob das einbinden geklappt hat? Es gibt hier zwei Wege, beide Befehle müssen jedoch in der Kommandozeile ausgeführt werden:
cat /proc/partitions
mount
Der obenstehende Vorgang kann natürlich automatisiert werden. Der folgende Dateiinhalt (Download) muss als „01usbstorage.sh“ ins „start“-Verzeichnis des fun_plugs:
#!/bin/sh $SBINDIR/insmod $LIBDIR/usbstorage/usb-storage.ko sleep 15 mount /dev/sdc1 /mnt/HD_a2/usbstorage
Da dort keine Schreibrechte bestehen, gilt hier der gleiche Vorgang wie oben:
Kopieren über den normalen Filemanagerzugriff (bei mir Samba) in das Hauptverzeichnis, anschließend per:
mv /mnt/HD_a2/01usbstorage.sh $FUNPLUGDIR/start/ chmod +x $FUNPLUGDIR/start/01usbstorage.sh
verschoben und aktiviert.
Zum Test wird das NAS neu gestartet. Nach dem Neustart kann mit den obenstehenden Befehlen geprüft werden, ob der USB-Speicher ordnungsgemäß unter /mnt/HD_a2/usbstorage
eingebunden ist.
Wenn ja, dann kann man nun den Webserver-Root (Achtung, ich würde PHP mitverlagern) oder das Logverzeichnis der Lüftersteuerung auf den USB-stick auslagern.
Kleiner Hinweis: Wenn es nicht funktioniert, dann folgenden Befehl ausführen:
Show ▼
Der Erfolg des ganzen ist nun, dass die auf dem USB-Stick abgelegten Daten direkt von einem Flashspeicher gelesen werden und somit ein Einschalten der Festplatten aus deren Ruhemodus unnötig wird. So kann man Beispielsweise einen kleinen Webserver problemlos vom Stick laufen lassen.
Beste Grüße
Uli
Könnte man auch prinzipiell alle Cache-Auslagerungen von MySQL und PHP auf den Stick schreiben lassen?
Ansonsten ist noch zu überlegen, ob ein USB-Stick überhaupt für solche Zwecke geeignet ist. Momentan ist eine Festplatte doch mit Schreibzugriffen noch wesentlich langlebiger als ein USB-Stick.
PHP beschreibt keine Caches, sofern kein eAccelerator installiert ist.
MySQL muss ich erstmal zum laufen bekommen. Dann werde ich allerdings den Cache abschalten (dieser bringt ja dann nix, denn es kommt so oder so vom USB-Stick).
Der USB-Stick ist für meinen Anwendungsfall wesentlich sinnvoller. Die meisten Zugriffe sind Lesezugriffe, die vom Webserver gemacht werden. Von daher nicht sehr problematisch. Der Stick war sowieso übrig 😛
Eine Festplatte ist hier fehl am Platz, da diese ja wieder eine begrenzte Laufzeit und eine gewisse Lautstärke mitbringt. Da kann ich gleich die interne Platte (Seagate 500GB Serverfestplatte (für 24/7 Betrieb)) nutzen. 😛
Klar, die Cachingsache bringt nur Gewinn, wenn die Anwendungen sich außerhalb des Sticks befinden.
Ich hätte nur irgendwie Angst um meine Daten, wenn ich alles auf einem Stick ablege, der mir jederzeit abrauchen kann. Dann müsste man vielleicht noch ein daily backup vom Stick auf die Platte schieben.
Ansonsten sweete Sache.
Dafür gibts ja das Backup 🙂
Hallo,
interessante Idee. Hab noch eine Frage für (Nichtlinuxer):
Zitat:
Wie? Gibt es eine Möglichkeit noch andere Programme auf den USB-Stick zu laden (z.B Twonky)?
Danke
Rü
Hallo Ruepel,
ja man kann alle Programme theoretisch auslagern. Ich würde dann aber das gesamte fun_plug auf den USB-Stick auslagern, da sonst möglicherweise benötigte Bibliotheken nicht gefunden werden können.
Achtung ich habe die Anweisungen hier für fonz fun_plug V0.4 geschrieben!
Dies ist recht einfach möglich, man kopiert einfach das Verzeichnis „fun_plug.d“ sowie die Datei „fun_plug“ auf den USB-Stick. Nun müssen die Pfade in der Datei „fun_plug“ angepasst werden:
In meinem Falle wäre das beispielsweise:
Bevor nun aber das fun_plug funktionieren kann, muss der USB-Stick wie oben gemountet werden. Daher ist folgende Modifikation notwendig:
Finde in Datei „fun_plug“:
Füge danach ein:
Habs noch nicht getestet, aber so dürfte es meines Wissen nach gehen.
Hallo Uli,
hab am Wochenende mal rumprobiert. Leider ist es mir nicht gelungen. Sowohl Telnet (und nach erneuter Neuinstallation von fun_plug) als auch der USB-Stick gingen nicht. Habe folgendes gemacht: 1. wie oben beschrieben den Stick installiert. Das hat schon mal geklappt und er wurde auch während einem Neustart des NAS eingebunden. 2. Habe ich den Ordner fun_plug.d und die Datei fun_plug in den Ordner usbstorage verschoben (ich gehe mal davon aus, dass das so richtig ist) 3. habe ich die Datei fun_plug wie oben geändert und das NAS neu gestartet.
Wenn ich bisher was falsch gemacht habe werden meine nun folgenden Gedanken sicherlich falsch sein.
Ich gehe davon aus, dass das NAS den USB-Stick nicht einbinden kann, weil es ihn nicht findet, da sich ja der Befehl zum einbinden auf dem USB-Stick befindet.
Die Datei fun_plug muss weiterhin auf der Festplatte des NAS liegen bleiben. NUR der Ordner fun_plug.d muss auf den USB-Stick (ja in usrstorage) verschoben werden.
Ich werde mein NAS die Tage auch mal umstellen, daher kann ich dir dann vielleicht mehr sagen. Allerdings gehe ich dann auf Firmware 1.3 und evtl Fun_plug 0.5 (beim letzteren bin ich mir noch nicht sicher…).
Die Idee ist mir auch gerade gekommen (mit der Datei
fun_plug
). Geht aber auch nicht, da z.B. dieusb-storage.ko
ja auf dem USB-Stick liegt, der wiederum nicht eingebunden ist. Die01usbstorage.sh
wird ja (denke ich) nicht gebraucht (obwohl ich sie nicht aus dem start-Ordner gelöscht habe) da die Befehle ja in diefun_plug
eingetragen wurden.Wie sagt ein bekannter Talkmaster immer so schön: Ein Teufelskreis…
Ach denkfehler meinerseits, die usbstorage.ko musst du dann auch noch auf der Festplatte haben… die
01usbstorage.sh
wird natürlich nicht gebraucht, da hast du recht…(kannst du mittelschmod -x 01usbstorage.sh
einfach aus dem Startvorgang nehmen)Sorry, da hab ich nicht ganz mitgedacht…
Allerdings wird „
insmod
“ benötigt. Es wäre einen Versuch wert, sich einen start-Ordner zu basteln in deminsmod
& dieusbstorage.ko
enthalten sind. (Zu finden in/mnt/HD_a2/fun_plug.d/bin/insmod
)Im Script muss dann der Pfad zur
usbstorage.ko
undinsmod
angepasst werden.Wenn die Einbindung dann immer noch nicht funktioniert, hat insmod möglicherweise noch Abhängigkeiten: Man könnte/müsste daher vielleicht ein zweites Fun_plug auf der Festplatte liegen lassen…
Hallo,
hab gestern ein bisschen rumgefummelt, leider ohne Erfolg.
Die FW 1.3. hab ich schon drauf, fun-plug 5 wäre sicherlich auch interessant. Dafür gibt’s ca. 70 Pakete leider ohne brauchbare Beschreibung. Hat jemand ’ne Ahnung was die können?
Kann man den VLC-Mediaplayer auf die Box bekommen und einen MF-Server (mit dem kann mann verschiedene Videoformate über VLC auf meinen Sat-Reciever streamen)?
Rü
hi,
$SBINDIR/insmod $LIBDIR/usbstorage/usb-storage.ko
bei diesem befehl bekomm ich die meldung „insmod nicht gefunden“ oder so ähnlich.
muss das noch installiert werden?
Mit freundlichen Grüßen
thomas
Hoi,
die Anleitung ist für das ffp0.5, ich habs aber zuhause laufen, ich schreibe die Tage bestimmt darüber. Heute abend seh ichs mal nach und informiere dich einfach nochmal!
Beste Grüße
Uli
Hey Uli,
hast die Anleitung für das 0.5 fun_plug zufällig erstellt?
Ich habe den Stick erfolgreich in „..bla../Volume_1/x“ gemountet.
mount zeigt das als „rw“ gemountet an.
Dennoch kann ich über meinen anderen rechner nicht direkt auf den stick schreiben. (Per netzlaufwerk, dort zugriff auch mit rw) :-/. Any ideas?
Grüße Taucha
@Taucha:
Fragen dazu:
1. Filesystem?
2. Rechtevergabe? (User/Group)?
Gruß
Uli
erstellt mit mke2fs.
ach verdammt… 755 für root:root 😉
da liegt der Hund begraben…
Hallo,
gilt diese Anleitung auf für das fun_plug 0.5.
Ich habe nämlich Probleme mit den Variablen $LIBDIR und $SBINDIR.
Gruß Teardrop
Hallo,
bin jetzt zwar weiter, bekommen jetzt aber folgende Fehlermeldung:
mount: mounting /dev/sdb1 on /mnt/HD_a2/usbstorage failed: Device or resource busy
Kann mir jemand helfen???
Hi,
könntest du dir einen Grund vorstellen, warum oben:
Steht?
Um es kurz zu machen: Schau dir mal in diesem Beitrag das Script setup.sh an. Vielleicht hilft dir das weiter.
Sorry, ich glaube das war ein Mißverständnis! Ich wollte nicht das fun_plug auf einen USB-Stick installieren, sondern ich wollte nur einen USB-Stick an das NAS anschließen. Daher habe ich mich an dieses Thema gehangen. Das mit der Überschrift war mir schon klar. Habe es jetzt auch selbst hinbekommen (nach mehreren Stunden) habe jetzt nur noch das Problem, dass ich nicht ueber Samba auf den Stick zugreifen kann(keine Rechte, obwohl ich über das Webinterface eine Freigabe mit ALL Vollzugriff eingerichtet habe (grübel).
Ich denke, du musst user (chown) und evtl auch Rechte (chmod) ändern, damit du Zugriff bekommst. 🙂
supi, hat geklappt, Danke nochmal!!!
Hallo
würde gern eine zusätzliche USB HDD (1TB) mounten.
wäre der weg in etwa so:
fdisk /dev/sdd (2 HDD + 1 USB Stick existieren)
mkdir /mnt/HD_a2/usbhdd1
mount /dev/sdd1 /mnt/HD_a2/usbhdd1
ist das alles oder muß noch mehr getan werden?
würde gern NFTS als Partition behalten um die platte zur not komplikationlos am windoof pc betreiben zu können, die können ja ext3 nicht lesen
jup, das klappt in etwa so, aber du musst noch das ntfs-kernel-modul dazu laden, sonst wird das nicht klappen.
Ich rate dir allerdings eher explore2fs oder ext2fsd auf dem Windows-Rechner zu installieren und die Platte in ext2/3 zu formatieren.
Viele Grüße
Uli
Hi Uli
Ich werd noch wahnsinnig…
Anfangs funzte die per ext am CH3SNAS so wie es sollte auch das einbinden klappte.
Nun ist es aber so, daß ich keinerlei Daten/Verzeichnisse auf der USBHDD mehr sehe, lediglich den Speicherverbrauch. Per fdisk -l hat diese Platte auf einmal id 7 HPFS/NTFS Format.
Das kann aber nicht ganz stimmen unter WinXP Trotz ext2 Treiber auch kein Zugriff. Erst mit Ubuntu sehe ich: Ext3 Format HDD UND auch sehe ich hier die entsprechenden Daten.
Was kann ich nun noch tun außer zu kopieren und neu zu formatieren? Irgendwie schwant mir, daß dies nochmal vorkommen kann.
Danke
Hi
Ich habe nicht viel Ahnung von Linux.
Ich habe aber dank der tollen Anleitungen alles gut auf die Box installiert bekommen (fun_plug 0.5, Repository, Nano, Midnight Commander, Bittorrent)
Jetzt möchte ich noch eine USB Festplatte mounten. Die Platte ist ext auf ihr sind Daten die ich mit rsync auf die Box Kopieren möchte.
Wenn sich diese Anleitung auf fun_plug 0.3, 0.4 bezieht wie geht es mit v0.5?
danke
Ein Tipp für alle, die versuchen unter funplug 0.5 den USB-Storage (DATACASK RAID1-Gehäuse für 45 EUR) einzubinden: Das aktuelle Plugin kann das ohne weiteres zutun…
Ich hab stundenlang im Web nach einer Lösung gesucht. Bis ich das EXT2-formatierte USB-Laufwerk (mit Ubuntu gemacht) einfach angestöpselt habe => Neustart => Es erscheint ein neues Verzeichnis im Root mit USBSTORAGE 🙂
Hi,
erstmal ein dickes Dankeschön für Deine Arbeit & Doku zum DNS-323!!
Mein Problem: ich habe das modul usb-storage.ko von Dir (Link auf dieser Seite) im Einsatz mit fonz_funplug 0.5. Dabei fiel mir auf, das die Platten ziemlich oft anlaufen, nachschauen mit „dmesg“ ergab, daß es immer nur eine Platte war:
***************************************
* HD0 stand by now! *
***************************************
***************************************
* HD1 stand by now! *
***************************************
#######################################
# HD0 awake now ! #
#######################################
***************************************
* HD0 stand by now! *
***************************************
#######################################
# HD0 awake now ! #
#######################################
***************************************
* HD0 stand by now! *
***************************************
#######################################
# HD0 awake now ! #
#######################################
***************************************
* HD0 stand by now! *
***************************************
#######################################
# HD0 awake now ! #
#######################################
***************************************
* HD0 stand by now! *
***************************************
Das ist insoweit verwunderlich, da ich RAID0 (striping) eingerichtet habe und dabei eigentlich beide Platten als ein Volume angesprochen werden – und damit gleichzeitig hochdrehen sollten. Unter Umständen ist die mit „dmesg“ ausgegebene Aufzeichnung aber auch fehlerhaft, da in der Weboberfläche (Firmware Version: 1.07) unter Status, Physical Disk Info bei geladenem modul usb-storage.ko nur noch EINE Platte statt der zwei eingebauten angezeigt wird.
Frage dazu: Gibt es inzwischen ein neueres Modul für USB, das dieses Verhalten nicht mehr zeigt ?
freundlichen Gruß
bonsai
Hallo,
ich kann das Phänomen bestätigen! Jedoch bedenke folgendes: Das NAS legt auf dem Laufwerk neben der zu spiegelnden RAID-Datenpartition auf jeder Platte auch noch ~500 MB Swap-Space an. Der Swap-Space auf der ersten Platte (rechts) hat eine höhere Priorität als die linke und wird daher in der Regel öfters gefragt. Solange dein Swap nicht auf dem USB-Speicher liegt, fährt die Platte regelmäßig hoch. Vielleicht denkt sich jemand eine Lösung aus 😉
Hallo Pago,
ja, Deine Erklärung macht Sinn. Ich sorge mich nur etwas um die Lebensdauer der HD0 wenn diese so oft hochdreht. Damit muß man aber vorerst wohl leben – nichts geht über ein aktuelles backup…
Jetzt habe ich mir eine Lösung ausgedacht! Es lässt sich relativ simpel auf dem USB-Laufwerk ein Swapfile anlegen.
Eine kleine Anleitung habe ich hier online gestellt:
http://blog.geopfert.de/2010/07/11/swap-speicher-des-dns-323-auf-das-usb-laufwerk-verschieben/
Hallöchen,
ich möchte gerne meine ntfs usb platte ans ch3snas hängen …
@Wolfi hat geschrieben das man dazu das ntfs-kernel Modul laden muss … dieses hier: http://sourceforge.net/projects/linux-ntfs/
Wenn ja, wie mach ich das denn in Bezug zur Anleitung hier … bzw wo und wie wird das eingebunden?
Bitte um Hilfe …
Grüße
Hallo,
Du schreibst Wolfi hätte was vom Laden eines Kernel Moduls geschrieben. Ich suche seit Tagen nach so einem Kernel Modul für meine CH3MNAS oder einem weiter helfenden Kommentar dazu, finde aber rein gar nichts. Unter Deinem Link findet man auch auf den ersten Blick nur das gute alte „ntfsprogs“, bei genauerem Hinsehen auch ein paar Module, aber keins davon ist für Kernel-Version 2.6.22.7, und keins für die arm5v-Architektur (ist die CH3SNAS, die Du hast, da wirklich so viel passender?). Wenn ich wüsste wie, würd ich’s mir ja selbst kompilieren, aber die div. Hilfeseiten helfen da nicht viel, denn ich finde ja nicht einmal den Kernel in (/ffp)/lib/modules/…
Ich hab mir jetzt einen geeigneten Kernel (meine CH3MNAS nutzt v2.6.22.7) von „kernel.org“ geladen und ihn erfolgreich mit NTFS-Support (auch „write“ laut „make menuconfig“!) kompiliert.
Im Gegensatz zu all den anderen „ntfs.ko“ Modulen, die ich bisher von wo auch immer aus dem Internet geladen habe, gibt dieses beim Installieren mit „insmod“ schon mal keine Fehlermeldung ab!
„mount -t ntfs /dev/sdc1 /mnt/usb1“ hingegen crasht jetzt mit einem „segmentation fault“ und beim zweiten Versuch hängt sich das Terminal auf und der „mount“-Prozess kann nicht mehr ge-kill-t werden.
Aber trotzdem glaube ich, dass ich schon ziemlich nah an der Lösung bin. Vielleicht ist das so ein ähnliches Problem wie das von „fdisk“, was hier https://wolf-u.li/3346/crash-von-fdisk-unter-busybox-mit-fehler-segmentation-fault beschrieben wird.
Hat jemand eine Idee was zu tun ist?
Melde hiermit Erfolg! ntfs.ko in funktionierender Fassung für die CH3MNAS! Wer’s braucht möge sich bitte hier melden. Vielleicht hostet ja Uli die Datei. „Write“-Support ist erst einmal nicht möglich gewesen, hat mir die NAS ständig aufgehängt, Read geht aber problemlos mit „mount -t ntfs -o umask=0 „. Ich habe auch die fuse.ko mitkompiliert. Damit kriegt man angeblich „ntfs-3g“ und „ntfsprogs“ zum Laufen, und somit funktionierenden „Write“-Support, hab’s aber noch nicht untersucht, ich bin jetzt nämlich erst mal zufrieden :-).
Irgendwie habe ich auch ein Problem einen weiteren USB stick einzubinden.Der Stick ist ganz normal unter Fat32 formatiert.
mkdir /mnt/usb2
chmod 777 /mnt/usb2
Auf diesen ordner kann jeder zugreifen.
aber sobald ich:
mount /dev/sdd1 /mnt/usb2
eingebe , kann nur noch root schreiben.
ein weiteres chmod bringt keine veränderungen.
gruss
DerSuchende
Ich nehme an, die anderen Nutzer versuchen über Netzwerk (also zb SMB) auf den Stick zuzugreifen? Hast du denn die entsprechenden Zugriffsrechte über das Webinterface für diese Freigabe gesetzt?
„mount -t vfat -o umask=0 /dev/sdd1 /mnt/usb2“, und das Problem ist behoben. Ohne das „vfat“ wird die Partition als FAT16 gemountet, was heisst, dass lange Dateinamen auf 8.3 gekürzt werden, und ohne das „umask“ bekommt nur root ein paar Rechte auf die zu mountende Partition.