Frage Deaktivieren Sie defrag.exe ordnungsgemäß, wenn Sie in der Eingabeaufforderung ausgeführt wird


Wenn ich in der Eingabeaufforderung Defrag ausführen, gibt es eine Möglichkeit, den Prozess vor Abschluss ordnungsgemäß zu stoppen?

Führt das Töten der Aufgabe in TM zu Problemen, wenn sie gerade eine Datei verschieben?

Windows 7 Pro 64 Bit


4
2017-08-08 01:17


Ursprung




Antworten:


Theoretisch sollte es sicher sein, das Programm einfach zu beenden (in Ihrem Fall können Sie CTRL-C verwenden), da im Design der Microsoft Defragmentierung-Anwendung Anstrengungen unternommen werden, um Datenverlust im Falle einer unerwarteten Unterbrechung zu verhindern. Dies ist auf der Microsoft-Website wie folgt dokumentiert:

The following steps are the processes by which Disk Defragmenter and
file system defragment an NTFS volume and update the MFT.

   1. Locate the fragments of each file throughout the disk.
   2. Copy the fragments to contiguous locations on the disk.
   3. Verify that the copy is an exact duplicate of the original file.
   4. Update the MFT in NTFS with the new location of the beginning of
      the file.
   5. Free up the space previously used by the file.

Microsoft - Wie funktioniert das Defragmentierungsprogramm?
http://technet.microsoft.com/en-us/library/cc778290(WS.10).aspx
(Der obige Text findet sich unter "Aktualisieren der Master-Dateitabelle")

Im Wesentlichen sind die Daten kopiert Bei neuen Sektoren werden die Zeiger auf die verschobenen Daten aktualisiert, um auf diese neuen Sektoren zu zeigen, und dann werden die alten Sektoren als Ergebnis freigegeben. Dies ist ein sehr sicherer Ansatz für den Fall eines Absturzes, da Sie im schlimmsten Fall (wie bei einem Absturz auf einen blauen Bildschirm) zwei Kopien derselben Daten haben, eine für nicht zugewiesene Sektoren und die andere auf zugewiesenen Sektoren. Aus der Perspektive des Lesens der Daten wird es in beiden Fällen gleich aussehen.

Darüber hinaus gibt es viele Verbesserungen, die an den Defragmentierungstechniken vorgenommen werden können, die Microsoft verwendet (die für viele bereits mehr als ausreichend sind), und eine Vielzahl von alternativen Produkten wird hier ausführlich untersucht und verglichen:

Defragger (aus Roedy Green's Java Glossar)
http://www.mindprod.com/jgloss/defragger.html


4
2017-08-08 02:09



Ausgezeichnet wie immer Randolf! - Moab


Kontrollieren Sie C, um es abzubrechen.

Ich erwarte nicht, dass der Task-Manager etwas schadet, da er zuerst das Programm bittet, es zu schließen, bevor es es brutal erzwingt.


6
2017-08-08 01:29



Grund ich fragte, ist vor ein paar Jahren ich schlug eine XP-Installation, zwingen Defrag zum Schließen mit der GUI, es würde nicht reagieren und so tötete ich es in TM, versuchte mehrere Versuche, aber TM schließlich getötet, beim Neustart wurde es verprügelt. Ich war ungeduldig in diesen Jahren meines Lebens. - Moab
Ja, Töten durch TM ist nicht immer eine gute Idee. Eine der schwierigsten Lektionen, die ich aus C ++ gelernt habe, ist, dass das Erstellen eines Prozesses einfach ist. Einen Prozess elegant abzuschließen, trennt die Jungen von den Männern. - surfasb
Es ist der brutale Kraftteil, der mich betrifft, weshalb ich gefragt habe, ob es eine anmutige Methode gibt. - Moab
@Moab, benutze einfach Strg + C; Der Prozess wird nicht beendet, da Sie sehen können, dass er anschließend fortgesetzt wird (er erkennt den Tastendruck, bricht die Defragmentierung ab und druckt dann eine Nachricht aus). Ich erinnere mich an die DOS-Tage zurück, dass es eine Möglichkeit gab, einen Ctrl + C-Handler zu installieren (ich habe ihn in einem Pascal-Programm verwendet), also ist es nicht verwunderlich, dass Windows-7-Konsolen-Apps das können. - Synetech
@moab: verwende kein TM. Oder hol dir eine Kopie von mydefrag Das gibt Ihnen noch genauere Kontrolle über Ihre Defragmentierung. Mach dir keine Sorgen. Es verwendet die gleichen APIs wie die Defragmentierung. Wenn ich darüber nachdenke, kann ich mich nicht an das letzte Mal erinnern, als ich das Defrag-Programm starten musste. Es musste vor Vista sein. . . - surfasb


Dieser Thread hat viele hilfreiche Informationen darüber, ob es bei Disketten, die während eines Stromausfalls defragmentiert wurden, Gefahren gibt (obwohl sie nicht mit Ihrer Situation identisch sind, halten Sie das Programm dennoch abrupt an - wie der Kommentator freundlich gesagt hat, wenn das System sich erholen kann) von einer Hardwareunterbrechung wird eine Softwareunterbrechung wahrscheinlich nicht schaden).

Es scheint so als ob defrag folgt mit dem Journaling, das bei normalem Gebrauch auftritt.


2
2017-08-08 01:32



Ich denke, du möchtest vielleicht etwas hinzufügen, wie "wenn sogar eine harte Abschaltung es wahrscheinlich nicht beschädigen wird, dann wird es für einen Software-Shutdown nicht" - soandos
Netter Artikel, aber beantwortet nicht wirklich meine Frage, wie man elegant beendet. - Moab
@soandos Das ist ein guter Punkt. Wirklich, beide Arten stoppen die Software, bevor sie eine Chance hat, aufzuräumen. - jonsca
@Moab Ich denke, wir beide sagen, dass die konventionellen Methoden von Ctrl-C oder das Töten vom Task-Manager nichts schaden werden. Lauf einfach ein chkdsk (oder gleichwertig) um sicherzustellen, dass. - jonsca
Ja, aber auf diese Weise können Sie die Frage direkter beantworten, nur etwas, das Sie Ihrer Antwort hinzufügen möchten. - soandos