Tidak Dapat Menulis Nol ke Sektor Buruk / Hard Disk Tidak Menghitung Sektor yang Direalokasi

10

Saya memiliki drive yang melaporkan bahwa sektor yang tertunda saat ini adalah "45". Saya telah menggunakan badblock untuk mengidentifikasi sektor-sektor dan saya telah mencoba menulis nol kepada mereka dengan dd .

Dari apa yang saya pahami, ketika saya mencoba menulis data langsung ke sektor-sektor buruk, itu akan memicu realokasi, mengurangi sektor tertunda saat ini menjadi satu dan meningkatkan jumlah sektor yang dialokasikan kembali.

Namun, pada disk ini baik Reallocated_Sector_Ct dan Reallocated_Event_Count nilai mentahnya adalah 0, dan dd gagal dengan kesalahan I / O ketika saya mencoba menulis nol ke sektor buruk. Namun, dd berfungsi dengan baik ketika saya menulis ke sektor yang baik.

# dd if=/dev/zero of=/dev/sdb bs=512 count=1 seek=217152
dd: error writing ‘/dev/sdb’: Input/output error

Apakah ini berarti drive saya, dalam beberapa hal, tidak memiliki sektor cadangan yang dapat digunakan untuk realokasi? Apakah drive saya secara umum adalah orang yang mengerikan? (Drive sebenarnya bukan milik saya, saya sedang membantu seorang teman. Mereka mungkin baru saja mendapatkan drive murah atau sesuatu.)

Dalam hal ini relevan, berikut adalah output dari smartctl -i :

