Posts für Suchanfrage wake on lan werden nach Relevanz sortiert angezeigt. Nach Datum sortieren Alle Posts anzeigen
Posts für Suchanfrage wake on lan werden nach Relevanz sortiert angezeigt. Nach Datum sortieren Alle Posts anzeigen

Dienstag, 25. August 2015

Notizen zu Wake On LAN

Manchmal muss man ja "umgekehrt denken". Ein alter Spruch von mir ist: Wenn Copy sagt er kann das Ziel nicht schreiben, bedeutet das in Wahrheit er kann die Quelle nicht lesen. Ich glaube dieser Fehler ist irgendwann um 1980 in die Copy Routine von CP/M oder MS-DOS eingebaut wurden und hat sich seither gehalten.
Warum diese Vorbemerkung? Ganz einfach, will man erfolgreich Wake On LAN (WOL - aufwachen über das Netzwerk) machen muss man die Maschine vorher richtig herunterfahren. WOL selbst ist relativ easy, aber die Maschine in den Zustand versetze, dass sie auf die Magic Packets lauscht ist (immer noch) nicht ganz selbstverständlich.
Hintergrund: Die Netzwerkkarte muss zumindest zum Teil aktiv bleiben, ein Link zum Netzwerk existieren und die Netzkarte muss dem Computer den Startbefehl geben können. Diese Einstellung erreicht man zumeist im Computer BIOS, früher waren auch noch Jumper oder spezielle Kabel notwendig. Aber all das führt nur zum Erfolg, wenn das Betriebssystem den Computer auch richtig herunter gefahren hat. Zuständig dafür ist ACPI. Das bedeutet im Umkehrschluss: War der Strom wirklich weg, geht anschließend kein WOL, dann ist die Wachsamkeitsphase der Netzwerkkarte gestört wurden. Erst ein Start des Systems und ein anschließender ordentlicher Shutdown führt den Computer wieder zu der Fähigkeit durch WOL aufzuwecken. Mir ist zumindest kein System bekannt, wo das ohne geht. In Wahrheit ist Strom weg also wirklich aus und Shutdown ein tiefer Standby.
Falls Wake on Lan also nicht einfach so funktioniert (es gibt schon System, da geht es einfach so) sollte man zuerst im Bios nachschauen.

BIOS

APM        - Advanced Power Management
Wake UP - Aufwachen durch PCI oder PCIe
Power Off - Zustand nach Stromausfall

Sind die Punkte nach denen man im Bios suchen muss, in jedem Bios bei jedem Hersteller sind diese Punkte immer wieder unterschiedlich einsortiert und benannt.
Nachdem man im BIOS alles aktiviert hat kann man sich durch Windows hindurch arbeiten. Es gibt keine allgemeingültige Vorgehensweise, man kann die Punkte in der folgenden Reihenfolge kontrollieren/einstellen und jedes Mal versuchen ob es funktioniert. Die Link LED am Switch (nicht die an der Netzkarte) ist übrigens das Indiz ob die Einstellungen erfolgreich war. Sie geht in der Regel auf einen "Low Speed" Link Status, aber ohne Link geht es nicht.

Strom weg?

Es ist häufig so, das nach Stromausfall die Netzkarte nicht mehr im "Bereitschaftszustand" ist. Eigentlich relativ normal habe ich früher gedacht. Aber neuere Systeme können auch dies: Man muss im BIOS nach den Punkt "APM/Restore AC Power loss" oder so ähnlich suchen. Dort kann man quasi einstellen "Last State - vorher wie nachher".
Bei vielen System wird dadurch auch der Zustand der Netzwerkkarte wiederhergestellt.

Unter Windows gibt es folgende "Hürden"

  • Netzkartentreiber - Muss ein Shutdown für WOL generell unterstützen. Manchmal hilft ein neuer Treiber. Auch wenn die Einstellungen alle vorhanden und aktiv sind, hilft manchmal nur ein neuer Treiber. Offenbar sind manche Treiber die von Windows (scheinbar aktuell) mitgeliefert werden genau dort beschnitten. Ich rede von bekannten Herstellern die Allianzen mit Microsoft haben, z.B. Intel!
  • Energieverwaltung am Netzkartentreiber - unterschiedliche Konfigurationsmöglichkeiten unter dem Reiter Energieverwaltung, Erweitert und eventuell weitere treiber spezifische Reiter. Intel hat aktuell zusätzliche Reiter, diese fehlen in den Treibern die von Windows 10 mitgeliefert werden. Der Atheros Treiber hat einen zusätzlichen Punkt für "Shutdown Wake Up"  
  • Energieverwaltung des Systems - hier kann man versuchen Windows Schnellstart auszuschalten - wenn WOL nicht geht. (völlig unlogisch!) Diese Option wird erst eingeblendet wenn man auswählt was beim Drücken von Netzschaltern geschehen soll - auch logisch!?!
  • Herunterfahren - aber wie? In der Kommandozeile shutdown -s eingeben ist nicht immer dasselbe wie Herunterfahren über den Menüpunkt. Eigentlich dachte ich immer, das ist genau das Gleiche. Aber offenbar nicht. (Ob ich hier noch Informationen bekomme?) Im Übrigen wirkt ein Remote Befehl von linux (net rpc shutdown ...) wie ein lokales shutdown auf Kommandozeile, wenn WOL damit geht, funktioniert es auch von linux Remote.

