Wie kann ich simulieren eine Festplatte voll Fehler in einer Windows-Umgebung?
Ich habe das schreiben einer bat-Skript für ein test-Szenario, in dem die software, die wir testen schlägt fehl, zu schreiben, um die Datei aufgrund eines Datenträger-voll-Fehler. Das test-Skript muss automatisiert werden, so dass wir laufen können, es über Nacht tests, zum Beispiel. Das test-Skript muss auch die Arbeit an verschiedenen Computern, so dass die Installation einer software wie ein virtual-Maschine nicht die beste Lösung in diesem Fall.
Wie kann ich simulieren, dass Fehler in einer Windows-Umgebung?
- Die Leute scheinen zu übersehen, dass Sie schrieb "test-Szenario". Das heißt für mich, dass Sie nach einer Lösung suchen, die funktioniert unabhängig von der Umgebung (bei Tests auf einem anderen computer).
- Leonidas: Danke für die Kommentare. Ich habe aktualisiert die Frage.
- Verwandte: Einfachste Weg, zu simulieren, die keinen freien Speicherplatz situation?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie versuchen, schriftlich zu einer vollen Diskette.
Edit:
Im Licht von Ihr bearbeiteten Frage, könnte man eine Netzwerkfreigabe einrichten, ohne Speicherplatz-quota und schreiben. Der Fehler wird dann hergestellt werden, unabhängig von dem angemeldeten Benutzer oder der Maschine.
Für Windows XP oder höher:
Können Sie mit diesem Befehl Holen Sie die Menge an freiem Speicherplatz für das Laufwerk c:\:
Ersetzen Sie c:\ mit dem Laufwerk, wie gebraucht.
Können Sie dann nehmen einiges an Platz Weg von diesem Wert, so haben Sie einen kleinen Raum, mit zu arbeiten:
oder wie viel Speicherplatz Sie wollen, um frei zu halten.
Können Sie die
fsutil
Befehl erstellen Sie eine Datei, füllen Sie den freien Speicherplatz auf der Festplatte:Führen Sie Ihren test durch, schreiben auf die Festplatte. Nachdem Sie schreiben, 1024 bytes oder so sollten Sie aus dem Raum laufen.
cmd
's Arithmetik beschränkt sich auf 32-bit-Ganzzahlen mit Vorzeichen. Ich denke, in den letzten zehn Jahren wäre es ein bisschen schwer zu finden, dass wenig Freiraum für diese Arbeit.Herunterladen und installieren TrueCrypt. Sie können dann erstellen Sie eine virtuelle partition von was Größe Sie möchten (ein paar Megabyte), mounten und dann füllen Sie es mit ein paar Dokumenten.
Es könnte scheinen, wie ein bisschen viel, aber eine Sache, die ich denken kann, ist die Verwendung einer virtuellen Maschine, und legen Sie die virtuelle Festplatte gerade groß genug, um das OS auf. Füllen Sie es mit einigen Müll-Dateien zu Tipp es über die Kante, dann das Programm ausgeführt.
Beste Option: Microsoft verbrauchen Programm
Gründe:
Schritte:
cd "%ProgramFiles(x86)%\Windows Resource Kits\Tools"
(oder wo auch immer es installiert ist)consume.exe -disk-space
Ausgabe des Befehls:
Andere Optionen:
Erstellen Sie eine sekundäre partition, füllen Sie es mit Müll und führen Sie dann das Programm.
Könnten Sie setup eine kleine ramdisk und schreiben. Finden Sie auf dieser Seite einige Kostenlose ramdisk-Produkte.
Erstellen Sie einen neuen Benutzer-Account, die Festlegung einer Quote für es, und verwenden Sie die "runas" - führen Sie Ihre app so, dass Benutzer. (nicht genau das gleiche wie eine volle Festplatte, aber sollte ähnliche Folgen haben.)
Des Betriebssystems wird anders reagieren, um es in den system-Laufwerk füllen, als auf andere Laufwerke Füll-und als solche wird Ihr Antrag auch tun, oder? Einfach füllen Sie ein Laufwerk, unabhängig davon, was die physikalischen Medien verwendet wird, ist nicht eine genaue Prüfung.
Kann nicht, Sie verhöhnen die Datei-system-Ereignis für eine volle Festplatte? Warum würden Sie wollen, zu warten, bis der Datenträger voll ist? Würden Sie nicht wollen, zu überwachen Speicherplatz in regelmäßigen Abständen und warnt den Benutzer, wenn der Datenträger mit einem Prozentsatz Rand der Füllung? Anstatt zu warten, bis der Speicherplatz ist terminal einfach verhindern, dass Ihre Anwendung von der Arbeit, bis das Problem behoben ist, tut man das nicht, könnte der Effekt keine Daten IO und nicht wiederhergestellt werden!
Wenn der test hat eine harte integration test, dann die Automatisierung einer virtuellen Maschine, die Bereitstellung der Anwendung und füllen dann den restlichen Raum mit einer rekursiven Skript machbar ist.
Beste, was, das funktioniert auf jedem computer (als Test ist nicht neceessarily erfolgt auf einem dedizierten Rechner) wäre eine ramdisk/ramdisk, dass festgelegt werden konnte, bis auf die Fliegen.
Nur ein Virtuelles Datenträger-SDK so weit siehe hier, dass vielleicht könnten Sie in Ihren buzild Prozess.
Andere Idee: vielleicht ist Ihr Test-Computer könnte so eingerichtet sein, schreiben einen freigegebenen Netzwerk-Ordner (der voll ist) mounten als Laufwerk?
Habe ich eine änderung am Skript zu machen, compatiable mit Windows 7... im Wesentlichen das hinzufügen der Schalter "/-c" in der for-Anweisung. Dies entfernt die Tausende seperator als fsutil nicht, wie es in der Anweisung.
verwenden Sie einen sehr kleinen iscsi-target