"Kesalahan input / output" saat mengakses direktori

80

Saya ingin mendaftar dan menghapus konten direktori pada hard drive yang dapat dilepas. Tapi saya sudah mengalami "Kesalahan input / output":

$ rm  pic -R
rm: cannot remove `pic/60.jpg': Input/output error
rm: cannot remove `pic/006.jpg': Input/output error
rm: cannot remove `pic/008.jpg': Input/output error
rm: cannot remove `pic/011.jpg': Input/output error

$ ls -la pic
ls: cannot access pic/60.jpg: Input/output error
-????????? ? ?    ?         ?            ? 006.jpg
-????????? ? ?    ?         ?            ? 006.jpg
-????????? ? ?    ?         ?            ? 011.jpg

Saya bertanya-tanya apa masalahnya?

Bagaimana saya bisa memulihkan atau menghapus direktori picdan semua kontennya?

OS saya adalah Ubuntu 12.04, dan hard drive yang dapat dilepas memiliki sistem file ntfs. Direktori lain yang tidak berisi atau di picdalam hard drive yang dapat dilepas berfungsi dengan baik.


Ditambahkan:

Bagian terakhir dari keluaran dmesgsetelah saya mencoba daftar isi direktori:

[19000.712070] usb 1-1: new high-speed USB device number 2 using ehci_hcd
[19000.853167] usb-storage 1-1:1.0: Quirks match for vid 05e3 pid 0702: 520
[19000.853195] scsi5 : usb-storage 1-1:1.0
[19001.856687] scsi 5:0:0:0: Direct-Access     ST316002 1A               0811 PQ: 0 ANSI: 0
[19001.858821] sd 5:0:0:0: Attached scsi generic sg2 type 0
[19001.861733] sd 5:0:0:0: [sdb] 312581808 512-byte logical blocks: (160 GB/149 GiB)
[19001.862969] sd 5:0:0:0: [sdb] Test WP failed, assume Write Enabled
[19001.865223] sd 5:0:0:0: [sdb] Cache data unavailable
[19001.865232] sd 5:0:0:0: [sdb] Assuming drive cache: write through
[19001.867597] sd 5:0:0:0: [sdb] Test WP failed, assume Write Enabled
[19001.869214] sd 5:0:0:0: [sdb] Cache data unavailable
[19001.869218] sd 5:0:0:0: [sdb] Assuming drive cache: write through
[19001.891946]  sdb: sdb1
[19001.894713] sd 5:0:0:0: [sdb] Test WP failed, assume Write Enabled
[19001.895950] sd 5:0:0:0: [sdb] Cache data unavailable
[19001.895953] sd 5:0:0:0: [sdb] Assuming drive cache: write through
[19001.895958] sd 5:0:0:0: [sdb] Attached SCSI disk
[19113.024123] usb 2-1: new high-speed USB device number 3 using ehci_hcd
[19113.218157] scsi6 : usb-storage 2-1:1.0
[19114.232249] scsi 6:0:0:0: Direct-Access     USB 2.0  Storage Device   0100 PQ: 0 ANSI: 0 CCS
[19114.233992] sd 6:0:0:0: Attached scsi generic sg3 type 0
[19114.242547] sd 6:0:0:0: [sdc] 312581808 512-byte logical blocks: (160 GB/149 GiB)
[19114.243144] sd 6:0:0:0: [sdc] Write Protect is off
[19114.243154] sd 6:0:0:0: [sdc] Mode Sense: 08 00 00 00
[19114.243770] sd 6:0:0:0: [sdc] No Caching mode page present
[19114.243778] sd 6:0:0:0: [sdc] Assuming drive cache: write through
[19114.252797] sd 6:0:0:0: [sdc] No Caching mode page present
[19114.252807] sd 6:0:0:0: [sdc] Assuming drive cache: write through
[19114.280407]  sdc: sdc1 < sdc5 >
[19114.289774] sd 6:0:0:0: [sdc] No Caching mode page present
[19114.289779] sd 6:0:0:0: [sdc] Assuming drive cache: write through
[19114.289783] sd 6:0:0:0: [sdc] Attached SCSI disk
Tim
sumber
1
Kesalahan I / O dapat menjadi masalah perangkat keras (RAM yang rusak atau hard disk). Ini juga bisa berarti sistem file yang rusak atau bug driver; karena ini adalah NTFS saya tidak akan mengesampingkan hal ini.
Gilles

