Periksa dan perbaiki kesalahan kartu SD dalam Android itu sendiri?

42

Terkadang kartu SD saya "rusak" dan ini menyebabkan banyak kesalahan baca / tulis. Biasanya, menghubungkan kartu SD ke windows 7 dan memilih opsi "Pemeriksaan Kesalahan" (Klik kanan drive> Alat> Pemeriksaan Kesalahan) menemukan korupsi dan memperbaikinya.

Apakah ada alat atau aplikasi untuk memeriksa kartu SD untuk kesalahan drive dan memperbaikinya dari dalam Android itu sendiri ?

Saya juga ingin menyebutkan bahwa saya berada di root froyo dengan busybox diinstal.

Irfan
sumber
Sudahkah Anda mencoba dengan aplikasi terminal, melakukan sudan menjalankan /system/bin/fsck.exfat?
Izzy
@Izzy Beri akuNo such file or directory
Irfan
Periksa lokasi yang berbeda, mungkinkah itu yang ada /system/xbin? Coba cdmasuk ke direktori, dan ls fsc*untuk memeriksa apa yang tersedia. Pasti ada di suatu tempat :)
Izzy
1
Persis. Busybox mencoba menjadi setipis mungkin. Coba bibi Google dengan "man mount", berfungsi dengan baik :) Dan lihat jawaban saya di bawah ini. Jika ada sesuatu yang tidak jelas, beri komentar di sana (atau temui saya dalam obrolan - meskipun saya tidak akan tersedia di sana selama beberapa jam ke depan, masih ada anggota yang mengetahui lainnya untuk membantu Anda :)
Izzy
2
Jika Anda berulang kali memiliki kesalahan pada kartu SD Anda, Anda harus memastikan bahwa itu benar-benar dari kapasitas yang dinyatakan menggunakan H2testw (tautan hanya dalam bahasa Jerman, perangkat lunak dalam Bahasa Jerman dan Bahasa Inggris. Saya percaya ini adalah rumah resmi meskipun penampilannya berlawanan). Kartu SD yang buruk akan secara otomatis rusak.
Kode Bling

Jawaban:

17

Anda dapat memperbaikinya dengan bantuan root dan emulator terminal (mis. Android Terminal Emulator (atau, sebagai alternatif, menggunakan adb shell). Biner untuk melakukan pekerjaan disebut fsck, dan biasanya terletak di salah satu /system/xbinatau /system/bin. Kadang-kadang Anda memerlukan varian khusus dari itu. , yang mungkin mis disebut fsck.exfatatau sejenisnya. Jadi pertama-tama mari kita pastikan kita menemukan biner yang tepat:

cd /system/xbin
ls fsc*

Jika tidak ditemukan, ulangi dengan /system/bin. Saya akan berasumsi di sini ditemukan di tempat pertama, dan hanya disebut fsck(sesuaikan berikut ini jika itu tidak terjadi).

Karena fsckberasal dari "inti Linux", kita dapat melihat halaman manualnya untuk sintaksisnya. Meskipun mungkin ada beberapa opsi yang tidak berfungsi pada Android, yang paling mendasar seharusnya. Lihat halaman manual yang ditautkan untuk detail (atau jalankan Linux VM dan gunakan man fsckjika halaman itu hilang) - Saya akan tetap berpegang pada dasar-dasar di sini:

Pertama kita perlu menemukan perangkat kartu SD Anda terikat. Jika sudah terpasang, mountperintah akan membantu kami:

mount

Itu saja, pada dasarnya: Periksa output dan lihat di mana kartu SD Anda berada. Biasanya ini sesuatu yang digunakan vold, tetapi berbeda antar perangkat. Output dapat mencakup sesuatu seperti /dev/block/vold/179:17 on /mnt/storage/sdcard- dalam hal ini, bagian pertama dari kutipan saya adalah perangkat kami. Untuk memperbaiki "drive", Anda harus melepasnya terlebih dahulu. Ini dapat dilakukan melalui menu pengaturan, atau, karena kami baru saja di terminal, dengan mengeluarkan

umount /dev/block/vold/179:17

Sekarang kita bisa pergi untuk pekerjaan perbaikan. Sintaks dasarnya adalah:

fsck [options] [-t fstype] <filesystem> [fsoptions]

Jadi pertama-tama kita mencoba pendekatan yang paling sederhana dan fsckangka harapan semuanya sendiri:

fsck -C -r /dev/block/vold/179:17

Yang pada dasarnya berarti: Tampilkan kemajuan (-C), dan selalu meminta pengguna untuk memperbaiki (-r) kesalahan /dev/block/vold/179:17. Jika ini tidak berhasil, periksa halaman manual yang ditautkan untuk opsi lebih lanjut.

Izzy
sumber
4
Anda juga dapat menyelamatkan diri sendiri cdlangkah - langkah jika Anda ingin menggunakan ls /system/bin/fsc*dan ls /system/xbin/fsc*dari apa pun direktori kerja Anda saat ini. Anda bahkan bisa menggabungkan keduanya menjadi satu perintah ls /system/xbin/fsc* /system/bin/fsc*.
eldarerathis
1
Tidak, saya tidak bingung, yang tidak saya sadari adalah pertanyaan ini sebenarnya tentang kartu SD. Jadi ya, saya benar-benar membingungkan beberapa hal. Sebenarnya, Anda dapat memformat kartu SD Anda sebagai ext juga, sehingga mungkin berlaku untuk orang-orang yang melakukannya.
Lie Ryan
1
Poin yang diambil. Meskipun "rata-rata pengguna" (atau yang "ragu") mungkin lebih baik bertahan dengan FAT, setidaknya untuk interoperabilitas. Setidaknya sampai ExtFS didukung pada sebagian besar OS dengan mudah dan secara default tanpa driver tambahan yang diperlukan (tebak Windows adalah dan akan tetap menjadi perangkap di sini, seperti biasa).
Izzy
1
Terima kasih atas jawaban ini, saya pikir itulah yang saya butuhkan. Saya mendapat kesalahan pada umount, apakah Anda harus root?
Marmer Organik
1
@OrganicMarble ya, tentu saja - untuk semua perintah di atas, atau Anda tidak mendapatkan akses ke perangkat (semuanya dimulai dengan /dev) seperti itu.
Izzy
3

terima kasih untuk ini, ini menghemat hariku :)

