NDAS mit Ruhezustand nutzen

15. Juli 2012, 18:53

NDAS Suspend Hibernate RuhezustandUpdate 05 August 2012

Hier erkläre ich wie man den Ruhezustand oder den Standby nutzt ohne dass es bei einer angeschlossenen NDAS Netzwerkfestplatte zu Inkonsitenz  und Verlust der Daten kommt.

Die NDAS Software von Ximeta (z.B. für die NetDisk von IOCell) kann nicht mit Ruhezustand / standby  umgehen, wenn mehr als ein Gerät das Netzwerk nutzt. Deshalb blockiert der NDAS Manager diese Windows Funktionen standardmäßig. Man kann diese Blockade unter den Optionen ausschalten - dann kommt es jedoch zu Datenverlust, wenn das NDAS auch von anderen Geräten aus genutzt wird. Angenommen ein Gerät mountet das NDAS und fällt dann in den Ruhezustand. Nun startet ein anderes Gerät und mountet ebenfalls das NDAS und verändert die Daten darauf. Sobald nun das erste Gerät wieder aus dem Schlaf erwacht, findet es eine Festplatte vor deren Zustand nicht mehr mit dem letzten Arbeitsstand übereinstimmt. Neu dazugekommene Daten werden überschrieben da die Software die Veränderung nicht erkennt.

Die Lösung

Um den Ruhezustand / Standby dennoch zu nutzen bleibt nur eine Möglichkeit. Man muss das NDAS vor dem Wechsel in einen anderen Energiemodus dismounten und bei der Reaktivierung wieder mounten. Dies kann man mit einfachen Batchdateien automatisch  lösen, so dass das NDAS selbstständig dismountet wird.

Seit Windows Vista gibt es für Programme nur noch Begrenzt Möglichkeiten diese sogenannten OS Events zu blockieren, um vor dem Ruhezustand noch eine Aufgabe zu erledigen:

In Windows Vista, applications can no longer block in-progress sleep transitions. The PBT_APMQUERYSUSPEND event is not delivered to applications in Vista and hence applications cannot deny/abort the suspend operation. This is as per Microsoft's recommendation that applications should not block in-progress sleep transitions on any version of Windows.

http://www.codeproject.com/Articles/30089/Handling-OS-Events-in-Windows-XP-and-Vista

Batchdatei zum Dismounten erstellen und dem Shutdown Tool übergeben

Deshalb muss man statt dem Windows eigenem Programm ein externes Programm installieren, das den Ruhezustand / Standby selbst auslöst und vorher noch ein Script öffnet, das dann das NDAS dismountet.

Ich habe hierfür 2 Freewares gefunden. Shutdown4U und AMP WinOff. Shutdown4U fällt raus, da es nur nach bestimmten Zeitplänen funktioniert. Win Off hingegen leitet den Ruhezustand genau wie Windows nach x Minuten ab der letzten Usereingabe ein (sleep idle timeout).

Nun muss AMP WinOff noch ein Script übergeben werden, das vor den OS Events ausgeführt wird und welches das NDAS dismountet. 

Dazu öffnet man eine Textdatei mit einem  Editor und schreibt folgenden Code:

cd c:\program files\ndas\system 
ndascmd.exe dismount /force /device 3
timeout /T 10

Den Pfad muss eventuell je nach OS noch angepasst werden. Dies wäre der richtige für Windows 7. Falls 3 nicht der "Device Number" entspricht erkläre ich im nächsten Punkt was zu tun ist.  

Die Datei im Editor speichert man jetzt unter dem Namen dismountNDAS.bat und kopiert die Datei in das Verzeichnis C:\Batch

Laufwerksnummer auslesen

Bei /device 3 kann auch eine andere Zahl rein gehören. Das kommt drauf an welches Laufwerk man auswählt. Man kann auch die "Logical Device Number" angeben. Um die Laufwerke aufzulisten gibt man folgendes in die CMD Konsole (Start → Suche / Ausführen: cmd.exe) ein:

cd \Program Files\NDAS\System
ndascmd list devices

Und man erhält die Angaben:

NDAS command prompt list devices CMD

Datei in WinOff angeben

Nun  übergibt man die Datei WinOff. Diese Option findet man unter der 2. Registerkarte bei "Execute a program before the Shutdown".

Bereits jetzt ist das NDAS vor Datenverlust gesichert.  Natürlich muss man unbedingt den Windows Ruhezustand / Standby (in den Energieoptionen "Energiesparmodus" genannt) ausschalten - also auf  "Energiesparmodus nach: Niemals" stellen.

Batchdatei zum Mounten und eine Aufgabe mit Windows Aufgabenplaner erstellen

