Mam MacBooka Pro z 2011 roku z systemem Mavericks 10.9.2. Jego jedynym dyskiem twardym jest dysk o pojemności 750 GB sformatowany za pomocą Bootcamp. Nadal działa dość dobrze, ale podczas uruchamiania przepustki defragmentacji zauważyłem, że istnieje grupa plików, które odmawiają przeniesienia przez defragmentator (iDefrag).
iDefrag zgłasza kod błędu POSIX o wartości 5 podczas uzyskiwania dostępu do plików. Wybieranie jednego losowo i próba skopiowania pliku do innej lokalizacji w powłoce również zgłasza błąd, co sprawia, że myślę, że problem jest prawdziwy i dotyczy dysku / FS. Wyjście cp wynosi:
cp: unity_nophysx.nexe: Input/output error
O ile mi wiadomo, kod błędu 5 to „odmowa dostępu”, ale proces defragmentacji jest uruchamiany jako administrator i cp przy użyciu sudo na podejrzanym pliku nie ma znaczenia.
Disk Utility, fsck i Apple Hardware Test wszystkie twierdzą, że dysk jest w porządku. Nie zgłoszono żadnych błędów SMART, a chociaż były pewne błędy uprawnień, nie były to pliki, na które narzeka iDefrag, a Narzędzie dyskowe twierdzi, że je naprawiło bez skargi.
Istnieje może sto lub więcej uszkodzonych plików, ale wciąż bardzo niewielka część dysku. O ile wiem, nie ma to wpływu na pliki systemowe ani ważne dane. Chociaż byłoby miło odzyskać dane, nie mam nic przeciwko ponownemu instalowaniu lub tworzeniu kopii zapasowych. W tym momencie nie wiem, czy to naprawdę umiera dysk, tylko niektóre złe sektory z powodu przeniesienia dysku podczas pisania, czy jakieś inne drobne uszkodzenia, które można obejść. Przyjmuję najgorszy przypadek i najprawdopodobniej będę musiał uzyskać nieco większy dysk twardy i sklonować istniejący dysk, aby uniknąć konieczności przebudowy systemu.
Moje pytanie dotyczy naprawdę tego, jak zabrać się za oznaczanie tych uszkodzonych plików jako odpowiednio uszkodzonych oraz ich naprawianie lub usuwanie , aby klon dysku odniósł sukces i nie zawiesił się na plikach / blokach, do których nie ma dostępu. Narzędzie dyskowe nie widzi problemu i nie znam żadnego wiersza polecenia ani narzędzi innych firm, które wykonałyby to zadanie. Nie chcę odpisywać całego dysku i zaczynać od zera, ponieważ dysk wydaje się w inny sposób zdrowy, dlatego szukam narzędzi naprawczych / diagnostycznych.
źródło
Odpowiedzi:
Jeśli masz do czynienia ze zdrowym systemem plików na poziomie jego struktury i chcesz znaleźć pliki z uszkodzonymi blokami dysku, oto jak postąpiłbym:
Wykonaj pełną kopię zapasową dysku za pomocą
Time Machine
lub Carbon Copy ClonerSprawdź tę kopię zapasową.
Uruchom następującą ciężką i ryzykowną (na wypadek, gdy masz złe bloki poza strukturą systemu plików) (upewnij się, że podano {}, aby nazwy plików zawierające spacje działały):
To ciężkie
find
polecenie wypisze dla każdego zwykłego pliku jego nazwę (a więc nie czyta go, ale tylko pozycję katalogu), a następnie kontynuuje pełny i szybki odczyt wszystkich swoich bloków danych.Po hiting pierwszy plik zawierający uszkodzonych bloków, to
find
spowoduje, że jądro do logowaniaread error
na/var/log/system.log
i będzie albo spowolnić lub przynieść swój system do całkowitego zatrzymania. Będzie to zależeć głównie od pojemności dysku twardego w celu przeniesienia uszkodzonych bloków znajdujących się w jego wewnętrznej puli przeznaczonej do tego zwykłego zadania naprawy. Ten plik zawierający uszkodzone bloki będzie nazwiskiem wydrukowanym przezfind
.Zapisz nazwę tego pliku na kartce papieru! Powiedzmy, że ta nazwa pliku to:
W tym momencie możesz mieć możliwość
find
szybkiego zabicia , naciskając ctrl+ C. Jeśli ładne zabicie go nie powiedzie się, po prostu rozbij komputer Mac.Po ponownym uruchomieniu komputera Mac bezpośrednio sprawdź plik zawierający uszkodzone bloki:
Jeśli polecenie zakończy się poprawnie, błąd był wystarczająco lekki, aby dysk mógł odczytać ten plik i ponownie przydzielić uszkodzone bloki.
W tym ostatnim przypadku musisz rozważyć wymianę dysku i pracę z ostatnimi kopiami zapasowymi. Niektóre inne pliki mogą również zawierać uszkodzone bloki i mogły pozostać niewykryte od dłuższego czasu, dopóki ich nie przeczytałeś.
Jądro nie uruchomi błędu odczytu w bloku, którego nigdy nie czytałeś.
źródło
May 10 20:42:15 ICE kernel[0]: disk0s2: I/O error.
okienko wyskakujące w dziennikach, ale nie mam pojęcia, który plik go wywołał. Ale potem polecenie działa całkiem szczęśliwie.dd
nic nie naprawia, to polecenie służy do kopiowania danych i konwertowania ich tak szybko, jak to możliwe. Dysk nadal może naprawić lekkie błędy. Bądź czujny, cena dysku nie ma wpływu na twoją pracę.Uruchom ponownie w trybie pojedynczego użytkownika, przytrzymując Command+ Spodczas rozruchu. Gdy zobaczysz monit (powinien wyglądać
root #
lub podobny), wpiszfsck -f
i naciśnij Return. Jest to wbudowane narzędzie do sprawdzania spójności systemu plików Mac i umożliwia znajdowanie i naprawianie błędów w systemie plików uruchamiania. Uruchom to polecenie, dopóki nie zobaczysz**The volume [volume name] was modified.**
lub narzędzie nie zawiedzie trzy razy z rzędu.Jeśli narzędzie zawiedzie, może to wskazywać na większy problem (ale nie mogłem ci powiedzieć bez obejrzenia wyniku działania narzędzia). W każdym razie upewnij się, że wykonałeś kopię zapasową wszystkiego, co możesz, przed uruchomieniem dowolnego narzędzia dyskowego. Po zakończeniu wpisz
reboot
znak zachęty i naciśnij klawisz Enter, aby (zgadłeś!) Zrestartować komputer.Aby uzyskać dodatkowe informacje, można znaleźć strony podręcznika fsck tutaj .
źródło
fsck
iDisk Utility
sprawdzamy integralność struktury systemu plików. Odczytują bloki dyskowe przypisane do struktury systemu plików. Nie mają na celu weryfikacji integralności bloków danych. W związku z tym mogą działać na dysku z uszkodzonymi blokami bez powodowania żadnego błędu odczytu. Jeśli chcesz sprawdzić dysk, nawet bloki, które mogą być wadliwe, ale w rzeczywistości są nieużywane, po prostu użyj podstawowego narzędziadd if=/dev/disk0 of=/dev/null ibs=1k
w trakcie innego uruchomienia okna powłokitail -f /var/log/system.log
. Jest to bezpłatne, ekstremalne i nie ukryje żadnego błędu.Zdecydowanie poleciłbym DiskWarrior do odbudowywania katalogów dysków i skanowania w poszukiwaniu potencjalnie uszkodzonych plików .
Podczas przebudowywania katalogu może również informować o opóźnieniach spowodowanych wadliwym działaniem dysku.
źródło
Opierając się na odpowiedzi Buscara, możesz to zrobić automatycznie, używając dość ciężkiego wiersza poleceń foo.
źródło
Jak mówisz, nie jest nawet jasne, czy te pliki są uszkodzone, przynajmniej komputer Mac tak nie uważa.
Każdy system operacyjny tworzy nieprzenośne pliki potrzebne do jego działania (punkty przywracania, obecnie aktywne pliki itp.). Niektóre defragry pokażą je, inne nie.
Fakt, że nie możesz uzyskać do nich dostępu ani ich przenieść, nie oznacza, że są uszkodzone.
Zwykle komputery Mac bardzo dobrze dbają o siebie.
Korzystanie z konserwacji Apple odbywa się przez: otwórz Terminal i wpisz:
następnie Return, wprowadź hasło administratora, a OS X zajmie się Tobą.
Jeśli jesteś zainteresowany, poszukaj raportów w konsoli.
Podczas szukania w konsoli (wyszukiwania) błędów we / wy, które mogłyby wskazywać na problemy z dyskiem, należy uzupełnić Narzędzie dyskowe i wyniki fsck.
Czasami używam bezpłatnego narzędzia o nazwie OnyX do dodatkowego zadania konserwacyjnego. Jest wytwarzany przez Francuzów, a ponieważ jedzą, jest po prostu świetny :)
OnyX to wielofunkcyjne narzędzie dla OS X, które pozwala zweryfikować dysk startowy i strukturę jego plików systemowych, uruchomić różne zadania związane z konserwacją systemu, skonfigurować niektóre ukryte parametry Findera, Docka, QuickTime, Safari, Mail, iTunes , okno logowania, Spotlight i wiele aplikacji Apple, aby usunąć pamięci podręczne, usunąć pewną liczbę plików i folderów, które mogą stać się kłopotliwe, i wiele więcej.
Biorąc to wszystko pod uwagę, nie kwestionuję twojej decyzji o użyciu defragmentatora (iDefrag), ponieważ nie wiem, ale raczej oferuję alternatywne rozwiązania.
źródło
fsck
wydaje się, że dba się tylko o problemy z systemem plików, a nie blokuje problemy z dostępnością. Konsola pokazywała błędy tylko wtedy, gdy ręcznie próbowałem skopiować / odczytać dane z jednego z tych uszkodzonych plików, nie pomogłem w ich znalezieniu.Choć wydaje się to nierozsądne, przed zrobieniem czegokolwiek powinieneś zduplikować wszystkie swoje dane na znany dobry dysk. Jeśli uruchamianie z instalatora i kopiowanie danych nie powiedzie się, istnieje narzędzie wiersza polecenia o nazwie „dd”, które może powielać na niskim poziomie w znacznie bardziej bezkompromisowy sposób.
aby uzyskać więcej informacji o dd, w tym o użyciu i właściwej składni.
Kolejny głos na post Matta, uruchom tryb pojedynczego użytkownika i uruchom
w kółko, aż fsck przestanie zgłaszać błędy.
DiskWarrior to głosowanie na stanowisko Adama. Jest to prosta w użyciu, ale bardzo wydajna aplikacja, która będzie raportować awarie dysku twardego, sprawdzać poszczególne pliki pod kątem błędów i naprawiać je, jeśli to możliwe, a także odbudowywać i optymalizować struktury katalogów.
Innym możliwym rozwiązaniem, które może wydawać się nieracjonalne, ale często jest ostatnią próbą odzyskania danych z dużą ilością niedokończonych dowodów na powodzenie, jest wyciągnięcie dysku, ochrona go przed wilgocią za pomocą kilku warstw worków zamrażarki i umieszczenie go w zamrażarce na 30-45 minut. Następnie, gdy dysk jest zimny, zamontuj dysk w zewnętrznej stacji dokującej USB i użyj innego systemu tymczasowego, aby ponownie spróbować skopiować uszkodzone dane na inny dysk. Zasadniczo jest to stosowane, jeśli występuje problem sprzętowy i dysk jest uszkodzony. Jeśli możesz zduplikować cały dysk z nienaruszonymi danymi, jest to idealne rozwiązanie, ponieważ często partycjonowanie i formatowanie daje dyskowi nową żywotność.
źródło
fsck
do listy „rzeczy, które uważają, że dysk jest w porządku”, odpowiedziałem na wzmiankę o odpowiedzi pomijającfsck
jego przydatność.fsck
Narzędzie dyskowe wykonuje tę samą funkcję, a mianowicie działa na strukturach systemu plików, a nie na poziomie bloku. Próbowałem sprecyzować, że jest to problem z blokiem, a nie problem z systemem plików.W przypadku pojedynczego pliku, którego nie można odczytać w całości z powodu błędu odczytu dysku, można użyć
dd
narzędzia do zduplikowania pliku do woluminu zewnętrznego, zastępując bajty NUL blokami, których nie można odczytać. Zdecydowanie zaleca się powielenie na innym woluminie (np. „Dysk USB” w poniższym przykładzie).Przykład:
Dzięki zastosowaniu bloków 512-bajtowych odzyskana zostanie maksymalna liczba czytelnych bloków.
Odzyskiwanie może zająć dużo czasu, ponieważ jądro będzie blokować się przez pewien czas przy każdym nieudanym czytaniu.
źródło