Jawaban:

36

Kesalahan input / output selama upaya akses sistem file umumnya berarti masalah perangkat keras.

Ketik dmesgdan periksa beberapa baris output terakhir. Jika disk atau koneksi ke itu gagal, itu akan dicatat di sana.

EDIT Apakah Anda memasangnya melalui ntfsatau ntfs-3g? Seingat saya, ntfspengemudi lama tidak memiliki dukungan penulisan yang stabil dan sebagian besar ditinggalkan ketika ternyata ntfs-3gsecara signifikan lebih stabil dan aman.

Shadur
sumber
3
Saya menghubungkan hard drive yang dapat dilepas ke Ubuntu 12.04 saya, dan itu sudah terpasang secara otomatis. Jadi saya kira ntfs-3g?
Tim
8
Jangan " tebak ". Periksa - Anda dapat melihat bagaimana semuanya dipasang dengan mengetikkan mountperintah dan melihat output.
Shadur
1
(1) Saya telah menambahkan bagian terakhir dari keluaran dmesgsetelah saya mencoba membuat daftar isi direktori. Saya tidak tahu bagaimana ini membantu. (2) Saya tidak bisa melihat apakah itu dipasang oleh nfts-3g atau ntfs, dengan melihat output dari mount:/dev/sdb1 on /media/removable_drive type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
Tim
2
fuseblkberarti menggunakan metode fuserfilesystem-in-userspace yang ntfs-3gdigunakan. Jadi, Anda baik dalam hal itu.
Shadur
19

Sebagai Sadhur menyatakan ini mungkin disebabkan oleh masalah perangkat keras disk dan dmesgoutput adalah tempat yang tepat untuk memeriksa ini.

Anda dapat mengeluarkan pemindaian permukaan disk Anda dari Linux /sbin/badblocks /dev/sda.

Periksa halaman manual untuk tes yang lebih menyeluruh dan perbaikan dasar (blok relokasi). Ini semua filesystem-agnostik, sehingga aman bahkan dengan filesystem NTFS karena beroperasi pada level 'permukaan disk'.

Saya pribadi membuat ini berjalan setiap bulan dari cron. Tentu saja Anda perlu memeriksa apakah Anda menerima cron mail di kotak surat Anda (yang biasanya tidak demikian halnya secara default). Email-email ini berakhir /var/mail/$USERatau serupa.

Saya membuat /etc/cron.d/badblocks:

30 4 * * 3 root [ -x /sbin/badblocks ] && [ $(date +\%d) -le 7 ] && /sbin/badblocks /dev/sda
jippie
sumber
Terima kasih! Untuk menjalankan perintah yang Anda sarankan, apakah itu /sbin/badblocks /media/removable_drivedalam kasus saya?
Tim
Tidak. Menurut keluaran dmesg Anda harus menggunakan sdb: /sbin/badblocks /dev/sdbatau sdc. Saya benar-benar tidak tahu apa yang terjadi / Anda lakukan daridmesg
jippie
Anda dapat menemukan /dev/sd{x}disk Anda dengan fdisk -lperintah
lucidyan
ingat aplikasi badblocks menerima blok awal dan akhir untuk bekerja jika Anda ingin "menangguhkan / melanjutkan" :)
Aquarius Power
9

chkdskSistem file Anda rusak, untuk volume NTFS Anda harus menjalankan sistem di bawah windows, tetapi hampir tidak mungkin untuk dipulihkan. Terkadang Anda mungkin perlu memformat disk.

bunga aster
sumber
Terima kasih! Direktori saya yang lain baik-baik saja. Tidak bisakah saya memformat seluruh drive, hanya mengambil kembali ruang dari direktori yang dimaksud?
Tim
1
@Tim, Anda harus menyalin semua yang lain, memformat dan menyalinnya kembali ... saya tidak tahu apakah orang dapat menghapus satu node ... tidak terbiasa dengan struktur NTFS
daisy
3
Sebelum memformat, coba perintah badblocksdi Linux.
jippie
7

Solusi yang berfungsi untuk saya adalah menurunkan ntfs-3gversi dari rilis 2014 ke rilis 2012. Ini harus menyelesaikan masalah akses partisi ntfs Anda. Dalam jangka panjang ini bukan solusi karena pada akhirnya Anda harus menjalankan rilis terbaru.

Info lebih lanjut di sini