mountNDAS.bat erstellen

Natürlich wäre es schön, wenn sich dach deim Aufwachen aus dem Energiesparmodus das NDAS auch wieder selbstständig mounten würde. Dazu schreibt man noch eine Batch Datei mit folgendem Inhalt:

timeout /T 10
cd c:\program files\ndas\system
ndascmd.exe mount /force /device 3 rw

Wird dann als mountNDAS.bat unter C:\Batch gespeichert. Das Timeout gibt hinter dem /T die Sekunden an, in der das Script angehalten wird. Das ist nötig, da die NDAS Hardware nicht sofort zur Verfügung steht. Ansonsten bekommt man eine Fehlermeldung.

In der 3. Zeile gibt man wieder die Laufwerksnummer an und wie gemountet werden soll. rw = read & write, r = only read

Aufgabe im Aufgabenplaner erstellen

Um das NDAS nun beim Erwachen aus dem Ruhezustand wieder zu mounten muss man eine Aufgabe planen. Dazu gibt man  unter Start → Suche / Ausführen  →  taskschd.msc    ein. Dann rechts auf "Aufgabe erstellen".

Als erstes wird ein Name und eine Beschreibung vergeben.

Unter Trigger wählt man dann folgendes aus:

  1. "Bei einem Ereignis"
  2. Protokoll: System
  3. Quelle: Power-Troubleshooter
  4. Ereignis ID: 1

Das ist der Zeitpunkt der Reaktivierung aus dem Energiesparmodus. Bei Aktion gibt man nun entweder die Batch Datei an (C:\Batch\dismountNDAS.bat) oder aber eine weiteres Script das man erstellen kann.

Optional: Ein VB Script das die mountNDAS.bat minimiert startet

Dieses .vbs Script stellt sicher, dass die Batch Datei minimiert ausgeführt wird. Dann stört das DOS Fenster nicht nach der Reaktivierung. Das ist aber optional und nicht  notwendig.

Dazu eine Datei mit folgendem Inhalt ..

Set WshShell = WScript.CreateObject("WScript.Shell")
Prog = "C:\Batch\mountNDAS.bat"
WshShell.Run """" & Prog & """",7

 als startMin.vbs unter C:\Batch speichern und Pfad zu dieser Datei in der Aufgabenplanung angeben statt der mountNDAS.bat.

Fertig

Nun kann der Ruhezustand reuelos benutzt werden ohne dass man sich um irgendwas Gedanken machen muss.

Weiterführende Informationen: Die Energiesparmodi

Verwirrend sind die Begrifflichkeiten:

Ruhezustand

Oder auch: Hibernate Mode bzw. Hibernation (Winterschlaf) / Suspend to Disk (Auslagern auf Festplatte) / ACPI Modus S4

Der komplette Arbeitsstand wird auf die Festplatte gespeichert. Bei einem Stromausfall sind die Daten gesichert.

Dauert teils fast so lange wie ein Runter- und Hochfahren.

Standby

Oder auch: Sleep Mode / Bereitschaftsdienst / Suspend to RAM (Auslagern auf RAM) / ACPI Modus S3

Der komplette Arbeitsstand wird im RAM gesepeichert. Bei einem Stromausfall leert sich der RAM Speicher und die Daten sind verloren.

Dauert nur wenige Sekunden.

Energie sparen.

Energie sparen kann ein Standby sein oder der hybride Standby, den es seit Vista / 7gibt. Außerdem gibt es noch einige zusätzliche Optionen die man dem "Energie sparen" zuweisen kann.

Hybrider Standbymodus

Seit Vista / 7 gibt es den hybriden Standbymodus. Dabei wird der Standby (S3) mit dem Ruhezustand (S4) kombiniert.

Der komplette Arbeitsstand wird auf RAM und Festplatte gespeichert. So sind die Daten immer vor Stromausfall geschützt und die Reaktivierung geht so schnell wie im Standbymodus.

Auf Laptops ist der hybride Standbymodus nicht voreingestellt. Auf einer Desktopinstallation schon. Bei Laptops kann es ja nur zum Stromausfall kommen, wenn der Akku verbraucht ist. Wem sein Akku öfter mal geleert wird kann den hybriden Standymodus natürlich aktivieren.

→ Start

Ausführen / Suchen

→ powercfg.cpl 

→ Energiesparplaneinstellungen ändern 

→ Erweiterte Energieeinstellungen ändern 

→ Energie sparen 

→ Hybrider Standymodus zulassen 

→ Ein

Kommentare

 
Veröffentlicht 15. Juli 2012, 18:53