Ich habe Ende 2011 ein Macbook Pro mit Mavericks 10.9.2. Die einzige Festplatte ist ein 750-GB-Laufwerk, das mit Bootcamp formatiert ist. Es läuft immer noch recht gut, aber beim Ausführen eines Defragmentierungspasses habe ich festgestellt, dass es eine Reihe von Dateien gibt, die sich weigern, vom Defragmentierer (iDefrag) verschoben zu werden.
iDefrag meldet beim Zugriff auf die Dateien einen POSIX-Fehlercode von 5. Wenn Sie eine zufällig auswählen und versuchen, die Datei an einen anderen Ort in der Shell zu kopieren, wird ebenfalls ein Fehler gemeldet, der mich glauben lässt, dass das Problem real ist und mit der Festplatte / FS zusammenhängt. Die Ausgabe von cp ist:
cp: unity_nophysx.nexe: Input/output error
Fehlercode 5 lautet meines Wissens "Zugriff verweigert", aber der Defragmentierungsprozess wird als Administrator ausgeführt, und das Ausführen von cp mit sudo für die verdächtige Datei macht keinen Unterschied.
Das Festplatten-Dienstprogramm, fsck und der Apple-Hardwaretest behaupten alle, dass die Festplatte in Ordnung ist. Es wurden keine SMART-Fehler gemeldet, und obwohl einige Berechtigungsfehler aufgetreten sind, waren sie nicht mit den Dateien verbunden, über die sich iDefrag beschwert, und das Festplatten-Dienstprogramm behauptet, sie ohne Beanstandung behoben zu haben.
Es gibt vielleicht hundert oder mehr beschädigte Dateien, aber immer noch einen sehr kleinen Teil des Laufwerks. Soweit ich das beurteilen kann, sind keine Systemdateien oder wichtigen Daten betroffen. Es wäre zwar schön, die Daten abzurufen, aber es macht mir nichts aus, sie neu zu installieren oder Backups zu erstellen. Zu diesem Zeitpunkt weiß ich nicht, ob das Laufwerk wirklich im Sterben liegt, nur einige schlechte Sektoren, die darauf zurückzuführen sind, dass das Laufwerk beim Schreiben verschoben wird, oder eine andere geringfügige Beschädigung, die behoben werden kann. Ich gehe vom schlimmsten Fall aus und muss höchstwahrscheinlich eine etwas größere Festplatte besorgen und das vorhandene Laufwerk klonen, um zu vermeiden, dass das System neu erstellt werden muss.
Meine Frage ist wirklich, wie ich diese beschädigten Dateien als ordnungsgemäß fehlerhaft markiere und sie behebe oder bereinige , damit ein Klon der Festplatte erfolgreich ist und nicht an Dateien / Blöcken hängen bleibt, auf die er nicht zugreifen kann. Das Festplatten-Dienstprogramm sieht das Problem nicht und ich kenne keine Befehlszeilen- oder Tools von Drittanbietern, die diese Aufgabe übernehmen. Ich möchte nicht die gesamte Festplatte abschreiben und von vorne beginnen, da das Laufwerk ansonsten fehlerfrei zu sein scheint. Daher suche ich nach Reparatur- / Diagnosetools.
quelle
Antworten:
Wenn Sie auf der Ebene seiner Struktur mit einem fehlerfreien Dateisystem konfrontiert sind und Dateien mit fehlerhaften Festplattenblöcken suchen möchten, würde ich folgendermaßen vorgehen:
Erstellen Sie eine vollständige Sicherung Ihrer Festplatte mit
Time Machine
oder Carbon Copy ClonerÜberprüfen Sie diese Sicherung.
Führen Sie den folgenden schweren und riskanten Befehl aus (falls Sie fehlerhafte Blöcke außerhalb Ihrer Dateisystemstruktur haben) (stellen Sie sicher, dass {} in Anführungszeichen steht, damit Dateinamen mit Leerzeichen funktionieren):
Dieser schwere
find
Befehl druckt für jede einfache Datei ihren Namen (also nicht den Namen, sondern nur den Verzeichniseintrag) und liest dann alle Datenblöcke vollständig und schnell weiter.Enthält fehlerhafte Blöcke auf die erste Datei hiting, dies
find
führt dazu , dass der Kernel anmeldenread error
auf/var/log/system.log
, und es wird entweder verlangsamen oder das System auf insgesamt Stillstand bringen. Dies hängt hauptsächlich von der Festplattenkapazität ab, um die fehlerhaften Blöcke in seinem internen Pool zu verschieben, die für diese übliche Fix-Aufgabe vorgesehen sind. Diese Datei mit fehlerhaften Blöcken ist der Nachname, der von gedruckt wirdfind
.Schreiben Sie diesen Dateinamen auf ein Blatt Papier! Angenommen, dieser Dateiname lautet:
An diesem Punkt haben Sie möglicherweise die Möglichkeit,
find
schnell zu töten , indem Sie ctrl+ drücken C. Wenn das Abschalten fehlschlägt, stürzen Sie einfach Ihren Mac ab.Überprüfen Sie beim Neustart Ihres Mac direkt die Datei mit fehlerhaften Blöcken:
Wenn der Befehl korrekt beendet wurde, war der Fehler leicht genug, damit Ihre Festplatte diese Datei lesen und die fehlerhaften Blöcke neu zuordnen konnte.
In diesem letzten Fall müssen Sie in Betracht ziehen, Ihre Festplatte auszutauschen und mit Ihren letzten Sicherungen zu arbeiten. Einige andere Dateien enthalten möglicherweise auch fehlerhafte Blöcke und sind möglicherweise seit langer Zeit unentdeckt geblieben, solange Sie sie nicht gelesen haben.
Der Kernel löst keinen Lesefehler für einen Block aus, den Sie nie gelesen haben.
quelle
May 10 20:42:15 ICE kernel[0]: disk0s2: I/O error.
Popup in den Protokollen, aber keine Ahnung, welche Datei es ausgelöst hat. Aber dann läuft der Befehl ziemlich glücklich weiter.dd
behebt nichts, dieser Befehl dient dazu, Daten zu kopieren und so schnell wie möglich zu konvertieren. Die Festplatte kann weiterhin leichte Fehler reparieren. Bleiben Sie wachsam, der Preis einer Festplatte ist nichts, was mit Ihrer Arbeit zu tun hat.Starten Sie im Einzelbenutzermodus neu, indem Sie während des Startvorgangs die Taste Command+ Sgedrückt halten. Wenn Sie eine Eingabeaufforderung sehen (sollte ähnlich aussehen
root #
oder ähnlich), geben Sie einfsck -f
und drücken Sie Return. Dies ist das in Mac integrierte Tool zur Überprüfung der Konsistenz von Dateisystemen, mit dem Sie Fehler im Startdateisystem finden und reparieren können. Führen Sie diesen Befehl aus, bis Sie nichts mehr sehen**The volume [volume name] was modified.**
oder das Tool dreimal hintereinander ausfällt.Wenn das Tool ausfällt, deutet dies möglicherweise auf ein größeres Problem hin (aber ich konnte Ihnen nicht sagen, was, ohne die Ausgabe des Tools zu sehen). Stellen Sie in jedem Fall sicher, dass Sie alles gesichert haben, was Sie können, bevor Sie ein Festplatten-Tool ausführen. Wenn Sie fertig sind, geben Sie
reboot
die Eingabeaufforderung ein und drücken Sie die Eingabetaste, um Ihren Computer neu zu starten (Sie haben es erraten!).Weitere Informationen finden Sie in den fsck-Handbuchseiten hier .
quelle
fsck
&Disk Utility
überprüfen die Integrität der Dateisystemstruktur. Sie lesen die der Dateisystemstruktur zugewiesenen Plattenblöcke. Sie dienen nicht zur Überprüfung der Integrität von Datenblöcken. Daher können sie auf einer Festplatte mit fehlerhaften Blöcken ausgeführt werden, ohne dass ein Lesefehler auftritt. Wenn Sie Ihre Festplatte überprüfen möchten, selbst Blöcke, die möglicherweise fehlerhaft sind, aber tatsächlich nicht verwendet werden, verwenden Sie einfach ein grundlegendes Tool, währenddd if=/dev/disk0 of=/dev/null ibs=1k
und innerhalb eines anderen Shell-Fensters ausgeführt wirdtail -f /var/log/system.log
. Dies ist kostenlos, extrem und verbirgt keinen Fehler.Ich würde DiskWarrior wärmstens empfehlen, um Festplattenkataloge neu zu erstellen und nach potenziell beschädigten Dateien zu suchen .
Während der Katalogwiederherstellung können Sie auch wissen, ob es aufgrund einer Festplattenfehlfunktion zu einer Verzögerung kommt.
quelle
Wenn Sie die Antwort von Buscar abarbeiten, können Sie dies automatisch mit einer ziemlich schweren Befehlszeile tun.
quelle
Wie Sie sagen, ist nicht einmal klar, dass diese Dateien beschädigt sind, zumindest glaubt Ihr Mac dies nicht.
Jedes Betriebssystem erstellt nicht verschiebbare Dateien, die für seine Vorgänge benötigt werden (Wiederherstellungspunkte, derzeit aktive Dateien usw.). Einige Defrags zeigen sie, andere nicht.
Die Tatsache, dass Sie nicht auf sie zugreifen oder sie verschieben können, bedeutet nicht, dass sie beschädigt sind.
Normalerweise kümmern sich Macs sehr gut um sich selbst.
Die Verwendung der Apple-Wartung erfolgt durch: Öffnen Sie das Terminal und geben Sie Folgendes ein:
Geben Sie gefolgt von Zurück Ihr Administratorkennwort ein, und OS X kümmert sich um die Dinge für Sie.
Suchen Sie in der Konsole nach Berichten zu diesen, wenn Sie interessiert sind.
Suchen Sie in der Konsole nach E / A-Fehlern, die darauf hinweisen, dass auf Ihrer Festplatte Probleme auftreten, um das Festplatten-Dienstprogramm und die Ergebnisse von fsck zu ergänzen.
Gelegentlich verwende ich ein kostenloses Tool namens OnyX für zusätzliche Wartungsaufgaben. Es wird von Franzosen gemacht und da sie essen, ist es einfach toll :)
OnyX ist ein Multifunktionsdienstprogramm für OS X, mit dem Sie die Startdiskette und die Struktur ihrer Systemdateien überprüfen, verschiedene Aufgaben der Systemwartung ausführen und einige versteckte Parameter von Finder, Dock, QuickTime, Safari, Mail und iTunes konfigurieren können , Anmeldefenster, Spotlight und viele Anwendungen von Apple, um Caches zu löschen, eine bestimmte Anzahl von Dateien und Ordnern zu entfernen, die möglicherweise umständlich werden, und vieles mehr.
Nach alledem stelle ich Ihre Entscheidung für die Verwendung des Defragmentierers (iDefrag) nicht in Frage, da ich es nicht weiß, sondern alternative Lösungen anbiete.
quelle
fsck
es sich anscheinend nur um Dateisystemprobleme handelt, nicht um Probleme mit der Barrierefreiheit. Die Konsole zeigte nur Fehler an, wenn ich manuell versuchte, die Daten aus einer dieser beschädigten Dateien zu kopieren / zu lesen. Es war keine Hilfe, sie zu finden.So unvernünftig es auch klingt, bevor Sie etwas unternehmen, sollten Sie alle Ihre Daten auf ein bekanntermaßen gutes Laufwerk duplizieren. Wenn das Booten vom Installationsprogramm und das Kopieren der Daten fehlschlägt, gibt es ein Befehlszeilenprogramm namens 'dd', das das Duplizieren auf niedriger Ebene und auf weitaus kompromisslosere Weise durchführen kann.
Weitere Informationen zu dd, einschließlich Verwendung und korrekter Syntax.
Eine weitere Abstimmung für Matts Beitrag, den Einzelbenutzermodus starten und ausführen
immer und immer wieder, bis fsck keine Fehler mehr meldet.
DiskWarrior ist eine einfach zu verwendende, aber sehr leistungsfähige Anwendung, die Festplattenfehler meldet, einzelne Dateien auf Fehler überprüft und wenn möglich repariert sowie Verzeichnisstrukturen neu erstellt und optimiert.
Eine andere mögliche Lösung, die unvernünftig klingt, aber oft ein letzter Versuch ist, Daten mit vielen annakdotischen Erfolgsnachweisen wiederherzustellen, besteht darin, das Laufwerk zu ziehen, es mit ein paar Schichten Gefrierbeuteln vor Feuchtigkeit zu schützen und es in Ihren Gefrierschrank zu legen 30-45 Minuten. Wenn das Laufwerk kalt ist, montieren Sie das Laufwerk in einem externen USB-Dock und versuchen Sie erneut mit einem anderen temporären System, die beschädigten Daten auf ein anderes Laufwerk zu kopieren. Im Allgemeinen wird dies verwendet, wenn ein Hardwareproblem vorliegt und das Laufwerk ausfällt. Wenn Sie das gesamte Laufwerk mit intakten Daten duplizieren können, ist dies ideal, da eine Neupartitionierung und Neuformatierung dem Laufwerk häufig eine neue Lebensdauer verleiht.
quelle
fsck
es der Liste der "Dinge hinzuzufügen , die denken, dass die Festplatte in Ordnung ist", hatte ich auf die Antwort geantwortet, in der erwähnt wurde, dassfsck
ihre Nützlichkeit nicht berücksichtigt wird.fsck
und das Festplatten-Dienstprogramm führen fast dieselbe Funktion aus, und zwar auf den Dateisystemstrukturen, nicht auf Blockebene. Ich habe versucht, ziemlich genau zu sagen, dass dies ein Blockproblem ist, kein Dateisystemproblem.Für eine einzelne Datei, die aufgrund eines Festplattenlesefehlers nicht vollständig gelesen werden kann, können Sie das
dd
Dienstprogramm verwenden, um die Datei auf ein externes Volume zu duplizieren und die nicht lesbaren Blöcke durch NUL-Bytes zu ersetzen. Es wird dringend empfohlen, auf ein anderes Volume zu duplizieren (z. B. "USB Disk" im folgenden Beispiel).Beispiel:
Bei Verwendung von 512-Byte-Blöcken wird die maximale Anzahl lesbarer Blöcke wiederhergestellt.
Die Wiederherstellung kann lange dauern, da der Kernel bei jedem fehlgeschlagenen Lesevorgang einige Zeit blockiert.
quelle