EcoGreen Festplatten wie die von Samsung scheinen sich durch zwei Dinge auszuzeichnen: 1. "SIE" geht viel zu häufig schlafen, also in den SpinDown / Standby wenn man mal gefühlte 5 Minuten nichts tut. Das staendige SpinDown / SpinUp duerfte der Mechanik und der Lebenserwartung der Festplatte eher kontraer gegenueberstehen. 2. "SIE" dreht mit 5400 rpm. Akzeptable ist Punkt 2, Punkt 1 hingegen nicht. Leider scheint aber sonst keiner das Problem zu haben (bei der Recherche nur User gefunden die ihre Platten kontrolliert in den Spindown / Standby schicken wollen), also musste eine Loesung her:
Der erste Code der schonend nur per random fseek zufaellig auf der Platte lesen sollte, funktionierte leider nicht, daher wird nun in ein File geschrieben, wenn auch nur 4 Byte.
Im folgenden Code zuvor anpassen: den Pfad zum Wake_File und in welchem Turnus in die Datei geschrieben werden soll, in Sekunden. Nicht zu klein waehlen, da das der Platte dann auch nicht gut tut, nicht zu gross waehlen, da man sonst ueber den SpinDown hinaus schiesst. Der Code kann zB mit mingw compiliert werden:
g++ AntiSpindown.c -mwindows -O2 -o AntiSpindown.exe
CODE:
#include <stdio.h>
#include <windows.h>
#define WAKE_FILE L"H:\_tmp"
#define SLEEP_TICKS 180000
int main(int argc, char**argv)
{
HANDLE fp = CreateFileW(WAKE_FILE, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM | FILE_FLAG_NO_BUFFERING | FILE_FLAG_WRITE_THROUGH, NULL);
if(fp == INVALID_HANDLE_VALUE)
{
printf("Unable to open/create wake-file\n");
return(1);
}
while(1)
{
char buffer[4];
SetFilePointer(fp, 0, 0, FILE_BEGIN);
WriteFile(fp, buffer, sizeof(buffer), 0, NULL);
Sleep(SLEEP_TICKS);
}
return(0);
}
Wichtig ist es AntiSpindown.exe erst dann zu starten wenn zuvor die Platte angeschlossen und angeschaltet wurde, da er ja sonst das WakeUpFile nicht schreiben kann. Das Tool laeuft im Hintergrund und kann zB ueber den TaskManager in der Prozessliste gefunden werden. Wer mag kann das Tool dahingehend verbessern dass es zb jede Minute prueft ob die EcoGreen Festplatte angeschlossen wurde und wenn ja eben selbststaendig den Laufwerksbuchstaben ermittelt und dorthin schreibt. Und vielleicht gibts ja doch eine Loesung die nur lesend zugreift.
Update Leider war das ein Schnellschuss. Die Platte schlaeft auch weiterhin ca. alle 5 Minuten ein. Es gibt eine Vorversion des Codes oben, dass da ggf. besser hilft, aber das muss erst noch getestet werden. Eine Alternative waere ein Tool wie zB Diskeeper (Home Version kostet um die 39 Dollar), welches im Hintergrund die Platten defragmentiert und damit auch fuer genug Geschaeft sorgt
Hier nun die Vorversion des Codes:
CODE:
#include <stdio.h>
#include <windows.h>
#define WAKE_FILE "H:\_tmp"
int main(int argc, char**argv)
{
HANDLE fp = INVALID_HANDLE_VALUE;
unsigned int roundAbout = 0;
while(1)
{
if(fp == INVALID_HANDLE_VALUE)
{
fp = CreateFile(WAKE_FILE, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM | FILE_FLAG_NO_BUFFERING | FILE_FLAG_WRITE_THROUGH, NULL);
if(fp == INVALID_HANDLE_VALUE)
{
printf("Unable to open Wakefile\n");
return(1);
}
}
char buffer[1];
SetFilePointer(fp, 0, 0, FILE_BEGIN);
WriteFile(fp, buffer, 1, 0, NULL);
/<strong> // oder, falls 1 Byte nicht ausreicht:
char buffer[4];
SetFilePointer(fp, 0, 0, FILE_BEGIN);
WriteFile(fp, buffer, sizeof(buffer), 0, NULL);
</strong>/
Sleep(60000);
if(roundAbout++ > 10)
{
CloseHandle(fp);
DeleteFile(WAKE_FILE);
fp = INVALID_HANDLE_VALUE;
roundAbout = 0;
}
}
return(0);
}
Für Backups bzw. Videobearbeitung oder andere große Datenmassen mache ich sie natürlich extra an, aber normalerweise ist sie aus.
Warum läuft sie denn bei dir ständig? Ist doch auch nicht sehr "eco" oder?
Zum Spindown - reicht unter XP nicht bei den Energieeinstellungen "Festplatten nie ausschalten" aus?
Bei mir bleibt die Platte so immer an.
Vielleicht habe ich eine Platte mit einer anderen Firmware? Ich habe die 3.5" Samsung F2 EcoGreen 500GB HD502HI ...