GAD3R
sumber
3
Terima kasih banyak. Itu memecahkan masalah saya. Saya menginstal rilis stabil terbaru (2016.2.22) dari sumber dan sekarang bekerja dengan sempurna. Instruksi pemasangan yang saya gunakan: tuxera.com/community/open-source-ntfs-3g
Ricardo Pereira
Oke, itu bagus untuk diketahui. Jadi pada dasarnya ada jendela antara 2012 dan awal 2016 di mana drive tidak berfungsi.
2

Saya hanya ingin menambahkan solusi saya ke utas ini untuk kepentingan orang lain - Saya melakukan beberapa pekerjaan pada sistem saya ketika catu daya saya gagal - saya pasti menghubungkan kembali kabel SATA dalam urutan yang salah seperti ketika saya beralih, semuanya bekerja kembali - tidak tahu mengapa boot disk diperlukan pada port SATA tertentu, mungkin, menjadi jawaban untuk orang lain.

Alan Campbell
sumber
2

Tidak ada yang menyebutkan apa yang harus dilakukan jika alat Linux tidak berfungsi dan hanya Mac, tetapi bukan Windows, yang tersedia.

Dapat diperbaiki pada OS X dengan Paragon NTFS

Dalam kasus saya gparteddikatakan pergi mencari PC Windows yang tidak ditemukan. Tapi ada Mac, yang menyediakan perangkat lunak yang luar biasa ini. Menginstal versi uji coba, melakukan verifikasi , lalu memperbaiki - dan kesalahan!

BVengerov
sumber
Saya punya kasus di macos ketika kesalahan seperti itu dihasilkan oleh penggunaan sshfs (tampaknya) dalam membangun toolchain. Menginstal osxfuse & sshfs via brew membantu.
sdd
2

Saya hanya ingin berbagi pengalaman: pada FreeBSD 10.3, saya memasang hard drive eksternal saya

$ sudo ntfs-3g /dev/da0s1 /media

Di dalam hard drive, saya melakukan a mkdiruntuk membuat direktori dan kemudian memindahkan beberapa file ke sana, tentu saja dengan mvperintah. Akhirnya saya melakukan perintah berikut:

$ sudo sync

Kemudian saya memasang hard drive pada mesin Linux dengan kernel 4.4.0-78-generik. Sekarang Ketika saya daftar isi hard drive, direktori yang dibuat di FreeBSD, bernama Jeff, ditampilkan seperti di bawah ini:

$ ls -lhrtci
ls: cannot access 'Jeff': Input/output error
total 20K
  ? d????????? ? ?    ?       ?            ? Jeff

masukkan deskripsi gambar di sini

Juga, ketika mencoba untuk menghapus Jeffdirektori, saya menerima pesan kesalahan berikut:

$ sudo rm -f -R Jeff
rm: cannot remove 'Jeff': Input/output error

masukkan deskripsi gambar di sini

Saya tidak bisa menghilangkan Jeffdirektori pada mesin Linux, oleh karena itu saya menggunakan mesin FreeBSD dan memasang kembali hard drive pada FreeBSD lagi. Tetapi perintah ls, cddan rmFreeBSD menghasilkan hal yang sama Input/output error. Sepertinya ada bug pada ntfs-3gpaket FreeBSD .


MEMPERBARUI

Saya memindahkan semua data saya dari hard drive eksternal ke mesin Linux, tentu saja file yang rusak Jefftidak dapat dipindahkan karena kesalahan I / O. Kemudian saya memformat ulang hard drive eksternal dengan penekanan volume dan bad sector memeriksa seperti ini:

$ sudo mkfs.ntfs /dev/sdb1

Dan kemudian memindahkan semua data kembali ke volume eksternal. Dengan cara ini, saya kehilangan file yang rusak bernama Jeff, namun, hard drive eksternal saya bersih dari kesalahan I / O.

pengguna3405291
sumber
0

Saya merilis bahwa ketika saya mencoba mengakses disk yang menyebabkan kesalahan ini, ia mencoba untuk menulis file terakhir yang disalin telah ditulis ke file terakhir kemudian upaya akses gagal karena catatan yang sudah ditulis tidak cocok dengan item yang disalin terakhir sehingga gagal. Cara paling sehat untuk menyelamatkan disk adalah dengan menghapus item terakhir atau item yang disalin di windows.

cagcak
sumber