Windows beschleunigen mit FBWF




Windows auf dem Aspire One

Windows beschleunigen mit FBWF

Beitragvon remoh » Mo 21. Jul 2008, 22:10

Hallo,

ich nutze nun schon seit einigen Tagen FBWF (File Based Write Filter) auf meinem Aspire One. Da es Windows GANZ deutlich beschleunigt wird es auch installiert bleiben.
Da es auch für andere Interessant sein könnte hier mal eine Anleitung und Beschreibung des tools.

Was ist FBWF?
File Based Write Filter ist ein Treiber von Microsoft der alle Schreibvorgänge auf der Festplatte abfängt und in einem Festgelegtem Teil des Arbeitsspeichers puffert.
Da keine Schreibvorgänge auf der Festplatte stattfinden hat das für die SSD im Aspire One einige Vorteile. Zum einen bremst kein Schreibzugriff mehr Windows und zum anderen
wird die SSD nicht durch Schreibvorgänge belastet von denen sie ja nicht unendlich viele durchführen kann.

Natürlich hat das ganze nicht nur Vorteile, hier mal eine Gegenüberstellung
Vorteile:
Schreibvorgänge rasend schnell da im RAM
Keine Belastung der SSD durch Schreibvorgänge
Windows läuft insgesamt deutlich flüssiger, die sonst schon mal vorkommenden kurzen Hänger gibt es nicht mehr.
Der Treiber kann an und abgeschaltet werden - Normalbetrieb geht also auch nach Installation noch immer (reboot nötig)
Es können Ausnahmeverzeichnisse angegeben werden, dort wird direkt geschrieben.
Windows bootet (bei mir) in 40 sek statt 1 min.

Nachteile:
Im Normalfall gehen alle geänderten Daten nach einem reboot verloren - das kann jedoch weitgehend umgangen werden. Dazu später mehr.
Der Treiber braucht RAM - mit den vorhandenen 512 MB kann man da nicht viel anfangen. Speichererweiterung ist also Vorraussetzung
Von den im Speicher aufgezeichneten Änderungen können nur Dateiänderungen und neu hinzugefügte Dateien auf die Festplatte geschrieben werden.
Datei/Verzeichnislöschungen und neue Verzeichnisse können nicht auf Festplatte geschrieben werden.
Für die Installation von Software/patches etc sollte man den Filter abschalten.

Zuerst dachte ich bei den Nachteilen - nicht brauchbar. Dann habe ich aber ein Script geschrieben das alle machbaren Änderungen bei Shutdown auf die Festplatte schreibt und das funktioniert wunderbar bei Normalnutzung. Wenn ich Software deinstalliere oder neue installiere schalte ich das tool einfach ab. Den Geschwindigkeitsgewinn will ich nicht mehr missen.

Was muss ich tun um das tool zu nutzen?

Die nötigen Dateien für das tool sind im "XPe feature pack 2007 trial" enthalten.
Es kann hier geladen werden:

http://download.microsoft.com/download/ ... ck2007.iso

Die Datei kann man als Image auf CD brennen, einfacher ist es jedoch man lädt sich 7zip

http://www.7-zip.org/

und entpackt die Datei. Darin enthalten ist die Datei "XPEFP2007.exe". Auch die mit 7zip entpacken.
Dann finden wir im Unterordner "rep" die Dateien. Wir brauchen nur folgende Dateien:

fbwf.sys
fbwfdll.dll
fbwflib.dll
fbwfmgr.exe

fbwf.sys muss nach \WINDOWS\system32\drivers kopiert werden, die anderen nach \WINDOWS\system32\

Jetzt haben wir alle Dateien im System. Nun müssen wir noch den Treiber installieren.
Dazu bitte den folgenden Code in einen Text Editor kopieren und unter fbwf.reg abspeichern:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\FBWF]
"Start"=dword:00000000
"Type"=dword:00000002
"ErrorControl"=dword:00000001
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
52,00,49,00,56,00,45,00,52,00,53,00,5c,00,66,00,62,00,77,00,66,00,2e,00,73,\
00,79,00,73,00,00,00
"Group"="FSFilter System Recovery"
"DisplayName"="File-Based Write Filter"
"Description"="File-Based Write Filter driver"
"DependOnService"=hex(7):46,00,6c,00,74,00,4d,00,67,00,72,00,00,00,00,00
"DebugFlags"=dword:00000000
"EnabledOnAllSkus"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\FBWF\FBA]
"EnablePostFBA"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\FBWF\Instances]
"DefaultInstance"="Fbwf Instance"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\FBWF\Instances\Fbwf Instance]
"Flags"=dword:00000000
"Altitude"="226000"