Das Verhalten unter Windows kann sich leider bei jedem Update ändern. Wenn man sich also darauf verlassen muss dass WOL noch geht, sollte man es regelmäßig nach Updates überprüfen wenn man vor Ort ist.

Herunterfahren Button auf dem Desktop

  • Irgendwo auf dem Desktop rechte Maustaste - neu - Verknüpfung
  • Hier shutdown -s eintippen, weiter und einen Namen seiner Wahl eingeben.
  • Rechte Maustaste auf die neue Verknüpfung und dann Eigenschaften - Anderes Symbol.
  • Hier ein Symbol seiner Wahl auswählen.
  • Rechte Maustaste auf das neue Symbol und dann - Anheften an Taskleiste - nach belieben verschieben.
  • Mit einem Klick fährt der PC WOL tauglich herunter!

Linux

Da habe ich bisher wenig Tipps. Entweder es geht oder es geht nicht, hängt von der Distribution, den Treibern und den Einstellungen ab. Mal sehen ob ich hier noch mehr Infos einsammeln kann.

Mit dem Tool ethtool kann man feststellen ob WOL aktiviert ist oder nicht.

sudo ethtool <Your interface name>

ergibt als Ausgabe so etwas:

  • Supports Wake-on: pumbg
  • Wake-on: g

Letzteres sagt: WOL ist aktiviert!

Für Debian habe ich hier eine Anleitung gefunden. Es gibt auch hier noch eine Wiki WOL Übersicht

Ein frisches System mit debian netinst.iso konnte ich mit einer zusätzlichen Datei in /etc/network/interfaces.d/ erfolgreich konfigurieren:

auto enp1s0
iface enp1s0 inet dhcp
        ethernet-wol g

Ein debian Trixie Desktop System verwendet nmcli. Dies konnte ich so konfigurieren:

sudo nmcli con show
sudo nmcli connection modify 'Wired connection 1' 802-3-ethernet.wake-on-lan magic

Auf einem Proxmox Host kann man eine Datei in /etc/network/interfaces.d/ so gestalten:

# vmbr0 is set to static, look for the right bridged interface
iface enp3s0 inet manual
post-up /usr/sbin/ethtool -s enp3s0 wol g

Ubuntu verwendet per default netplan, dies kennt eine Option: wakeonlan (bool). (Enable wake on LAN. Off by default.) 

Modifizierte /etc/netplan/00-installer-config.yaml als Beispiel:

# This is the network config written by 'subiquity'
network:
  ethernets:
    enp2s0:
      wakeonlan: true
      dhcp4: true
  version: 2

Ganz universell wäre vielleicht ein extra systemd Service, so wie hier beschrieben. 

Wahrscheinlich muss man alle debian basierten Systeme gezielt vorbereiten. Siehe diesen Artikel.

Herunterfahren des Systems kann auch entscheidend für WOL sein. Es macht bei manchen Systemen einen Unterschied ob man poweroff oder shutdown now verwendet.

Meistens darf das System nicht in den S5 Modus geschickt werden. 

Dienstag, 7. April 2015

Computer mit FHEM an- und ausschalten

Wake On LAN mit FHEM

Kann ein Rechner im Netzwerk Wake on Lan so können wir ihn ganz einfach auch mit FHEM aufwecken. Wir brauchen die MAC Adresse und die IP Adresse des Rechners. Die IP Adresse wird von dem WOL Gerät in FHEM verwendet, um mit Ping zu prüfen, ob der Rechner im Netzwerk erreichbar ist. Entsprechend wird der Status auf on oder off gesetzt. Ich verwende in meinem Beispiel die UDP Methode. Für diese Methode muss nichts weiter installiert werden. In der Commandref  sind noch die Methoden mit den Tools ether-wake oder wakeonlan beschrieben, dafür müssen die entsprechenden Tools installiert werden.
define <Rechnername> WOL xx:xx:xx:xx:xx:xx 192.168.x.x UDP
Generell ist es sinnvoll zu konfigurieren, in welches Netzwerk das UDP Broadcast Packet versendet wird. Dazu muss die Broadcast Adresse konfiguriert werden. Dies geschieht mit dem entsprechendem  Attribut:
attr <Rechnername> useUdpBroadcast 192.168.x.255
Mit einem Druck auf on (oder set <Rechnername> on) sollte den Rechner aufwecken. Geschieht das nicht, ist der Rechner nicht richtig auf WOL konfiguriert. Man hat leider kein Feedback von der Weboberfläche, man "spürt" nicht ob man gedrückt hat oder nicht.
Sollte nach ca. 1 min der Status des eingeschalteten Rechners nicht auf on aktualisiert werden, ist zu prüfen ob der Rechner auf Ping reagiert, falls nicht muss eventuell noch die Windows Firewall konfiguriert werden (siehe weiter unten).


Um den Rechner auch ausschalten zu können, müssen wir ihn natürlich ordentlich herunterfahren. Für einen Windows Computer müssen wir folgende Vorarbeit leisten.

