Hard Drive error: data indra buruk / hilang

4

Saya baru-baru ini mencoba memeriksa waktu putar turun hard drive saya dengan perintah berikut:

sudo hdparm -I /dev/sdb | grep level

dan mendapat kesalahan:

SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 0a 00 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Drive membaca & menulis data dengan baik dan mount pada saat startup juga. Saya tidak bisa menjalankan perintah ini di drive ini tanpa kesalahan

Apa artinya ini, dan bagaimana saya bisa menyelesaikan masalah?

Kalamalka Kid
sumber
2
Hai, apakah hdd Anda terhubung melalui port USB? Dalam hal ini, Anda dapat melihat di sini dan memverifikasi jika pemindaian baru (dengan hdd terpasang ke port sata) memberikan kesalahan yang sama.
PieCot
1
ya melalui USB. 3 TB drive tetapi bukan drive sata. usb eksternal
Kalamalka Kid
Apakah ini antarmuka lain selain USB? Jika demikian, Anda dapat mencoba menggunakan antarmuka lain untuk mengulang pemindaian. Namun, mungkin kesalahannya adalah karena koneksi USB dan drive Anda sebenarnya bisa ok.
PieCot
tidak itu hanya USB - drive eksternal
Kalamalka Kid
Drive membaca & menulis data dengan baik dan mount pada saat startup juga. Saya tidak bisa menjalankan commandm ini di drive ini tanpa kesalahan
Kalamalka Kid

Jawaban:

7

sepertinya pengontrol drive Anda tidak mendukung metode penyelidikan, tidak semua chipset usb sata dibuat sama. Anda tidak mengatakan model drive atau controller apa yang Anda gunakan sehingga sulit untuk menawarkan saran lebih lanjut di sini.

Anda dapat menguji ini dengan menghubungkannya ke controller usb lain atau menggunakan drive yang berbeda dengan controller yang sama atau lebih baik masih mengarahkan melalui SATA.

Drive 3TB bisa terlalu besar untuk beberapa pengendali era USB2 jadi saya akan merekomendasikan mendapatkan jembatan usb3 sata yang memiliki reputasi baik, itu akan jauh lebih cepat juga.

Amias
sumber
hai, terima kasih telah mengambil tiem untuk membalas, mesin saya tidak memiliki port sata yang tersedia (hanya ada 1 di intel nuc) .;
Kalamalka Kid
2

Masalah ini biasanya disebabkan oleh implementasi jembatan USB-SATA dan harus terlihat hanya dengan penutup disk yang terhubung USB.

Dalam hal disk USB eksternal, sistem perlu berbicara dengan drive SATA di dalam enklosur menggunakan protokol UAS (USB Attached SCSI) melalui SAT (Terjemahan SCSI / ATA) untuk mengirim perintah ATA melalui SCSI melalui USB. Alasan mengapa hal ini sangat kompleks adalah karena alasan historis.

Di suatu tempat di rantai USB → UAS → SCSI → SAT → SATA beberapa perangkat keras memiliki implementasi yang salah. Biasanya semua ini dilakukan oleh microchip tunggal di dalam kandang yang disebut jembatan USB-SATA dan beberapa varian terkenal adalah ASM1051, ASM1053 dan ASM1153. Dari jumlah tersebut, ASM1051 diketahui bermasalah dan UAS harus dihindari dengan perangkat keras apa pun yang mengandung chip ini. ASM1053 dan ASM1153 mungkin atau mungkin tidak bekerja tergantung pada firmware aktual di dalam chip (pabrikan diizinkan untuk menyesuaikan firmware, implementasi referensi tidak berfungsi dengan benar). Misalnya, banyak penutup yang dibuat oleh Seagate menggunakan ASM1153 dengan firmware khusus dan memiliki masalah dengan beberapa perintah ATA bahkan jika chip yang sama tidak bekerja dengan benar dengan firmware referensi. (Misalnya, beberapa penutup oleh Seagate berfungsi selama OS tidak pernah mengirim perintah 12 atau 16 bit. Linuxusb_storagemendukung quirk tuntuk tujuan ini.) Pengguna akhir biasanya tidak dapat mengganti firmware, jadi jika Anda memiliki chip / firmware yang buruk, satu-satunya pilihan Anda adalah mengeluh kepada pabrikan. Dalam hal Seagate, mereka "memperbaiki" masalah dengan menyatakan bahwa mereka secara resmi hanya mendukung Windows dan OS X. Seagate saat ini secara resmi bekerja dengan komunitas Linux, jadi mungkin produk mereka akan benar-benar berfungsi di masa depan.

Satu-satunya cara nyata untuk mengetahui chip jembatan adalah dengan membongkar penutup dan memeriksa tanda-tanda di microchip yang sebenarnya.

Mutakhirkan: "Seagate Backup Plus Hub" enklosur telah berfungsi dengan benar jembatan USB-SATA dan UAS berfungsi dengan benar (Perhatikan bahwa ini adalah produk yang berbeda dari "Seagate Backup Plus"!) Namun, karena riwayat buruk oleh lampiran Seagate, kernel Linux menerapkan quirk tsecara default yang mencegah enklosur ini dari menggunakan semua fitur SATA. Anda dapat mengaktifkan dukungan SATA penuh termasuk fitur SMART dengan perintah berikut:

echo "0bc2:ab38:" > /sys/module/usb_storage/parameters/quirks

Perhatikan tanda titik dua dan setelah itu tidak ada - itu menonaktifkan semua kebiasaan bawaan untuk vendor yang dipilih: produk. Periksa vendor dan id produk Anda lsusbjika perlu.

Jika perangkat Anda cukup bermasalah, Anda mungkin perlu menonaktifkan dukungan UAS sepenuhnya. Ini bisa dilakukan dengan uquirk. Misalnya, jika saya ingin menonaktifkan dukungan UAS di Seagate Backup Plus Hub, saya akan menjalankan yang berikut sebagai root:

echo "0bc2:ab38:u" > /sys/module/usb_storage/parameters/quirks

Setelah itu, disk eksternal hanya akan menggunakan fitur perangkat penyimpanan USB yang lebih lambat tetapi biasanya berfungsi dan semuanya berjalan dengan lambat ... Jika Anda hanya perlu mentransfer beberapa file besar perbedaannya tidak terlalu buruk. Jika Anda memiliki banyak file kecil, perbedaan antara memiliki dukungan UAS yang berfungsi mungkin lebih dari 10x perbedaan kecepatan.

Mikko Rantalainen
sumber
0

Info tambahan untuk sistem / perangkat yang tweak modprobe di atas dan / atau tidak berpengaruh (mis. Raspberry Pi 3):

Keunikan harus ditambahkan ke parameter boot. Untuk RPi 3 / Raspbian, parameter boot ada di file /boot/cmdline.txt.

[other command line parameters...] usb_storage.quirks=YOUR_VENDOR_ID:YOUR_DEVICE_ID:QUIRK_FLAGS

Dalam kasus saya, saya perlu menghapus tanda tanda quirks untuk perangkat saya, jadi saya menambahkan ini ke /boot/cmdline.txt:

usb_storage.quirks=0bc2:a0a4:

Ini menyelesaikan masalah saya, semoga membantu orang lain

Tom
sumber