Model Family:     Western Digital Caviar Green (AF)
Device Model:     WDC WD15EARS-00Z5B1
Serial Number:    WD-WMAVU3027748
LU WWN Device Id: 5 0014ee 25998d213
Firmware Version: 80.00A80
User Capacity:    1,500,301,910,016 bytes [1.50 TB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS (minor revision not indicated)
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Fri Oct 18 17:47:29 2013 CDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

UPDATE:
Saya telah menjalankan shreddi disk, yang menyebabkan Current_Pending_Sector menjadi nol. Namun, Reallocated_Sector_Ct dan Reallocated_Event_Count masih nol, dan dd sekarang dapat menulis data ke sektor-sektor yang sebelumnya tidak dapat. Ini menuntun saya dengan beberapa pertanyaan lain:

  • Mengapa realokasi tidak di recored oleh disk? Saya mengasumsikan realokasi berlangsung karena saya sekarang dapat menulis data langsung ke sektor ini dan tidak bisa sebelumnya.

  • Mengapa rusak menyebabkan realokasi dan tidak dd? Apakah fakta bahwa shred menulis data acak bukan hanya nol membuat perbedaan?

MetaNova
sumber
Bagaimana nilai-nilai SMART lainnya? Apakah Uncorrectable Sector Countlebih dari nol?
Synetech
Offline_Uncorrectable, yang saya asumsikan adalah hal yang sama, memiliki nilai mentah 25.
MetaNova
Ya benar, dan sepertinya drive memang dalam kondisi yang buruk. Anda dapat memeriksa nilai-nilai pada tabel ini , memberikan perhatian khusus pada baris merah (nilai-nilai kesehatan kritis). Taruhan terbaik adalah menyalin (tidak memindahkan) segala sesuatu yang berharga / tak tergantikan ke tempat lain, reboot untuk memberinya siklus daya, dan jika masih berfungsi, berikan penghapusan yang baik (lebih disukai dengan alat khusus sendiri , dan sisihkan sebagai penyimpanan cadangan untuk data yang tidak penting seperti video yang diunduh
Synetech
Terimakasih atas tanggapan Anda. Pertanyaan utama saya mungkin adalah mengapa ia tidak dapat merealokasi sektor-sektor tersebut. Bukankah seharusnya hanya mendeteksi sektor-sektor yang buruk, menghindari mereka ke dalam kekosongan, merealokasi, dan melanjutkan? Saya tidak khawatir tentang data pada disk karena sudah lama dibersihkan. Teman saya tidak ingin memiliki pemberat kertas 1,5TB jika mereka dapat menghindarinya.
MetaNova
Itu sepertinya hal yang diharapkan, tetapi mungkin itu memiliki kepala yang buruk. Jika demikian, maka mencoba membaca drive akan berfungsi sampai Anda mencoba mengakses platter yang memiliki head yang buruk, maka Anda akan mendapatkan banyak kesalahan read karena tanpa head untuk membaca, seluruh platter tidak dapat diakses. Tentu saja ia mengatakan sektor 45 buruk yang mungkin karena sudah dialokasikan ulang tetapi SMART tidak diperbarui. The garansi berakhir beberapa bulan lalu, tapi Anda dapat mencoba mengirim email mereka dan mungkin mereka akan melakukan penggantian kesopanan.
Synetech

Jawaban:

9

Drive WD15EARS (dan sebagian besar drive yang baru diproduksi lainnya) menggunakan Advanced Format , yang berarti bahwa ukuran sektor fisik nyata dari drive ini adalah 4 KiB, dan ukuran sektor tradisional 512-byte baru saja ditiru. Karena itu, jika satu sektor fisik 4 KiB memburuk, semua 8 sektor 512 byte yang ditiru menjadi tidak dapat dibaca sekaligus.

( Sector Size: 512 bytes logical/physicalOutput dari smartctltidak benar, karena beberapa drive WD15EARS melaporkan ukuran sektor fisik yang salah  - tampaknya drive Anda memiliki versi firmware yang rusak dalam hal itu.)

Selain itu, ketika satu sektor 512 byte yang ditiru ditulis, drive Format Lanjutan sebenarnya perlu membaca seluruh sektor fisik 4 KiB, ubah bagian 512-byte yang sesuai, kemudian tulis seluruh sektor fisik ke media. Jika medianya baik, operasi baca-modifikasi-tulis ini hanya menyebabkan pelambatan yang signifikan dibandingkan dengan drive dengan sektor fisik 512-byte nyata. Namun, jika sektor fisik 4 KiB buruk dan tidak dapat dibaca, operasi penulisan apa pun yang tidak menulis ulang sektor tersebut sepenuhnya akan gagal. Karena itu, Anda tidak bisa memaksa realokasi sektor pada drive tersebut menggunakan dddengan bs=512 count=1 - Anda harus menggunakan setidaknya bs=512 count=8dan pastikan bahwa jumlah sektor diseek= opsinya adalah kelipatan 8. (Ini mengasumsikan bahwa jumper "Kompatibel dengan Windows XP" tidak diinstal, jika tidak, offset pelurusan yang ditambahkan oleh jumper ini juga harus diperhitungkan.)

Alasan lain mengapa pemaksaan realokasi dengan ddmungkin gagal adalah bahwa secara default Linux menggunakan cache di lapisan blok untuk mengakses perangkat blok, dan ini dapat menyebabkan operasi baca-modifikasi-tulis dalam perangkat lunak, yang juga akan gagal ketika sektor yang tidak dapat dibaca ditemukan. Anda dapat menambahkan oflag=directopsi untuk memotong cache ini untuk perangkat yang ditentukan oleh of=...(ada juga iflag=directopsi, yang berlaku untuk perangkat input).

Sergey Vlasov
sumber
Terima kasih, terima kasih, terima kasih, ini sangat membantu. Saya membaca label pada drive dan tertulis "format maju". Saya tahu apa artinya sekarang ... Apakah Anda tahu, tentang drive tidak melaporkan sektor yang dialokasikan kembali?
MetaNova
1
"sektor yang tertunda saat ini" belum tentu sektor yang buruk, disk hanya mengalami sedikit kesulitan membacanya sebelumnya dalam pemeriksaan siaga, mungkin karena tidak menulis di sana dalam waktu yang lama dan data mulai memudar (yaitu melemahnya medan magnet ). Menulis data baru ke sektor itu menyegarkan data di sektor itu dengan data baru yang sangat terbentuk pada disk. Jadi jika Anda menulis ke sektor yang tertunda, disk akan menganggapnya ok sekarang. Anda harus mencoba membaca kembali data dari sektor-sektor tersebut untuk mengonfirmasi mereka stabil.
BeowulfNode42
untuk orang-orang yang tidak peduli dengan data pada disk dan tidak ingin menemukan daftar sektor yang tepat atau melakukan penghitungan sektor, hitung saja seluruh disk dengan ukuran blok kelipatan 4KiB, seperti 16MiB. Kemudian gunakan ukuran blok 4KiB untuk bagian terakhir dari disk yang lebih kecil dari ukuran blok yang dipilih sebelumnya.
BeowulfNode42
0

Saya harus melakukan ini baru-baru ini dan menemukan bahwa menjalankan rusak pada seluruh disk bekerja dengan sangat baik. Meskipun rusak tidak berguna untuk tujuan yang dimaksudkan kecuali pada disket, ia melakukan apa yang diperlukan untuk mendapatkan penyembuhan diri terjadi pada blok yang buruk.

Emil
sumber