Benutzerverwaltung unter Windows

Um shutdown von der übrigen Verwaltung von Windows sauber zu trennen und mit maximaler Sicherheit für das System zu arbeiten, legen wir einen separaten Benutzer an.

Hinweis: Wer das alles kurz mit ein paar Zeilen Powershell Script machen will, sollte hier schauen.

Die Einrichtung neuer Benutzer ist auf jedem Windows System etwas anders zu finden, dass hängt leider nicht nur von der konkreten Version sondern auch persönlicher Konfiguration ab. Zumindest seit Windows 7 geht es einfach auf jedem deutschen System mit der Eingabe des Wortes "Benutzerkonten" im Suchfeld.
Generell führt uns die "Windows Taste" auf der Tastatur ins Suchfeld wenn wir uns auf dem Desktop befinden. Mit der Maus geht es so:
Windows 7 und Server 2008 - Startknopf ( -> Startmenü) und dann einfach tippen
Windows 8 und Server 2012 - Windows Knopf ( -> Kacheloberfläche) und dann einfach tippen


Wer sich manuell durch hangeln will, der muss das in etwa so tun:
Systemsteuerung --> Benutzerkonten --> Benutzerkonten verwalten
Leider ist das von Windows zu Windows Version immer wieder etwas verschieden.


Hier erstellen wir  ein neues Konto z.B. den "UserShutdown" als Standardbenutzer. Da wir später den Account im Klartext in der FHEM Konfiguration eintragen, bekommt dieser Benutzer nur minimale Rechte. Ich begnüge mich mit Standardbenutzer und einem zusätzlichem Recht. Man könnte ihm eventuell weitere Rechte entziehen.

Wir müssen ein sicheres Kennwort vergeben. Sichere Passwörter bestehen aus Groß- und Kleinbuchstaben, Zahlen und Sonderzeichen. Sonderzeichen sollte man sorgsam verwenden, es gibt nicht alle in jeder Sprache.

Beispiel: P@ssw0rd


Dieser Benutzer braucht jetzt noch entsprechende Rechte. Dazu öffnen wir die lokale Sicherheitsrichtlinie. Das geht mit dem Begriff "secpol.msc" im Suchfeld (siehe oben). Bei Windows 8 ist das allerdings etwas umständlich, da wird die App nicht sofort sondern erst ganz links im Bing Fenster angezeigt. Alternativ kann man gpedit.msc eingeben und verwenden, die Sicherheitseinstellungen sind eine Untermenge von Gpedit.

Der Benutzer bekommt das Recht das System herunterzufahren. Weitere Rechte sind nicht notwendig.


Soll der am Windows Computer angemeldete Benutzer eine Nachricht bekommen, muss ein Dienst aktiviert werden. Dazu tippen wir einfach services.msc im Suchfeld ein (siehe oben). Der Dienst Remoteregistrierung wird auf automatisch gestellt und gestartet. Für die Remote Shutdown Funktion alleine ist es nicht notwendig.








Der Dienst Remoteregistrierung ist wohl auch für den Eintrag des Shutdowngrundes im Eventlog zuständig.
Will man den Remote Shutdown von einem Windows System einleiten, müssen eventuell noch folgende Dienste aktiviert sein:
- Windows-Remoteverwaltung
- Windows-Verwaltungsinstrumentation





Firewalleinstellung unter Windows

Wenn wir Firewallregeln ändern müssen, empfehle ich die direkte Methode über Windows Firewall: Wir tippen im Suchfeld (langsam sollte jeder wissen wie es geht) firewall ein und öffnen das Tool "Windows-Firewall mit erweiterter Sicherheit".

Hier klicken wir auf Eingehende Regeln, es kann etwas dauern bis die Regeln angezeigt werden.
Für die Überwachung muss Ping zulässig sein, dafür müssen wir die beiden Regeln "Datei- und Druckfreigabe (Echoanforderung -ICMPvx eingehend) aktivieren. Sicher reicht uns v4, aber ich habe beide aktiviert.

Beispiel: Windows Server 2012

Für den Shutdownbefehl von Linux muss offenbar die Standardeinstellung der Firewall nicht angepasst werden, falls wenigstens Datei und Druckfreigabe aktiviert ist. Ansonsten je nach Windows Version überprüfen, dass SMB eingehend (Port 445) aktiviert ist. Für den Shutdown Befehl von einem Windows System muss unter Umständen mehr aktiviert werden:
Technet Artikel
Mit Powershell cmdlet Stop-Computer funktioniert es bei mir auch ohne.



Windows Shutdown mit FHEM

Das hier gezeigte Beispiel geht von FHEM auf einem Linux System aus.

Voraussetzung für den "net" Befehl unter Linux ist das Packet samba-common-bin. Ist bisher kein Samba installiert, muss jetzt zumindest dieses Packet installiert werden:

sudo apt-get install samba-common-bin
Wenn Windows ein remote shutdown zulässt, können wir mit dem Attribute shutdownCmd den Befehl eintragen. Ein Druck auf off lässt dann den PC innerhalb einer Minute herunterfahren.
attr <Rechnername> shutdownCmd "net rpc shutdown -I <Rechnername> -U UserShutdown%P@ssw0rd"