Nachdem man die Datei abgespeichert hat einfach doppelklicken, daraufhin werden die Einträge in der Registry verewigt.
Jetzt rebooten - keine Angst, der Treiber ist dann zwar installiert aber noch nicht aktiv, das kann erst nach reboot eingestellt werden.


Nun eine Kommandozeile öffen:

Der Treiber hat eine tool zum konfigurieren dabei, hier die wichtigsten optionen

Einschalten:
fbwfmgr /enable
Abschalten
fbwfmgr /disable

Das ein/abschalten wird erst nach einem reboot aktiv.


Um das ganze zu testen muss mindestens folgendes eingestellt werden:

fbwfmgr /enable
fbwfmgr /addvolume c:
(oder welches Laufwerk auch immer geschützt werden soll)
fbwfmgr /setthreshold 256
(Grösse des Puffers im MB)

Optional einen Ausnahmeordner definieren - hier wird sofort geschrieben (Verzeichnisse können trotzdem nicht angelegt werden, das ist eine generelle Beschränkung)
fbwfmgr /addexclusion c: "\Admin" ich habe den Ordner vorher angelegt, dort speichere ich das gleich folgende Script und logs

Die grösse des Puffers ist wichtig - da alle Schreibvorgänge gepuffert werden ist logischerweise der angezeigt freie Platz auf der Platte max genauso groß wie der Puffer (natürlich nur wenn FBWF auf enable gesetzt ist). D.h. auch wenn die Festpatte noch 5 GB freien Platz hat können bei aktivem FBWF nur soviele Daten geschrieben werden wie Puffer reserviert wurde.
Das hört sich erstmal blöd an, im normalen Betrieb reichen bei mir die 256 MB aber locker.

Jetzt noch ein reboot und FBWF ist aktiv :)

Nun kommen wir zum interessanten Teil. Wenn FBWF aktiv ist möchte man ja nicht alle Änderungen verlieren. Dazu habe ich ein VBScript geschrieben das genau das verhindern soll.
Ich habe es als Shutdownscript eingetragen, so werden die Änderungen bei jedem Shutdown auf die Festplatte geschrieben.
Hier das Script: (einfach wieder in einen Text Editor kopieren und als z.B. fbwf.vbs abspeichern)



'Settings:
'The Volume that you have set to be protected by FBWF
volume = "c:"
'The file where the script store errors on commits
errorlog = "c:\Admin\FBWF\fbwf_error.log"
' If this file exists the script stops and no commits are made
nocommitfile = "c:\Admin\FBWF\nocommiton.txt"
'If committing a file fails it will be copied to this path (so it does not get lost), includung directory structure. If the path does not exists nothing will be saved. It must be on a volume that is no fbwf protected
backuppath = "d:\System\FBWF_STORE"

Set checkexist = CreateObject("Scripting.FileSystemObject")
If checkexist.FolderExists(backuppath) Then
backuppathexists = 1
Else
backuppathexists = 0
End If
If checkexist.FileExists(nocommitfile) Then
donotcommit = 1
Else
donotcommit = 0
End If
checkexist = ""

Call DetectifActive()

Function DetectifActive ()
Set WshShellDetect = WScript.CreateObject("WScript.Shell")
Set WshExecDetect = WshShellDetect.Exec("fbwfmgr /displayconfig")
isactive = LCase(WshExecDetect.StdOut.ReadAll)
If InStr(isactive, "filter state: enabled.") <> 0 Then
If donotcommit = 0 Then
Call StartCommit()
End If
End If
End Function

