Intro
Het moet nu maar eens en voor altijd afgelopen zijn met de problemen die er zijn om het Windows 9x register zo snel en schoon mogelijk te houden. Je kan natuurlijk eens in de maand je computer opnieuw installeren, Linux nemen is ook een mogelijkheid, maar wat veel sneller en makkelijker is, is om de grootste oorzaak van de problemen aan te pakken: de register-database van Windows.
De kern van alle bekende oplossingen werkt wel voor het schoonhouden, maar niet voor het verkleinen en versnellen van het register. De meeste oplossingen bestaan uit het uitvoeren van register-opschoon programma's zoals MS RegClean, Quarterdecks Registry Sweep uit CleanSweep, of Norton Utilities. Deze programma's doen maar 1 ding: Overbodige en
ongeldige sleutels verwijderen.
De kern tot het versnellen van het register ligt in het fysiek verkleinen van de registerbestanden. Dit lukt nooit zolang Windows gestart is. De rede is dat deze bestanden altijd geopend zijn, en om een bestand kleiner te maken moet er een kopie gemaakt worden waar een deel van de inhoud van de originele bestanden naartoe gekopieerd wordt. De oude bestanden moeten dus gesloten worden, wat niet gebeurt zolang Windows draait. Gelukkig is Windows 95/98 slechts een update van Dos, dus laten we daar dan maar op terugvallen. Leve M$, en hun prachtige compatibiliteit
Dan nu de oplossing voor dit alles. We gaan het register exporteren en opnieuw opbouwen in Dos. Maar voordat we dat doen zorgen we er eerst voor dat het register verlost is van ongeldige sleutels, dus we laten er alle utilities op los die we kunnen vinden. Op zijn minst RegClean, wat gratis bij Microsoft te halen is. Een combinatie van een aantal programma's levert vaak het beste resultaat. Ik heb er zelf 2: M$ RegClean en CleanSweep's Registry Sweep. RegClean haalt alle niet gebruikte ClsID's enzo eruit (registraties van DLL's enzo) en met Registry Sweep kan je niet-meer-aanwezige links naar bestanden verwijderen.
Begin van het stappenplan
Ik ga er vanuit dat iedereen die dit leest goed op de hoogte is van DOS, in ieder geval van bestandsattributen en manieren om van directory te veranderen met cd. Ik kopieer en wis in dit artikel alles via kale Dos-commando's, maar je kan natuurlijk ook Norton Commander (voor Dos!) o.i.d. gebruiken.
Aannames:
- Ik heb een engelse Windows 98
- Mijn Windows-directory is C:\Windows
- Ik maak een backup door system.dat en user.dat te kopiëren (kan gewoon in Windows via sleur en pleur) naar de directory D:\Backup.
Waarom op D:?? zullen jullie je afvragen. Dat heeft te maken met (de)-fragmentatie en snelheid. Als je het precies wil weten, lees dan door tot aan het einde van dit artikel.
Stap 0
Start Windows en maak een backup van het register!! Dit kan met diverse utilities, maar ook door de (verborgen) bestanden system.dat en user.dat uit de Windows-directory naar een andere directory of schijf te kopieren. Ik hou me niet verantwoordelijk voor gesloopte registers! Als de bestanden system.dat en user.dat niet te zien zijn in Explorer of My Computer, ga dan naar het menu View->Folder-options (Options in Windows 95) en kies in de tab View voor 'Show all files'.
Stap 1
Het register exporteren. Start RegEdit en ga naar het menu 'Register'. Kies daar voor 'Export Registryfile'. Kies vervolgens voor het 'Entire Registry' en sla dit op in een bestand, ik kies voor D:\Backup\Regback.reg.
Stap 2
Sluit Windows af en start de computer opnieuw in MS-Dos modus. Dus niet een Dos-prompt openen, maar via Start-> Afsluiten-> Opnieuw starten in Dos modus. Doordat deze stap nodig is, is het niet mogelijk om op deze manier het Windows NT register te verkleinen. Deze methode werkt alleen voor Windows 95/98.
Stap 3
Verwijder de oude registerbestanden. Geen zorgen, we hebben de backup nog als er iets mis mocht gaan. Dit kan door de volgende dos-commando's te typen:
cd \windows
attrib -s -h -r system.dat
attrib -s -h -r user.dat
del system.dat
del user.dat
Vervolg stappenplan
Stap 4
Laad smartdrive. Dit kan het opnieuw bouwen van het register (wat we straks gaan doen) aanzienlijk versnellen! Geef een flinke buffer mee, liefst in de buurt van de helft van je Ram-geheugen. Dit moet je opgeven in kB, dus typ:
smartdrv 32768
Als je 64 MB Ram hebt bijvoorbeeld. Zie ook de losse opmerking aan het eind van dit artikel.
Stap 5
Genereer een nieuw register. Dit gebeurt met de dos-versie van RegEdit en het geexporteerde bestand dat we gemaakt hebben.
Typ:
regedit /c d:\backup\regback.reg
De /c parameter is nodig om een nieuw register te bouwen (create), daarachter komt het pad naar het geëxporteerde bestand uit stap 1. Vervolgens wordt het register opnieuw opgebouwd. Dit kan van enkele minuten tot ongeveer 30 minuten duren, afhankelijk van de snelheid van je computer en de grootte van het register.
Hier kan een probleem ontstaan met de Dos-versie van RegEdit. Deze bevat namelijk een bug die soms fouten geeft bij lange register-sleutels. Zie voor meer informatie hierover de supportsite van Microsoft en ga naar artikel Q132064. Windows 95 OSR 2.x en Windows 98 schijnen hier geen last van te hebben, maar je weet maar nooit. De meestvoorkomende rede voor deze fout is een ongeldig lange registersleutel, en zou meestal onderschept moeten worden door RegClean. Mocht je hier last van hebben, herstel dan de backup, en begin opnieuw met het uitvoeren van RegClean. Zie Stap 99.
Dat is het! Het register is nu hoogstwaarschijnlijk kleiner geworden. Om dit te controleren gebruiken we het dir-commando:
dir /a *.dat
Nu komt er een lijst met alle .dat-bestanden in de Windows-directory, met de grootte erbij. Vergelijk deze grootte met die van de backup die eerder gemaakt is:
d:
cd \backup
dir /a *.dat
Stap 6
Start je computer opnieuw.
Als het niet werkt + uittro
Stap 99
99?? Dat gaat hard!
Heb je fouten ondervonden bij het opnieuw bouwen van het register dan volgt hier het recept om de backup weer terug te zetten vanuit Dos:
Wis het (eventueel) gedeeltelijk opgebouwde register (je hebt er toch niets aan) volgens Stap 3. Als dat bestaat natuurlijk, soms wordt de hele zooi automatisch gewist als er een fout optreedt.
Typ:
d:
cd \backup
attrib -s -h -r system.dat
attrib -s -h -r user.dat
copy system.dat c:\windows
copy user.dat c:\windows
attrib +s +h +r system.dat
attrib +s +h +r user.dat
Start je computer opnieuw. Je moet nu weer gewoon terugkomen in Windows alsof er niets gebeurd is. Er zit niets anders op dan het opnieuw te proberen...
Samenvatting
Wat is er nou eigenlijk gebeurd? Alle registersleutels die door de tijd heen gewist zijn, zijn normaalgesproken nog steeds in het register aanwezig, maar dan als niet-actieve sleutels. Die nemen dus alleen maar ruimte in en kosten tijd bij het laden van Windows. Door het exporteren van het register naar een .reg-bestand zijn alleen de actieve sleutels geexporteerd. Bij het opnieuw bouwen van het register zijn die ook weer ingevoerd. Gevolg: het register is kleiner en Windows start sneller. Met minder kans op fouten.
Losse tips
- Defragmenteer je harde schijf nadat het register opnieuw opgebouwd is. De registerbestanden zijn systeembestanden die niet worden gedefragmenteerd, dus het is het snelst als die op lege plaatsen aan het begin van de schijf komen. Na defragmentatie kan het register alleen achter de aanwezige data worden geplaatst, wat weer trager ingelezen kan worden.
- Als je die hebt (wie niet tegenwoordig): maak de backup van het register en het geexporteerde .reg-bestand op een andere harde schijf of partitie. Dit zorgt er mede met de vorige tip voor dat het nieuwe register op een plaats zo ver mogelijk aan het begin van de schijf staat.
- Het opnieuw opbouwen van het register kan een lang proces zijn. Door een grotere buffer aan SmartDrive mee te geven kan dit nog meer worden versneld. Standaard is de buffer 2 MB, ik neem meest de helft van het aanwezige Ram voor dit doel. Dus: 'smartdrv 32768' als er 64 MB Ram in de computer zit. De grens voor het aanmerkelijk versnellen van het opbouwen m.b.v. smartdrive begint ongeveer bij een .reg-bestand van 2,5 MB of groter. Probeer het voor de gein eens zonder SmartDrive, de grootste vertraging zit meestal tussen de 27 en 38%.
Ik hoop dat ik alle stappen helder heb uitgelegd. Als je een beetje creatief met Dos kan omgaan weet je ook wel hoe je bepaalde dingen moet veranderen als je andere directories gebruikt. Ik heb al talloze computers versneld op deze manier, en het verdient aanbeveling om het regelmatig te herhalen, bijvoorbeeld eens per twee maanden, vooral als je regelmatig programma's installeert en verwijdert.
Succes ermee,
Anton van Bohemen (aka avbohemen aka Blikkie)
Ok, eer wie ere toekomt: De kern van deze tweak (register exporteren en herbouwen vanuit Dos) komt uit de Nederlandse PCM van oktober 1997 (dacht ik). De overige tips zijn voortgekomen uit eigen ervaring. Da's een tijd geleden zal je zeggen. Ja, maar nog steeds zijn er maar een paar mensen die weten dat je ook in Dos met je register kan klooien. Ik heb het in een vlaag van verstandsverbijstering ook naar C!T gemeeld, misschien dat dat het niveau van dat blad weer wat omhoog kan halen. Maar goed, ik ga afsluiten, probeer het uit en post je reacties maar op ons forum.