Man kann mit dem attr interval noch das Interval für die Ping Überprüfung konfigurieren. Als Standard ist die Ping Überprüfung aus und man kann mit set <Rechnername> refresh den Zustand aktualisieren.


Ein Linux System remote herunterfahren


Der shutdown Befehl für ein Linux System lässt sich am einfachsten per ssh realisieren. Das habe ich in dem Artikel beschrieben:
Per ssh Remote Befehle direkt ausführen

Die Sache mit der Broadcast Adresse

Bei Geräten mit mehreren Netzwerkanschlüssen ist es möglich, dass das Magic Packet ins falsche Netzwerk gesendet wird und damit beim Empfänger gar nicht ankommt. Mit dem Route Befehl kann man sich anschauen, was passieren würde:
IPv4-Routentabelle
===========================================================================
Aktive Routen:
     Netzwerkziel    Netzwerkmaske          Gateway    Schnittstelle Metrik
          0.0.0.0          0.0.0.0    192.168.178.1   192.168.178.54     25
        127.0.0.0        255.0.0.0   Auf Verbindung         127.0.0.1    331
        127.0.0.1  255.255.255.255   Auf Verbindung         127.0.0.1    331
  127.255.255.255  255.255.255.255   Auf Verbindung         127.0.0.1    331
   172.28.130.240  255.255.255.240   Auf Verbindung    172.28.130.241    271
   172.28.130.241  255.255.255.255   Auf Verbindung    172.28.130.241    271
   172.28.130.255  255.255.255.255   Auf Verbindung    172.28.130.241    271
    192.168.178.0    255.255.255.0   Auf Verbindung    192.168.178.54    281
   192.168.178.54  255.255.255.255   Auf Verbindung    192.168.178.54    281
  192.168.178.255  255.255.255.255   Auf Verbindung    192.168.178.54    281
        224.0.0.0        240.0.0.0   Auf Verbindung         127.0.0.1    331
        224.0.0.0        240.0.0.0   Auf Verbindung    192.168.178.54    281
        224.0.0.0        240.0.0.0   Auf Verbindung    172.28.130.241    271
  255.255.255.255  255.255.255.255   Auf Verbindung         127.0.0.1    331
  255.255.255.255  255.255.255.255   Auf Verbindung    192.168.178.54    281
  255.255.255.255  255.255.255.255   Auf Verbindung    172.28.130.241    271
===========================================================================
Ein Packet für das Netzwerk 192.168.178.x an die Broadcast Adresse 255.255.255.255 versendet würde hier im falschen Subnetz landen. Das Packet muss also an die richtige Broadcast Adresse 192.168.178.255 versendet werden. Die Tools arbeiten da unterschiedlich, blöd ist wenn man die Broadcast Adresse nicht angeben kann.

Mittwoch, 6. April 2022

andocken - Dinge die man außerhalb docker braucht

Netzwerke, Laufwerke und seriellen Geräte funktionieren relativ einfach in der Containerumgebung. Mit Sound, Bluetooth, Wake on Lan usw. wird es schon schwieriger. Die sind nicht vorgesehen. Docker soll Softwarepakete/Applikationen isolieren und dicht "packen". Das man seine PC Umgebung dort hineinverlegt war so nicht unbedingt gedacht. Und es gibt natürlich "Übergangsbereiche" - Smarthome zum Beispiel. Ich habe ein paar Anforderungen für die ich eine Lösung brauche. Vielleicht ist es ja gar keine Behelfslösung sondern eine clevere Alternative? Folgende Themen habe ich bisher gefunden:

  1. Sound
  2. Bluetooth
  3. WakeOnLan bzw. ssh nutzen  

Dienstag, 17. November 2020

Wake On Lan über "Dritte"

Zum Thema Wake On Lan habe ich ja schon ein paar Artikel geschrieben. Es gibt Situationen, da erreicht das Magic Paket nicht direkt sein Ziel. Falls also auch der "directed Broadcast" nicht funktioniert, ist vielleicht der "Agent" im Zielnetz eine Lösung!?

Auslöser für diese Notiz war dieser Beitrag im Forum.

Ein Magic Paket aus einer MAC Adresse zu bauen ist keine große Wissenschaft, dieses Paket muss man dann einfach per UDP und Port 9 ins Zielnetz schicken. Viel Code ist zur Lösung nicht nötig, das Meiste ist wie immer das User Interface und Fehlerbehandlung. 

Mir fallen drei Lösungsansätze ein, alle benötigen keine erhöhten Rechte!

Voraussetzung: ssh Verbindung mit public Key ist eingerichtet und funktioniert!

Linux Host

Auf der Suche nach einem simplen Script bin ich nur bei einer Perl Lösung fündig geworden, eine Lösung mit netcat werde ich noch bereitstellen. 

Das Setup auf dem "Remote Agenten" kann man dann auch gleich per ssh machen:

ssh user@host 'wget -qO wakeonlan https://raw.githubusercontent.com/jpoliv/wakeonlan/master/wakeonlan;chmod +x wakeonlan'