root@android:/ # mount | grep -i sdcard
/dev/block/nandk /mnt/sdcard vfat rw,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=ascii,shortname=mixed,errors=remount-ro 0 0

root@android:/ # /system/bin/fsck_msdos -y /dev/block/nandk
muda
sumber
Terima kasih telah mengirimkan jawaban ini, ini sangat membantu saya. Dari jawaban yang diterima saya tidak tahu bagaimana cara memperbaiki sistem file vfat. Terpilih.
Marmer Organik
2

Jika Anda berulang kali memiliki kesalahan pada kartu SD Anda, Anda harus memastikan bahwa itu benar-benar dari kapasitas yang dinyatakan menggunakan H2testw (tautan hanya dalam bahasa Jerman, perangkat lunak dalam Bahasa Jerman dan Bahasa Inggris. Saya percaya ini adalah rumah resmi meskipun penampilannya berlawanan). Kartu SD yang buruk akan secara otomatis rusak.

Kode Bling
sumber
Terima kasih atas upvote atas jawaban yang sudah lama terlupakan ini. Seharusnya komentar, tapi saya mungkin tidak memiliki reputasi untuk itu pada saat itu. Saya akan meninggalkan ini di sini untuk saat ini sampai komentarnya ter-upgrade dan terlihat.
Kode Bling
Saya telah meningkatkan komentar Anda.
tak terlupakan
@ unforgettableid Terima kasih, hanya ingin memastikan bahwa semua orang tahu tentang risiko ini. Sungguh menyebalkan kehilangan data.
Kode Bling
OK, jadi sekarang setelah komentar telah di-upgrade, Anda dapat menghapus jawaban ini. :)
tak terlupakan
@unforgettableid akan meninggalkan keduanya untuk saat ini, untuk visibilitas
Code Bling
0

Jika saya tidak salah, Anda dapat memaksa android untuk fsck penyimpanan internal dan eksternal saat reboot dengan melakukan hal berikut tergantung pada rom Anda.

jalankan aplikasi dan jenis terminal

su
touch /forcefsck

Kemudian reboot.

Jika ponsel Anda tidak di-rooting, ini pasti akan gagal.

sumber: http://forum.xda-developers.com/showpost.php?p=57027579&postcount=20

Trekeyus
sumber
Apa yang Anda maksud dengan "tergantung pada ROM Anda"?
tak terlupakan
Trik itu mungkin tidak berfungsi di semua ponsel. telepon yang berbeda mungkin gagal melakukan apa pun. Juga ponsel Anda harus di-root.
Trekeyus
Setelah saya reboot, bagaimana saya bisa tahu apakah fsckbenar - benar berjalan atau tidak?
tak terlupakan
1
-1. Saya telah menurunkan pos Anda. Inilah alasannya: Saya telah menghabiskan lebih banyak waktu untuk menyelidiki masalah ini. Teknik yang Anda sarankan mungkin 100% salah. Mungkin menipu pembaca untuk berpikir bahwa itu membantu, tetapi teknik ini sebenarnya tidak melakukan apa-apa.
tak terlupakan
2
touch /forcefsckhanya akan berfungsi pada perangkat dengan skrip init yang memeriksa keberadaan /forcefsckfile. Saya tidak tahu satu pun perangkat Android yang memiliki skrip init. Jadi, meskipun teknik Anda kemungkinan akan bekerja pada perangkat Debian, Ubuntu, dan Mint, saya sangat ragu bahwa itu akan berfungsi pada perangkat Android apa pun. Jika ada yang pernah menemukan satu pun perangkat Android dengan skrip init yang memeriksa /forcefsck, beri tahu saya! Cukup balas komentar ini.
tak terlupakan