Function StartCommit ()
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("fbwfmgr /overlaydetail") 'get the contents of the overlay
fbwfoverlay = LCase(WshExec.StdOut.ReadAll)
folders = Split(fbwfoverlay,vbNewLine)
For each folder in folders
result = 0
dirstartpos = 0
dirlength = 0
grabpos = 0
commitfile = ""
If InStr(folder, "name \") <> 0 then
dirstartpos = InStr(folder, "\") ' returns the position of the directory start
dirlenght = Len(folder) ' returns the lenght of the string
grabpos = dirlenght - dirstartpos + 1
commitfile = Right(folder,grabpos)
Call commit(commitfile)
End If
Next
wscript.sleep(100)
End Function

Function commit (file)
helpchar = """"
Set WshShellCommit = WScript.CreateObject("WScript.Shell")
Set WshExecCommit = WshShellCommit.Exec("fbwfmgr /commit " & volume & " " & helpchar & file & helpchar)
commitoutput = LCase(WshExecCommit.StdOut.ReadAll)
commitoutputnew = Replace(commitoutput, vbNewLine, " ")
If InStr(commitoutput, "committed") <> 0 Then
'wscript.echo file
Else
Set ErrorOutput = WScript.CreateObject("WScript.Shell")
Set ErrorOutputOf = ErrorOutput.Exec("cmd /c echo " & """" & Year(Date) & "-" & Month(Date) & "-" & Day(Date) & " " & Hour(Now) & ":" & Minute(Now) & ":" & Second(Now) & " - " & commitoutputnew & volume & file & """" & " >> " & errorlog)
errortmp = LCase(ErrorOutputOf.StdOut.ReadAll)
Set ErrorWrite = WScript.CreateObject("WScript.Shell")
filedir = Left(file,InStrRev(file, "\"))
If backuppathexists = 1 Then
Set ErrorWriteOf = ErrorWrite.Exec("cmd /c if not exist " & """" & backuppath & "\" & Left(volume,1) & filedir & """" & " mkdir " & """" & backuppath & "\" & Left(volume,1) & filedir & """")
errortmp = LCase(ErrorWriteOf.StdOut.ReadAll)
Set ErrorWriteOf = ErrorWrite.Exec("cmd /c copy " & """" & volume & file & """" & " " & """" & backuppath & "\" & Left(volume,1) & file & """" & " /Y")
errortmp = LCase(ErrorWriteOf.StdOut.ReadAll)
End If
End If
End Function





Bitte die Einstellungen unter Settings anpassen.


Ein Shutdown Script kann man über folgenden Weg eintragen:
Start -> ausführen: mmc
Datei -> Snap-In hinzufügen/entfernen
Hinzufügen: Gruppenrichtlinie

Dort unter
Richtlinien für lokaler Computer -> Computerkonfiguration -> Windows-Einstellungen -> Skripts
einfach das fbwf.vbs eintragen

Nutzt man als zusätzlichen Speicher eine SD Card läuft das ganze optimal - das System sehr schnell und Daten speichert man auf SD Karte. Danke an Acer für den 2. "permanenten" Leser.
Man kann das Script auch immer mal zwischendurch von hand aufrufen.
remoh
Administrator
 
Beiträge: 125
Registriert: Mi 9. Jul 2008, 09:04

von Anzeige » Mo 21. Jul 2008, 22:10

Anzeige
 

Re: Windows beschleunigen mit FBWF

Beitragvon sixpeck » Mo 21. Jul 2008, 22:25

whoa wasn post. Werd ich auf jeden Fall demnächst mal ausprobieren.
Stell das doch auch ruhig mal ins Wiki.
Aspire One 110L - Pearl White - 1,5 GB Ram - 8GB SDHC - Windows XP Pro SP3 - FlashPoint
sixpeck
 
Beiträge: 22
Registriert: Di 15. Jul 2008, 10:57

Re: Windows beschleunigen mit FBWF

Beitragvon gerd » Di 22. Jul 2008, 19:58

Mal ein nettes Video mit und ohne FBWF
http://www.humyo.com/F/4781349-164852823
Gruß
Gerd
AAO A110L - 1,5GB RAM - Intel Atom 1,6Ghz - CF 8GB UDMA300 - 16GB Transcend SDHC - WLAN GN-W101GT -2400 mAh - 8,9" (Sapphire Blue)
gerd
 
Beiträge: 138
Registriert: Do 10. Jul 2008, 22:48

Re: Windows beschleunigen mit FBWF

Beitragvon drakho » Di 22. Jul 2008, 20:03

Wow, guter Geschwindigkeitsschub! Danke für die Mühe.

Allerdings läuft Daemon Tools jetzt nicht mehr, der Virtual SCSI-Treiber wird nicht gefunden.
Vielleicht ne Idee woran das liegen könnte, bzw. wie man das beheben kann?
drakho
 
Beiträge: 6
Registriert: Mo 14. Jul 2008, 09:52

Re: Windows beschleunigen mit FBWF

Beitragvon remoh » Di 22. Jul 2008, 21:02

Danke für das Video, das zeigt den Unterschied ganz gut.
Ins Wiki stelle ich das wenn noch ein paar es ausprobiert haben - dann weiß man schon vorher was damit nicht geht (anscheindend Daemon tools).
Vielleicht braucht Daemon tools einen direkten Zugriff auf die Disk, das wird ja von FBWF abgefangen.
remoh
Administrator
 
Beiträge: 125
Registriert: Mi 9. Jul 2008, 09:04

Re: Windows beschleunigen mit FBWF

Beitragvon Token » Sa 26. Jul 2008, 12:42

... also grundsaechlich funktioniert das ganze relativ gut.

Ein Shutdown Script kann man über folgenden Weg eintragen:
Start -> ausführen: mmc
Datei -> Snap-In hinzufügen/entfernen
Hinzufügen: Gruppenrichtlinie
Dort unter
Richtlinien für lokaler Computer -> Computerkonfiguration -> Windows-Einstellungen -> Skripts
einfach das fbwf.vbs eintragen

... also ich scheitere schon an dem hinzufuegen der gruppenrichtlinie - bei mir im SP3 heisst das anders ?
(gruppenrichtlinienobjekt-editor ... oder bin ich da schon zu weit ?)
... waere nett, wenn das der ersteller nochmal verifizieren koennte ?! DANKE.

MfG Token
Token
 
Beiträge: 8
Registriert: Do 24. Jul 2008, 12:56

Re: Windows beschleunigen mit FBWF

Beitragvon remoh » So 27. Jul 2008, 17:36

Also die tools zum Eintragen des Shutdown Scripts gibts leider nur in XP Pro, nicht in der Home Version.
Wie man es in der Home Version einträgt weiß ich leider nicht.
remoh
Administrator
 
Beiträge: 125
Registriert: Mi 9. Jul 2008, 09:04

Re: Windows beschleunigen mit FBWF

Beitragvon desperator » So 27. Jul 2008, 20:33

Der Geschwindigkeitsvergleich ist mit Fat32, D2d abgeschaltet usw., also mit nem ansonsten optimierten install? Hut ab!
Für die Normaluser unter uns müsste jemand der das draufhat daraus ein installerpaket basteln, wäre doch prima.
desperator
 
Beiträge: 5
Registriert: So 27. Jul 2008, 15:22

Re: Windows beschleunigen mit FBWF

Beitragvon Token » Mo 28. Jul 2008, 17:28

@remoh:

ich sprach von der XP-pro Version !
machst du zu dem thema bitte nochmal eine step2step anleitung ?

cu token
Token
 
Beiträge: 8
Registriert: Do 24. Jul 2008, 12:56

Re: Windows beschleunigen mit FBWF

Beitragvon remoh » Mo 28. Jul 2008, 19:46

Tja würd gerne noch ne andere Anleitung einstellen.
Aber bei meinem XP Pro SP3 ist das:

Ein Shutdown Script kann man über folgenden Weg eintragen:
Start -> ausführen: mmc
Datei -> Snap-In hinzufügen/entfernen...
Hinzufügen: Gruppenrichtlinie
Dort unter
Richtlinien für lokaler Computer -> Computerkonfiguration -> Windows-Einstellungen -> Skripts (Start/Herunterfahren)
einfach das fbwf.vbs eintragen

genau der Weg.

EDIT: der kürzeste Weg bei mir ist:
Start -> ausführen: gpedit.msc
remoh
Administrator
 
Beiträge: 125
Registriert: Mi 9. Jul 2008, 09:04

Nächste


Ähnliche Beiträge

SSD extrem beschleunigen
Forum: A110
Autor: alexdfe
Antworten: 1
FBWF führt zu Blue Screen
Forum: Windows
Autor: tomcat
Antworten: 2
AAO 110L und FBWF - kleines Problem
Forum: Windows
Autor: tom68
Antworten: 1

Zurück zu Windows

Wer ist online?

0 Mitglieder

cron