Das Script wird heruntergeladen und ausführbar gemacht. Dann ist die Verwendung simpel: 

  • mac Adresse übergeben
  • Parameter -q für quiet Modus
  • Parameter -i für eine directed Broadcast Adresse.
ssh user@host ./wakeonlan -q 12:34:56:AB:CD:EF

Windows Host

Ich hatte da mal ein PowerShellScript gemacht. Windows kann auch ssh, also kann man auch per ssh die Einrichtung und Steuerung vornehmen.

Fritzbox und TR064

Falls die Fritzbox als zentraler Router dient und die MAC Adressen dort registriert sind, kann man auch die Fritzbox benutzen um das Gerät per WOL zu starten. Per FHEM geht das simpel. Es gibt auch Powershellscripte dafür.

get <FritzBoxName> tr064Command Hosts:1 hosts X_AVM-DE_WakeOnLANByMACAddress NewMACAddress "12:34:56:78:9A:BC"

Definition in FHEM

Das WOL Modul in FHEM bietet mittlerweile den CMD Modus. Hier kann man separate Befehle zum aufwecken angeben, das Ganze auch über ssh (siehe den Link oben). 

In wolCmd steht ein FHEM Befehl. Der Platzhalter $MAC wird bei der Ausführung durch die mac Adresse in der Definition ersetzt.

Beispiel mit der Fritzbox:

Das Gerät muss in der Fritzbox registriert sein! Die Fritzbox kann Broadcast nur im eigenen Netzwerk! 

attr WolDevice wolCmd get Fritzbox tr064Command Hosts:1 hosts X_AVM-DE_WakeOnLANByMACAddress NewMACAddress $MAC

Beispiel mit Remote Host und ssh

Wir brauchen 3 Dinge - ausgeführt so als Block in der Raw Definition:

  1. Das Programm/Script auf dem Agenten,
  2. den Shell Befehl der auf dem Agenten ausgeführt werden soll,
  3. den sshHost in üblicher Form.

"ssh user@host 'wget -qO wakeonlan https://raw.githubusercontent.com/jpoliv/wakeonlan/master/wakeonlan;;chmod +x wakeonlan'"
attr WolDevice wolCmd "./wakeonlan -q $MAC"
attr WolDevice sshHost user@host


CodeSpace


Freitag, 29. Januar 2021

Befehle und Scripts per ssh ausführen

Ich möchte über ssh (mit Powershell oder Perl) auf einem Linux Computer Befehle ausführen und dort Aktionen steuern.

Dazu braucht man ein paar Vorbereitungen, muss ein paar Eigenheiten beachten und ich möchte hier meine Erkenntnisse notieren.

Die ssh Einrichtung für Linux (fhem) habe ich hier schon mal beschrieben. Auf die Übertragung des public Key mit der Powershell gehe ich kurz ein. 

Freitag, 24. November 2017

openmediavault 1-2-3 fertig

Ein paar Notizen zur Grundeinrichtung

Aktuell gültig für OMV Version 3.086

Manuelle Konfiguration nach der Installation

Ein paar Grundeinstellungen

Immer wenn man die Konfiguration ändert kommt als Abschluss noch ein gelber Balken und man muss den "Anwenden Knopf" drücken. Den kann man auch nach einer Reihe von Änderungen ganz zum Schluß einmal drücken. Wichtig ist im jeweiligen Menü den Speichern Knopf zu drücken

Genaue Zeit
Datum und Zeit
NTP Server benutzen -> aktivieren -> speichern

WOL
Netzwerk
Schnittstellen -> eth0 auswählen -> bearbeiten -> Wake-on-LAN aktivieren -> speichern

Auf Knopfdruck ausschalten
Energieverwaltung
Einschaltknopf -> Herunterfahren -> speichern

Zugang per ssh
Zugriffskontrolle -> Benutzer -> Benutzer auswählen -> bearbeiten
                             -> Gruppen -> ssh anhaken -> speichern -> anwenden

System auf neuesten Stand bringen
Aktuell müssen zwei Pakte mit 0,00 Byte nach der Neuinstallation abgewählt werden, sonst geht die Aktualisierung nicht.

Benutzer zum sudoer machen
Einfach im Terminal (putty)
sudo su
echo "<Benutzer> ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/22_<Benutzer>-nopasswd

Ein öffentliches Share einrichten

Ziel: keine Anmeldung, kein User, kein Passwort

Dateisysteme -> einbinden der vorhandenen Dateisysteme auf den Platten oder Neue anlegen

Freigegebener Ordner
               -> Hinzufügen -> Namen eintragen
               -> Laufwerk auswählen -> Pfad auswählen
               -> Zugriffsrechte -> jeder:lesen/schreiben -> speichern
         Tab ACL -> rekursiv -> Aktivieren -> anwenden -> schließen

SMB/CIFS -> aktivieren -> Local Master Browser deaktivieren -> speichern
     Tab Freigaben -> hinzufügen -> Freigegebenen Ordner auswählen
                             -> Öffentlich -> nur Gäste -> speichern

Hintergrundinformationen

