USB-gegevensverificatie bevestigt dat informatie die naar een USB-stick is geschreven daarna correct kan worden teruggelezen. Of u nu een speciaal verificatiehulpprogramma, back-upsoftware, een imagingtool of een eenvoudig programma voor het kopiëren van bestanden gebruikt, het doel is duidelijk: ervoor zorgen dat de gegevens op het doelmedium exact overeenkomen met de bron. Verschillende verificatiemethoden, waaronder MD5-verificatie, hebben allemaal hetzelfde doel.
De meeste verificatiemethoden volgen een standaardcyclus: de gegevens worden geschreven, direct daarna teruggelezen en vervolgens met elkaar vergeleken. Als alles overeenkomt, slaagt de schijf voor de test.
Voor veruit de meeste toepassingen is dit een uitstekende test. Hij detecteert mislukte schrijfbewerkingen, onvolledige overdrachten, communicatiefouten en duidelijke gegevensbeschadiging. Directe verificatie heeft echter één belangrijke beperking waar maar zelden over wordt gesproken.
Een geslaagde verificatie bewijst alleen dat de gegevens direct na het schrijven leesbaar waren. Het garandeert niet dat het apparaat zich op dezelfde manier zal gedragen nadat de stroom is verwijderd en opnieuw is ingeschakeld.
Het probleem van de “natte verf”
Denk aan het schilderen van een muur. Zodra u klaar bent met het aanbrengen van de verf met de roller, ziet alles er fantastisch uit. De kleur is egaal, de afwerking lijkt glad en het werk oogt voltooid. Maar een paar uur later, wanneer de verf is opgedroogd, kunt u rolstrepen, dunne plekken of kleine onregelmatigheden ontdekken die volledig onzichtbaar waren toen de muur nog nat was. De muur zelf is niet veranderd; het eindresultaat kon simpelweg pas goed worden beoordeeld nadat de verf zich had gezet.
USB-flashgeheugen kent een vergelijkbare uitdaging bij verificatie.
Flashgeheugen slaat informatie op in de vorm van elektrische ladingen. Direct nadat de gegevens zijn geprogrammeerd, meldt de USB-controller dat de schrijfbewerking is geslaagd. Een verificatiehulpprogramma leest de gegevens vervolgens meteen terug. Afhankelijk van het apparaat, het besturingssysteem en de gebruikte verificatiemethode kan de software de gegevens echter lezen uit de vluchtige RAM-cache van de schijf of uit de cache van het hostbesturingssysteem, in plaats van een volledig nieuwe uitlezing rechtstreeks vanuit het fysieke flashgeheugen af te dwingen.
Omdat de schijf nog geen stroom heeft verloren, zijn de gegevens in feite nog steeds “nat”. Bij flashgeheugen dat zich op de grens van de specificaties bevindt, zwakke geheugencellen of media van lage kwaliteit kunnen de fysieke cellen hun lading mogelijk niet vasthouden nadat de stroom wordt verwijderd, ook al konden de tijdelijk gecachete gegevens enkele ogenblikken daarvoor nog perfect worden gelezen.
Twee verschillende verificatievragen
Een standaard USB-verificatiehulpprogramma stelt één vraag: kunnen de gegevens direct nadat ze zijn geschreven worden gelezen?
Een verificatieproces met een stroomcyclus stelt een strengere vraag: kunnen de gegevens nog steeds correct worden gelezen nadat het apparaat opnieuw is opgestart vanuit een volledig nieuwe stroomtoestand?
Een stroomcyclus dwingt de USB-stick om de verbinding te verbreken, tijdelijk opgeslagen cachegegevens te verwijderen, te resetten, de controller opnieuw te initialiseren en het fysieke flashgeheugen vanuit een koude toestand uit te lezen. Dit bootst veel nauwkeuriger na wat er gebeurt wanneer een USB-stick wordt verzonden, opgeslagen of later op de computer van een klant wordt aangesloten.
We verifiëren schijven tenslotte niet ten behoeve van de computer die de gegevens zojuist heeft gekopieerd. We verifiëren ze voor de volgende computer waarop ze worden gebruikt.
Is dit op u van toepassing?
Voor gewone bestandsoverdrachten, zoals het verplaatsen van foto’s, documenten of tijdelijke bestanden, is directe verificatie meestal voldoende. Het biedt een redelijke mate van zekerheid dat het kopiëren zonder communicatiefout of een ander duidelijk probleem is voltooid.
Voor toepassingen waarbij veel op het spel staat, biedt standaardverificatie mogelijk niet het hoogst haalbare niveau van zekerheid. Software-installatieprogramma’s, images van besturingssystemen, firmware-updates, medische dossiers, juridisch bewijsmateriaal en bestanden voor industriële besturingssystemen zijn ervan afhankelijk dat de schijf later in het veld goed functioneert, en niet alleen zolang deze op de productiecomputer aangesloten blijft.
Dit betekent niet dat traditionele USB-verificatie niet goed werkt. Read-after-write-verificatie detecteert de overgrote meerderheid van de kopieerproblemen die in de praktijk voorkomen en blijft een noodzakelijke stap. Er is echter een duidelijk afgebakende grens. Voor wie meer wil weten over de verschillen tussen verificatiemethoden, legt ons artikel over CRC-verificatie versus checksumverificatie de sterke en zwakke punten van beide benaderingen uit.
Voor maximale zekerheid, vooral in omgevingen waar grote aantallen USB-apparaten van gegevens worden voorzien, bestaat de ideale werkwijze uit het kopiëren van de gegevens, het verwijderen van de stroom van het USB-apparaat, het herstellen van de stroom en het daarna uitvoeren van de verificatie. Deze volgorde bevestigt dat de schijf opnieuw kan opstarten, correct kan initialiseren en de gegevens kan ophalen zonder afhankelijk te zijn van de toestand die direct na de oorspronkelijke schrijfbewerking bestond.
Op dit moment automatiseren maar weinig commerciële USB-duplicatiesystemen of softwarehulpprogramma’s deze extra stroomcyclus. Naarmate flashgeheugen echter dichter, goedkoper en wisselender van kwaliteit wordt, kan het opnemen van een stroomcyclus op hardwareniveau in het verificatieproces verschuiven van een specialistische technische norm naar een noodzaak voor de gehele sector.
Redactionele en technische ervaring: Dit artikel is opgesteld door Mike McCrosky, meewerkend uitgever van GetUSB.info. Mike werkt al meer dan twintig jaar met USB-flashgeheugen, systemen voor het laden van gegevens, duplicatie van USB-sticks en USB-verificatieprocessen. De informatie in dit artikel is gebaseerd op praktische ervaring met de productie van verwisselbare media en het testen van gegevensintegriteit.