
Ich schreibe ein Branchendienstprogramm, das unter anderem chkdsk.exe im Nur-Lese-Modus auf sekundären NTFS-Datenfestplatten ausführt. Um mein Dienstprogramm vollständig testen zu können, muss ich auf einer dieser Festplatten einen Zustand herbeiführen, den chkdsk als Fehler erkennt ... vorzugsweise auf eine Weise, die vorhandene Daten auf der Festplatte nicht zerstört. Was ist der einfachste Weg, dies zu tun?
Bearbeiten:
Am liebsten würde ich auf einem dieser Laufwerke eine Dummy-Textdatei erstellen und diese Datei dann so durcheinanderbringen, dass chkdsk denkt, sie müsse repariert werden. Ich bin mir nicht sicher, wie ich eine Datei durcheinanderbringen soll.
Antwort1
Sie können einfach eine ungültige Befehlszeile eingeben:
c:\>chkdsk FailPlease
The drive, the path, or the file name is not valid.
c:\>echo %ERRORLEVEL%
3
Antwort2
Ich denke, Sie möchten etwas, das das Dateisystem zuverlässig als Laufwerk aus einem beschädigten (oder pseudo-beschädigten) Zustand mounten kann. Das Erste, was mir in den Sinn kommt, istTrueCrypt
- Erstellen Sie einen mit TrueCrypt verschlüsselten Dateicontainer
- Mounten Sie es und speichern Sie einige Dateien darauf
- Bringen Sie diese Dateien irgendwie durcheinander. Oder lassen Sie sie einfach unformatiert. Das reicht möglicherweise aus, um einen Wert
chkdsk
ungleich Null zurückzugeben. - Speichern Sie Ihr Bild
Jetzt kann Ihr Skript eine Kopie des Images erstellen, die Kopie mounten, chkdsk die Reparatur versuchen lassen und dann Ihr Image löschen.