Die Weboberfläche macht bei der Einrichtung eine Kombination aus Ausführung von Debian Systembefehlen und Speichern von Informationen in der /etc/openmediavault/config.xml
Systembefehle werden sofort ausgeführt und eventuelle Meldungen erscheinen im Fenster.
Änderungen in der config.xml werden sofort in der Umgebung aktiv und mit einem gelben Balken angezeigt aber erst bei "Anwenden" in diese Datei geschrieben.
Genau aus diesem Grund gibt es praktisch keine Möglichkeit die gesamte Konfiguration einfach so zu speichern und wieder herzustellen.

Dienstag, 4. August 2015

NAS - oder alte Technik recyclen

Windows Homeserver und der Fortschritt

2009 habe ich mir mal einen Acer H340 Homeserver zugelegt. Es war ursprünglich mal ne gute Idee, der Windows Home Server (Basis Windows Server 2003) war eigentlich wirklich für den Heimanwender als zentrale Sicherung gut geeignet. Vieles automatisch und simpel gelöst. Aber wie so immer: neue Windowsversion und man muss ringsherum auch alles neu machen. Microsoft macht manchmal unklare "strategische Versuche" - die dann schnell wieder irgendwie verrecken. Home Server 2011 war nochmal ein liebloser Versuch der Produktpflege auf Basis Server 2008 dann kam das Aus.
Ich hatte noch den Versuch unternommen Windows Homeserver 2011 auf dem H340 zu betreiben, aber das war ziemlich elend.
Die Hardware sieht nach 6 Jahren eigentlich noch schick aus und läuft nach wie vor. Der kleine Würfel fasst 4 SATA Platten, eigentlich zu Schade für den Schrott. Also ein Versuch für neue Verwendung.

Es gab vor ca. 4 Jahren schon viele Projekte, den H340 mit einem Linux NAS System auszurüsten. Ich habe die alten Blogs und How To's hervorgekramt und versucht es nachzuvollziehen. Es gibt im Wesentlichen die Möglichkeiten:

  • fertige NAS Systeme mit Web basierter Administration (FreeNAS, openmediavault) oder 
  • einfach ein Linux System(Ubuntu, debian) nach persönlichen Geschmack und alles selber machen.

Tja: was will ich eigentlich? Einfach nur etwas Storage im Netz? Oder ein Linux System was "alles" kann?

Noch VGA im Haus?

Die erste Hürde ist noch eine Andere. MS hatte mit Windows Home Server die bescheuerte Idee, die Hardware müsse "headless" funktionieren, also keine Grafikkarte, kein Tastatur, keine Maus und kein CD Rom Laufwerk. Über einen Flash speicher konnte eine Art Bootloader gestartet werden, der das System über das Netzwerk von einem Windows PC installiert. Wie installiert man damit jetzt ein Linux System? Da das Ganze unpraktisch von Anfang war, haben die Hersteller der Hardware schon eine VGA Karte und alle nötigen Anschlüsse spendiert, aber an einem "debug connector" intern enden lassen. Dafür hatte ich mir schon vor Jahren ein Adapter Kabel für VGA geholt und mittels Jumper die Tastatur Erkennung aktiviert. Also war ich vorbereitet? Wie man es nimmt, ich hatte mittlerweile einen neuen Monitor und einen neuen Fernseher im Haus und damit waren alle analogen VGA Anschlüsse weggefallen! Also musste erstmal ein VGA HDMI Konverter her, ein bloßer Kabeladapter (HDMI - DVI - VGA) reicht nicht, da die Monitore kein analoges VGA Signal verarbeiten.

Entscheidung für ein System

Ubuntu Server 14.04 LTS als Iso Datei herunterladen, mit Universal-USB-Installer die ISO Datei auf einen bootfähigen USB Stick geschrieben und los geht es. Die Installation läuft ohne irgendwelche Ecken und Kanten. Das wäre also machbar.

Da ich viel mit dem Raspberry Pi und debian mache, wäre es ja schick vielleicht auch hier debian zu nutzen, damit kenne ich mich mittlerweile etwas aus. Denn Linux ist ja nicht gleich Linux, genau wie Windows nicht gleich Windows ist! Mit dem Unterschied, dass die "offene Gemeinde" es mittlerweile geschafft hat die Varianten ins uferlose zu treiben!
Debian netinst.iso lautet die Empfehlung auf der Homepage für effizientes download und es handelt sich um ein "isohybrid" Image. Das bedeutet, man braucht kein Image extra für den USB Stick, auch kein besonderes Tool, sondern schreibt diese Iso Datei einfach als Image auf den USB Stick. Die Empfehlung für Windows ist der win32diskimager.
Auch hier läuft die Installation tadellos und intuitiv. Nach dem Start und der lokalen Anmeldung merke ich aber: ziemlich zäh alles. Die Grafik scheint mir das System etwas zu überfordern. Ja wollte ich das überhaupt?

Von dem Projekt FreeNAS hatte ich schon vor Jahren gelesen und gehört, also einfach mal schauen und probieren. Das sah jetzt plötzlich etwas anders aus, relativ hohe Hardware Anforderung. Egal probieren. FreeNAS bietet auch ein Iso welches genau wie bei Debian mit win32diskimager auf den USB Stick geschrieben wird. FreeNAS basiert übrigens auf FreeBSD.
USB Stick booten (F12 am H340 drücken und Bootdevice auswählen) und siehe da: Bildschirm bleibt dunkel...

