Saya memiliki akhir 2011 Macbook Pro, menjalankan Mavericks 10.9.2. HDD satu-satunya adalah drive 750GB, diformat dengan Bootcamp. Ini masih berjalan dengan cukup baik, tetapi dalam menjalankan defragment pass di atasnya, saya telah mengidentifikasi bahwa ada banyak file yang menolak untuk dipindahkan oleh defragmenter (iDefrag).
iDefrag melaporkan kode kesalahan POSIX 5 ketika mengakses file. Memilih satu secara acak dan mencoba menyalin file ke lokasi lain di shell juga melaporkan kesalahan, yang membuat saya berpikir masalahnya nyata dan dengan disk / FS. Output dari cp adalah:
cp: unity_nophysx.nexe: Input/output error
Kode kesalahan 5 adalah 'akses ditolak' sejauh yang saya ketahui, tetapi proses defrag berjalan sebagai administrator dan menjalankan cp menggunakan sudo pada file yang dicurigai tidak ada bedanya.
Utilitas Disk, fsck, dan Tes Perangkat Keras Apple semua mengklaim disk baik-baik saja. Tidak ada kesalahan SMART dilaporkan, dan meskipun ada beberapa kesalahan izin, mereka tidak dengan file yang dikeluhkan iDefrag, dan Disk Utility mengklaim telah memperbaikinya tanpa keluhan.
Mungkin ada seratus atau lebih file yang rusak, tetapi masih sebagian kecil dari drive. Sejauh yang saya tahu, tidak ada file sistem atau data penting yang terpengaruh. Meskipun akan lebih baik untuk mengambil data, saya tidak keberatan menginstal ulang atau pergi ke cadangan. Pada titik ini saya tidak tahu apakah itu benar-benar drive yang sekarat, hanya beberapa sektor buruk karena drive sedang dipindahkan saat menulis, atau beberapa korupsi kecil lainnya yang dapat diatasi. Saya mengasumsikan kasus terburuk, dan kemungkinan besar saya harus mendapatkan HDD yang sedikit lebih besar dan mengkloning drive yang ada untuk menghindari keharusan membangun kembali sistem.
Pertanyaan saya adalah benar-benar bagaimana saya menandai file-file yang rusak sebagai rusak dan memperbaiki atau membersihkan mereka , sehingga klon disk akan berhasil dan tidak terpaku pada file / blok yang tidak dapat diakses. Disk Utility tidak melihat masalah, dan saya tidak tahu adanya baris perintah atau alat pihak ketiga yang akan melakukan pekerjaan itu. Saya tidak ingin menghapus seluruh disk dan mulai dari awal, karena drive tampaknya sehat, jadi saya mencari alat perbaikan / diagnostik.
sumber
Jawaban:
Jika Anda menghadapi sistem file yang sehat pada tingkat strukturnya dan ingin menemukan file yang memiliki blok disk yang rusak, berikut adalah cara saya akan melanjutkan:
Buat cadangan penuh disk Anda dengan
Time Machine
atau Carbon Copy ClonerPeriksa cadangan ini.
Jalankan perintah berikut yang berat dan berisiko (jika Anda memiliki blok buruk di luar struktur sistem file Anda) (pastikan {} dikutip agar nama file yang mengandung spasi berfungsi):
find
Perintah berat ini akan mencetak untuk setiap file biasa namanya (sehingga tidak membacanya, tetapi hanya entri direktori) dan kemudian terus membuat pembacaan penuh dan cepat semua blok data.Setelah hiting file pertama berisi blok buruk, ini
find
akan menyebabkan kernel untuk logread error
on/var/log/system.log
, dan itu baik akan memperlambat atau membawa sistem anda untuk total berhenti. Ini sebagian besar akan tergantung pada kapasitas hard drive untuk memindahkan blok buruk yang ditemukan pada kumpulan internal yang didedikasikan untuk tugas perbaikan yang biasa ini. File ini mengandung blok buruk akan menjadi nama belakang yang dicetak olehfind
.Tuliskan nama file ini di selembar kertas! Katakanlah nama file ini adalah:
Pada titik ini Anda mungkin memiliki kemungkinan untuk membunuh
find
dengan cepat dengan menekan ctrl+ C. Jika mematikannya dengan baik gagal, matikan saja Mac Anda.Setelah mem-boot ulang Mac Anda, langsung periksa file yang berisi blok buruk:
Jika perintah berakhir dengan benar, maka kesalahan itu cukup ringan untuk disk Anda untuk dapat membaca file ini dan realokasi blok buruk.
Dalam kasus terakhir ini, Anda harus mempertimbangkan untuk mengganti disk Anda dan bekerja dari cadangan terakhir Anda. Beberapa file lain mungkin juga mengandung blok buruk dan mungkin tetap tidak terdeteksi sejak lama selama Anda tidak membacanya.
Kernel tidak akan menjalankan kesalahan baca pada blok yang tidak pernah Anda baca.
sumber
May 10 20:42:15 ICE kernel[0]: disk0s2: I/O error.
pop up di log, tetapi tidak tahu ke mana file itu dipicu. Tapi kemudian perintah itu berjalan dengan sangat bahagia.dd
tidak memperbaiki apa pun, tujuan perintah ini adalah untuk menyalin data dan mengonversinya secepat mungkin. Disk masih dapat memperbaiki kesalahan cahaya. Tetap waspada, harga disk tidak ada bandingannya dengan pekerjaan Anda.Reboot dalam mode pengguna tunggal dengan menahan Command+ Ssaat boot. Saat Anda melihat prompt (harus terlihat seperti
root #
atau sesuatu yang serupa), ketikfsck -f
dan tekan Return. Ini adalah alat pemeriksaan konsistensi sistem file bawaan Mac dan memungkinkan Anda untuk menemukan dan memperbaiki kesalahan dengan sistem file startup. Jalankan perintah ini sampai Anda tidak melihat**The volume [volume name] was modified.**
atau alat gagal tiga kali berturut-turut.Jika alat gagal, itu mungkin menunjukkan masalah yang lebih besar (tapi saya tidak bisa memberi tahu Anda apa tanpa melihat output dari alat). Bagaimanapun, pastikan Anda telah mencadangkan semua yang Anda bisa sebelum menjalankan alat disk apa pun. Setelah selesai, ketik
reboot
prompt dan tekan enter untuk (Anda dapat menebaknya!) Reboot komputer Anda.Untuk informasi tambahan, Anda dapat menemukan halaman manual fsck di sini .
sumber
fsck
&Disk Utility
sedang memeriksa integritas struktur sistem file. Mereka membaca blok disk yang dialokasikan untuk struktur sistem file. Mereka tidak dibuat untuk memverifikasi integritas blok data. Oleh karena itu mereka dapat berjalan pada disk dengan blok gagal tanpa meningkatkan kesalahan baca. Jika Anda ingin memeriksa disk Anda, bahkan blok yang mungkin rusak tetapi sebenarnya tidak digunakan, cukup gunakan alat dasar sebagaidd if=/dev/disk0 of=/dev/null ibs=1k
dan dalam menjalankan jendela shell laintail -f /var/log/system.log
. Ini gratis, ekstrem, dan tidak akan menyembunyikan kesalahan apa pun.Saya akan sangat merekomendasikan DiskWarrior untuk membangun kembali katalog disk dan untuk memindai file yang berpotensi rusak .
Selama katalog dibangun kembali, itu juga dapat memberi tahu Anda jika mengalami penundaan karena kerusakan disk.
sumber
Dengan menonaktifkan jawaban Buscar, Anda dapat melakukan ini secara otomatis menggunakan beberapa perintah baris foo yang cukup berat.
sumber
Seperti yang Anda katakan, bahkan tidak jelas file-file itu rusak, setidaknya Mac Anda tidak berpikir begitu.
Setiap OS membuat file tidak bergerak yang diperlukan untuk operasinya (Pulihkan poin, file yang saat ini aktif, dll ....). Beberapa defrag akan menunjukkannya, beberapa tidak.
Fakta bahwa Anda tidak dapat mengakses atau memindahkan mereka tidak berarti mereka rusak.
Biasanya Mac sangat baik dalam merawatnya sendiri.
Menggunakan pemeliharaan Apple dilakukan dengan: membuka Terminal dan ketik:
diikuti oleh Return, masukkan kata sandi Administrator Anda, dan OS X akan mengurus semuanya untuk Anda.
Lihat di Konsol untuk laporannya jika Anda tertarik.
Saat dalam tampilan Konsol (cari) untuk setiap kesalahan I / O yang akan menunjukkan disk Anda mulai mengalami masalah, untuk memuji Utilitas Disk dan temuan fsck.
Kadang saya menggunakan alat gratis bernama OnyX untuk tugas pemeliharaan tambahan. Itu dibuat oleh Perancis dan karena mereka makanan itu hanya luar biasa :)
OnyX adalah utilitas multifungsi untuk OS X yang memungkinkan Anda untuk memverifikasi disk startup dan struktur file sistemnya, untuk menjalankan berbagai tugas pemeliharaan sistem, untuk mengkonfigurasi beberapa parameter tersembunyi Finder, Dock, QuickTime, Safari, Mail, iTunes , jendela masuk, Spotlight, dan banyak aplikasi Apple, untuk menghapus cache, untuk menghapus sejumlah file dan folder tertentu yang mungkin menjadi rumit, dan banyak lagi.
Dengan semua ini, saya tidak mempertanyakan keputusan Anda untuk menggunakan defragmenter (iDefrag) karena saya tidak mengetahuinya, melainkan menawarkan solusi alternatif.
sumber
fsck
sepertinya hanya peduli dengan masalah sistem file, bukan memblokir masalah aksesibilitas. Konsol menunjukkan kesalahan hanya ketika saya secara manual mencoba menyalin / membaca data dari salah satu file yang rusak ini, itu tidak membantu dalam menemukan mereka.Seburuk kedengarannya, sebelum melakukan apa pun Anda harus menduplikasi semua data Anda ke drive yang dikenal baik. Jika boot dari installer dan menyalin data gagal, ada utilitas baris perintah yang disebut 'dd' yang dapat melakukan duplikasi tingkat rendah dan dengan cara yang jauh lebih tanpa kompromi.
untuk informasi lebih lanjut tentang dd termasuk penggunaan dan sintaksis yang tepat.
Pilihan lain untuk posting Matt, boot mode pengguna tunggal, dan jalankan
berulang-ulang sampai fsck berhenti melaporkan kesalahan.
Memilih posting Adam, DiskWarrior adalah aplikasi yang mudah digunakan tetapi sangat kuat yang akan melaporkan kegagalan HDD, memeriksa kesalahan file individu dan memperbaikinya jika memungkinkan, serta membangun kembali dan mengoptimalkan struktur direktori.
Solusi lain yang mungkin terdengar tidak masuk akal tetapi seringkali merupakan upaya terakhir untuk memulihkan data dengan banyak bukti anakdotal untuk sukses adalah dengan menarik drive, melindunginya dari kelembaban menggunakan beberapa lapis tas freezer, dan menaruhnya di freezer Anda untuk 30-45 menit. Kemudian ketika drive dingin, pasang drive di dock usb eksternal, dan gunakan sistem sementara lain untuk mencoba lagi menyalin data yang rusak ke drive lain. Umumnya, ini digunakan jika ada masalah perangkat keras dan drive gagal. Jika Anda dapat menduplikasi seluruh drive dengan data Anda utuh, ini sangat ideal, karena sering kali partisi ulang dan memformat ulang akan memberikan drive yang baru seumur hidup.
sumber
fsck
daftar "hal-hal yang berpikir disk baik-baik saja", saya telah menjawab jawaban yang menyebutkanfsck
diskon kegunaannya.fsck
dan Disk Utility melakukan banyak fungsi yang sama, dan itu untuk beroperasi pada struktur sistem file, bukan pada level blok. Saya memang mencoba cukup spesifik bahwa ini adalah masalah blok, bukan masalah sistem file.Untuk satu file yang tidak dapat dibaca secara keseluruhan karena kesalahan pembacaan disk, Anda dapat menggunakan
dd
utilitas untuk menduplikasi file ke volume eksternal, menggantikan NUL byte untuk blok yang tidak dapat dibaca. Sangat disarankan untuk menggandakan ke volume yang berbeda (mis. "Disk USB" pada contoh di bawah).Contoh:
Dengan menggunakan blok 512-byte, jumlah maksimum blok yang dapat dibaca akan dipulihkan.
Pemulihan mungkin memakan waktu lama, karena kernel akan memblokir untuk beberapa waktu pada setiap pembacaan yang gagal.
sumber