Das FreeNAS Projekt hat sich mal aufgespalten und es existiert ein Ableger NAS4Free, also probiere ich den noch. NAS4Free liefert neben Iso auch noch mehrere Image Dateien, welche nimmt man jetzt? LiveUSB klingt nach der Probepackung, download und dann wieder mit windiskmager auf den Stick geschrieben --> Bildschirm bleibt dunkel. Das Image war kein .img sondern ein .img.gz - muss man das erst entpacken? Also mit 7zip ausgepackt und das img auf den Stick geschrieben, booten --> Bildschirm bleibt dunkel. Aber irgendwas passiert im Dunkeln, da läuft ein System!? Es piept im H340 und wenn man den Ausschalter drückt fährt das System offenbar herunter! Ist was übers Netzwerk erreichbar? Fehlanzeige!

Ok irgendetwas ist anders, Treiber Problem? Ja in dem Artikel von Jerret war beschrieben, dass die Netzwerkkarte in FreeBSD nicht direkt unterstützt wird. Ok also versuche ich das Ganze erstmal unter VirtualBox, aha so sieht dieses LiveSystem aus! Feste Netzwerkadresse, nach der Umstellung auf DHCP erreiche ich das Live System über den Browser. Na gut, was ist mit meiner Hardware? ist FreeBSD das Problem? Also kurz mal FreeBSD "ohne alles". Hier gibt es ein img.xz. Entpacken, schreiben und starten --> Bildschirm bleibt dunkel.

Gut dann openmediavault, das basiert auf debian, deswegen gibt es auch wieder ein Iso welches man einfach auf den Stick schreiben kann. Installation läuft problemlos, nach kurzer Zeit kann ich die NAS per Browser erreichen und etwas rumspielen. Ist etwas tricky sich in den Menus zurecht zu finden und eine vorhanden Platte als Netzfreigabe einzurichten, aber es gelingt. Ok das sieht ganz gut aus, dass könnte es ja werden. Vor allem, Shutdown, LED aus und Wake On Lan funktioniert einwandfrei! Das funktionierte unter Windows Home Server auch, aber unter Home Server 2011 konnte ich nicht mehr herunterfahren machen sondern nur noch "Energie sparen" also Hibernate auf Platte. Die blaue Power LED blieb dabei am Blinken.

VGA oder VGA?

So und nun? Einfach so lassen? Mich interessiert schon, warum FreeBSD einen schwarzen Bildschirm liefert? Ist die VGA Karte vom debug System keine vollwertige? Was könnte da sein? Nutzt FreeBSD eine andere Ausgabe - etwa serielle Schnittstelle? Es war in den damaligen Artikel immer die Rede davon, man solle eine VGA Karte in den H340 stecken. Er hat einen Low Profile x4 PCI-Express Slot der rechts nicht offen ist. Die preiswerten PCI Express Karten haben aber alle einen x16 (langen) Connector. Die wenigen x1 PCI-Express Karten sind kaum verfügbar und teuer! Eine Neuanschaffung lohnt für diesen Versuch einfach gar nicht.
Es gibt aber einen interessanten Adapter für ca. 11€ bestehend aus einem x1 PCI-Express Stecker mit USB 3 Buchse (kein USB 3 Anschluss nur Kabel Adapter!) USB 3 Kabel, x16 PCI-Express Slot und einem Sata Strom Anschluss. Mit dieser etwas wüsten Konstruktion kann man tatsächlich test weise eine 16x PCI-Express Karte in einem 1x Slot betreiben.

Siehe da, jetzt macht auch FreeBSD alle Ausgaben sichtbar auf dem Schirm und ich kann die FreeNAS Systeme testen. Dank Live System geht das relativ einfach und schnell. Ich mache auch ein Probeinstallation auf eine USB Stick, das Live System kann keine Konfiguration speichern, nach einem Neustart ist alles verloren. Was relativ schnell auffällt, kein WOL auswählbar, auch nicht Hibernate. Das wird wohl das Kriterium sein.

Mir fällt dann bei weiteren Versuchen auf, dass auch bei den debian Systemen plötzlich viel mehr Ausgaben auf dem Bildschirm landen als mit der eingebauten VGA Karte. Scheinbar funktionieren da ein paar vorausgesetzte Videomodi nicht.

Suche Antworten

In den ursprünglichen Artikel stand auch immer, dass man den integrierten Flash speicher nutzen kann. Obwohl man sich damit eventuell den Rückweg zum Home Server verflasht. Macht das Sinn? Kann man einen USB Stick nutzen? Was ist mit der Geschwindigkeit und Zuverlässigkeit?
FreeNAS baut eine RAM Disk um den USB Stick zu schonen. Openmediavault sagt explizit nein zum normalen USB Stick, wenn dann einen mit SLC-Speicherchips, besser gleich eine SSD.

Einfach eine kleine SATA Platte als System und ich habe 3 Slots frei und könnte sogar RAID 5 machen.
Man könnte den PCI-Express Slot ja noch mit SATA + USB 3 erweitern, so eine Karte liegt auch noch in der Kiste.

H340 User versus debug Mode

Die Steuerung erfolgt mit einem auf dem Board befindlichen Jumper Nr. 3.

User Mode (JP 3 offen)

  • Tastaturerkennung im Bios deaktiviert
  • VGA Ausgabe im Bios teilweise deaktiviert
  • VGA und Tastatur funktionieren allerdings im gestarteten Betriebssystem
  • mit PCI-e VGA Karte sieht man alle Ausgaben Bios und POST, Menü vom Grub loader aber debian startet nicht.


Debug Mode (JP 3 geschlossen)

  • Tastaturerkennung im BIOS aktiviert, Bios und Bootmenü erreichbar.
  • VGA onboard Ausgabe im BIOS aktiviert
  • mit PCI-e VGA Karte sieht man alle Ausgaben Bios und POST, Menü vom Grub loader und debian startet. Allerdings erscheint auf keinem VGA Ausgang die Konsole von debian.

Bootvorgang 

Meine Beobachtungen zum Bootvorgang, diese sind nicht zu 100% reproduzierbar!
Wichtig während des Bootvorganges ist die Beobachtung des "i" Symbols.
Auf der Rückseite befindet sich ein kleiner versenkter Reset Taster den man mit einem spitzen Gegenstand (Draht oder Büroklammer) betätigen kann.

Manchmal blinkt beim einschalten kurz die blaue LED über USB Front und i rot.
Wenn sofort nach dem Einschalten das Netzwerk auf der Vorderseite Aktivität anzeigt (und auf der Rückseite auch wenn das Gerät aus ist) wurde der H340 vom Betriebssystem beim Shutdown in einen WOL fähigen Zustand versetzt.

Nach Power on Knopf drücken passiert folgendes:

Ohne bootfähiges System (keine HDD kein USB)
  • USB vorn blinkt kurz blau
  • nach 11 sec i blinkt blau
  • nach ca 17 sec Netzwerk wird aktiviert und blinkt vorn blau
  • nach 1:15 min leuchtet i und die  HDD LED 1 +2  statisch rot, das Netzwerk wird deaktiviert
  • es erfolgt zu keiner Zeit eine Ausgabe eine Start oder BIOS Meldung
  • es wird nicht vom internen Flash gebootet


Steckt  hinten oder vorn ein bootfähiger USB Stick und keine HDD wird nach ca. 16 sec von dem gebootet. Die i LED blinkt weiter blau.
Steckt eine HDD (und wahlweise ein bootfähiger USB Stick) wird nach ca. 20 sec von dieser gebootet und es erfolgt beim einschalten meistens eine kurze BIOS und Startmeldung.

Um den Start vom USB Stick zu erzwingen, muss man unmittelbar nachdem i blau blinkt den Reset Taster kurz drücken. Steckt kein USB Stick wird jetzt vom internen Flash gebootet. Dort befindet sich ein Windows PE System welches den Windows Home Server Recovery Vorgang startet.

Einfach noch ein paar Links und Zahlen

openmediavault vom USB Stick
https://wiki.debian.org/InstallOpenMediaVaultOnDebian

Startzeiten
- bis zum Bootmenü des H340 --> 26 sec
- NAS4Free USB Stick 2.0 für den Start total -->  2 min 37 sec
- openmediavault auf USB 2.0 Festplatte für den Start total --> 1 min 32 sec
- debian SATA HDD ab Bootmenü bis zum login --> 1 min
- openmediavault auf SATA HDD ab Bootmenü bis zum login --> 1 min 8 sec
- openmediavault auf SDD für den Start total --> 40 sec

Zugriffsgeschwindigkeit
Eine Samsung HD103SJ im H340 am internen SATA, ohne aktivierten Schreibcache, freigegeben über SMB/CIFS und als Laufwerk Z: unter Windows 8.1 eingebunden bringt mit CrystalDiskMark folgende Werte:

           Sequential Read :    74.478 MB/s
          Sequential Write :    91.900 MB/s
         Random Read 512KB :    75.524 MB/s
        Random Write 512KB :    88.363 MB/s
    Random Read 4KB (QD=1) :    12.281 MB/s [  2998.3 IOPS]
   Random Write 4KB (QD=1) :     9.646 MB/s [  2354.9 IOPS]
   Random Read 4KB (QD=32) :    12.319 MB/s [  3007.7 IOPS]
  Random Write 4KB (QD=32) :     9.960 MB/s [  2431.6 IOPS]

Sie ist damit in fast allen Disziplinen wesentlich schneller als eine unter Windows 8.1 lokale  ST31000528AS

           Sequential Read :    77.426 MB/s
          Sequential Write :    74.452 MB/s
         Random Read 512KB :    25.344 MB/s
        Random Write 512KB :    43.597 MB/s
    Random Read 4KB (QD=1) :     0.336 MB/s [    81.9 IOPS]
   Random Write 4KB (QD=1) :     0.685 MB/s [   167.2 IOPS]
   Random Read 4KB (QD=32) :     0.879 MB/s [   214.6 IOPS]
  Random Write 4KB (QD=32) :     0.679 MB/s [   165.7 IOPS]

Der Praxistest mit einer Windows 10 Maschine unter VirtualBox belegt das eindrucksvoll.