Bagaimana saya bisa mencegah kartu SD Pi saya rusak begitu sering?

47

Saya mendapatkan kesalahan I / O saat boot dan kemudian mendapatkan 'kesalahan' ini: (Saya menjalankan versi terbaru dari Raspbian)

Entering kdb (current=0xca82ac80, pid 1) due to keyboard entry
kdb> _

Dan saya telah melihatnya sebelumnya, dan dijelaskan bahwa kartu SD saya rusak karena saya tidak mematikan dengan benar. Satu minggu kemudian, saya tidak berurusan dengan kesalahan ini, sampai daya berkedip-kedip tiga kali dan sekarang saya tidak bisa boot lagi. Sepertinya saya sedang mempersiapkan kembali kartu SD saya setiap hari !!! Saya tidak suka ini, belum lagi saya suka kemampuan Pi saya. Tapi 'breakpoint' ini membuatku gila! Apakah ada cara saya bisa mencegah ini atau memperkuat sesuatu sehingga tidak terjadi jika listrik padam? Ada saran? Terima kasih!

PS File zip saya tidak rusak dan layanan ekstraksi saya adalah Win32DiskImager

pengguna151324
sumber
2
Apakah kartu Anda ada dalam daftar ini
Butters
apakah Anda pernah memikirkan UPS?
lenik
@lenik Apakah Anda mengatakan saya harus memiliki sesuatu seperti pelindung lonjakan?
user151324
Karena Anda mematikan benda itu tanpa shutdown yang tepat?
jippie
1
@coding_corgi lebih mungkin ada sesuatu dengan baterai di dalam, yang menyediakan daya selama 5-10 menit setelah pemadaman listrik, yang memungkinkan Anda untuk mengabaikan kibasan daya pendek dan memberi Anda waktu untuk mematikan (secara otomatis?) komputer Anda ketika daya turun untuk waktu yang lama waktu. Singkatnya, ini disebut "Uninterruptable Power Supply" atau UPS.
lenik

Jawaban:

48

Saya tidak akan menulis tentang memeriksa daftar kartu SD dan HW Anda, karena Anda kemungkinan besar sudah memeriksa semua ini. Apa yang akan saya tulis adalah solusi permanen, yang memungkinkan untuk mengatasi masalah sejak awal, dan memperbaiki masalah secara permanen .

Jika Anda tidak ingin kartu SD Anda rusak saat Anda mematikan sakelar daya, Anda harus menggunakannya dalam mode hanya baca. Jika tidak ada yang ditulis ke kartu SD Anda, itu tidak akan rusak tidak peduli apa yang Anda lakukan.

Solusi yang jelas (tetapi tidak berfungsi) akan menjadi upaya untuk membalik saklar "read-only" di sisi kartu SD, sayangnya ini tidak berfungsi karena skema menunjukkan saklar ini dialihkan ke mana-mana dan posisinya umumnya diabaikan.

Pendekatan lain yang lebih halus (tetapi berfungsi) adalah memodifikasi Anda /etc/fstabuntuk me-mount semua partisi Anda hanya-baca. Kelemahan dari pendekatan ini adalah log Anda harus ditulis di tempat lain (USB stick, drive RAM?) Dan dalam hal drive RAM log tidak akan bertahan selama reboot. Untuk melakukan ini:

  1. Salin gambar RPi ke kartu SD Anda menggunakan metode apa pun yang Anda suka.
  2. Boot dari SD dan raspi-configakan mulai secara otomatis. Jangan "Perluas sistem file", cukup atur zona waktu Anda dan pengaturan internasional.
  3. Jalankan sudo fdisk /dev/mmcblk0, tekan 'p' untuk mencetak tabel partisi saat ini. Kemudian masukkan perintah berikut:

    n        Create a new partition
    [enter]  Make a primary partition
    [enter]  Use the default number
    [#]      1 greater than the end of mmcblk0p2
    [enter]  Expand to the end of the SD card
    w        Write the partition table and exit
    
  4. Edit /etc/fstab. Seharusnya terlihat seperti berikut ini:

    proc            /proc     proc    defaults 0 0
    /dev/mmcblk0p1  /boot     vfat    ro       0 0
    /dev/mmcblk0p2  /         ext4    ro       0 0
    /dev/mmcblk0p3  /home     ext4    defaults,errors=remount-ro  0  1
    none            /var/run  ramfs   size=1M  0 0
    none            /var/log  ramfs   size=1M  0 0
    
  5. Jalankan sudo partprobeuntuk mengenali partisi baru.

  6. Format dengan partisi baru Anda sudo mkfs --type ext4 /dev/mmcblk0p3.
  7. Mulai ulang.

Jika karena alasan tertentu Anda perlu membuat perubahan pada sistem Anda, Anda dapat mengount ulang partisi read-only dengan akses tulis:

sudo mount -o remount,rw /dev/mmcblk0p2
lenik
sumber
Tunggu, saya tidak bisa menulis ke kartu SD saya jika saya melakukan ini? Atau hanya saat boot?
user151324
1
@coding_corgi Ini harus berhenti menulis ke kartu SD sepenuhnya.
apnorton
mengapa Anda perlu menulis ke kartu SD Anda? menulis ke SD + matikan = FS korupsi, Anda dapat menggunakan stik USB atau membuat partisi terpisah pada kartu SD jika Anda perlu menyimpan beberapa data. dalam hal ini setidaknya sistem Anda akan bangkit dan berjalan, dan kemudian Anda dapat memeriksa data Anda untuk kemungkinan korupsi.
lenik
@anorton ini berhenti menulis akses ke dua partisi pertama pada kartu SD, tetapi tidak ada yang mengatakan Anda tidak dapat membuat partisi lain, atau menggunakan media yang berbeda untuk menyimpan data. misalnya, hanya-baca RasPi yang menulis data melalui jaringan - bisa menjadi solusi yang sangat andal.
lenik
1
Saya menulis data video kartu SD saya dari kamera raspi dan mati berkali-kali! Tidak sekali pun saya memiliki masalah dengan boot, menarik kabel atau sistem crash. Baca saja bagus untuk produksi saat Anda mencolokkan dan mainkan. Masalah ini seharusnya tidak terjadi selama pengembangan dengan cara apa pun - saya kira membaca saja akan mengacaukan datanya karena sesuatu terjadi pada tingkat yang lebih tinggi daripada yang bisa ditangani oleh kernel.
Piotr Kula
4

Bergantung pada apa Anda menggunakan RPi, Anda mungkin dihasut dalam IPE, yang merupakan "rasa anti-bukti Raspbian".

Saya berencana menggunakannya untuk mem-boot RPi saya. Jika saya ingin data ditulis, saya akan menggunakan drive USB yang akan saya mount hanya baca (saya lebih suka SD saya aman dan merusak drive USB daripada harus memperbaiki SD saya)

Lihat beranda IPE

Seperti ditunjukkan di sana, "Juga, gunakan" ipe-rw "dan" ipe-ro "untuk mengalihkan sistem file root ke mode yang dapat ditulis atau hanya-baca."

lauhub
sumber
2

Saya telah mengatasi masalah ini dengan menggunakan USB flash drive untuk partisi utama saya.

  1. Kembalikan gambar raspbian ke drive USB

  2. Format kartu SD menjadi gemuk

  3. Salin konten partisi gemuk dari drive USB ke kartu SD

  4. Ubah config.txt pada kartu sd untuk boot dari / dev / sda

Pada dasarnya rpi masih akan boot dari kartu SD, tetapi akan menggunakan drive USB untuk os dan membaca / menulis.

Kartu as
sumber
2

Saya menggunakan UPS Pico UPS yang dirancang khusus untuk Raspberry Pi dan tidak pernah memiliki masalah seperti itu.

Alexander
sumber
1

harap pastikan RPi Anda berjalan pada kecepatan default (mis. CPU pada 700mhz). secara pribadi, saya mengalami kerusakan penyimpanan dengan berbagai kartu SD - tetapi hanya ketika berjalan dari waktu ke waktu. sayangnya, beberapa distribusi (gambar) datang dengan pengaturan yang dipertanyakan di config.txt .

naik opelet
sumber
Saya belum melakukan overclock CPU saya, terima kasih
user151324
coba RPI lain untuk mengecualikan kemungkinan bahwa Anda entah bagaimana cacat atau bahkan rusak
jitter
Saya hanya punya satu
user151324
Anda dapat kehabisan opsi dan meminta RMA ..
jitter
RMA? Apa itu
user151324
1

Jika Raspberry Pi Anda dibekukan maka Anda tidak dapat mematikan dengan benar, maka ini membantu. Saya mematahkan beberapa kartu SD saya sebelum tahu ini:

Tahan Alt + PrintScreen, dan sambil menahan tombol-tombol itu, tekan tombol berikut secara berurutan, satu per satu, dengan jeda beberapa detik di antaranya.

Alt+ PrintScreen+R E I S U O

atau

Alt+ PrintScreen+ R E I S U B(reboot)

Sebuah mnemonic yang berguna untuk diingat yaitu, Reboot Sekalipun Sistem Benar-Benar Rusak.

Ganti "O" untuk "B" untuk mematikan sistem alih-alih reboot (O = off, B = boot).

Sumber: https://www.raspberrypi.org/forums/viewtopic.php?t=176612#p1126262

Almas Dusal
sumber
0

Seperti yang ditemukan di situs elinux. Saya hanya memilih apa yang berlaku untuk situasi Anda, tetapi silakan kunjungi mereka untuk informasi lebih lanjut ...

  • Jika Anda memiliki masalah, periksa apakah Anda memiliki versi firmware terbaru dengan rpi-update
  • Beberapa kartu SD tidak berfungsi pada R-Pi, jadi periksa daftar kartu SD yang diketahui .
  • Jika Anda mengalami masalah dalam menyiapkan kartu SD Anda, Anda mungkin ingin memulai dengan menghapusnya sepenuhnya - terutama jika telah digunakan di tempat lain dan masih berisi data / partisi. Sebaiknya lakukan format LENGKAP (level rendah) dengan cara apa pun karena terkadang dapat menemukan bad sector dan menambahkannya ke daftar abaikan.
    • Pengguna Windows dan Mac dapat mengunduh alat pemformatan dari SD Association: https://www.sdcard.org/downloads/formatter_3/
    • Memformat ulang kartu juga mudah dilakukan dalam kamera digital.
    • Jika Anda secara manual menyiapkan kartu SD Anda di Linux atau Mac OS menggunakan perintah dd, operasi ini akan sepenuhnya menghapus semua data dan partisi yang ada. Pastikan Anda menulis ke seluruh kartu (mis. / Dev / sdd) dan bukan ke partisi yang ada (mis. / Dev / sdd1).
  • Jika Anda memiliki kartu sd yang tidak berfungsi dengan firmware terbaru, silakan ke sini .
  • Pastikan Anda memiliki catu daya yang baik. Coba dan cabut semuanya dan lihat berapa lama itu berlangsung. Pasang kembali item satu per satu untuk menguji stabilitas.

Jika Anda telah mengikuti semua langkah itu maka satu-satunya hal yang mungkin untuk dicoba adalah menggunakan Kartu SD lain yang dipilih dengan cermat dari daftar yang kompatibel. Pastikan juga untuk membeli kartu asli dari tempat tepercaya. Tidak seperti ebay china atau semacamnya.

Piotr Kula
sumber
Saya menggunakan 3 kartu sd dalam proses (semua didukung) SanDisk, Kingston dan Lexar, saya juga tidak secara manual mengatur kartu SD saya, saya menggunakan Win32DiskImager setelah mencoba Ubuntu dan Mac OS X.
user151324
Ini aneh bahwa membuat fs Anda baca hanya memperbaikinya. Anda dari jutaan orang memiliki masalah ini. Mungkin Anda mendapat beberapa sampah / virus mengacaukan sistem file Anda. Akar baca saja adalah sakit di pantat ... tunggu dan lihat.
Piotr Kula
terima kasih, sesuatu yang aneh sedang terjadi, pastinya bukan virus ...
user151324
0

Hanya untuk menutupi semua masalah, periksa juga apakah catu daya Anda cukup baik. coba pengisi daya lain atau pasang RPI ke port USB PC untuk mengujinya. Ingat bahwa pasokan RPI yang disarankan adalah sekitar 700mA, tetapi beberapa pengisi daya yang lemah mungkin tidak mempertahankannya pada tingkat stabil.

Saya memiliki router yang mulai bertindak gila selama beberapa hari, kemudian menjadi ok, kemudian kembali menjadi gila dan kemudian baik-baik saja lagi ... saya menemukan bahwa catu daya mengeluarkan tegangan berubah (3V ke 5.5V) pada saat router itu gila. Mengganti persediaan itu dengan yang baru semuanya baik-baik saja. Jadi coba ganti catu daya dan ukur tegangan output.

Akhirnya, matikan RPI dengan mematikan OS dan hanya mencabut RPI ketika Anda hanya memiliki satu led merah. RPI tidak benar-benar mati jika Anda memiliki lebih dari satu led merah. Selain itu, coba hindari memutus rpi dengan melepas catu daya dari colokan, lebih baik untuk melepas daya dari RPI dan hanya setelah remote catu daya dari colokan.

higuita
sumber
Tidak, saya memiliki 5.1V @ 2100 A yang mantap, dan saya selalu mematikan dengan benar
user151324
0

Saya memiliki masalah serupa pada pi dari RS Components. Ini adalah salah satu pis buatan China. Satu lagi yang dibuat di Inggris dari Elemen 14 tidak pernah mengalami korupsi dengan sdcard dan powersupply yang sama. Mungkin ada beberapa Kerusakan pada Perangkat Keras dengan unit komponen. Tentu saja tidak yakin akan hal itu, tetapi segala sesuatu tampaknya mengarah ke sana.

mcobit
sumber
0

Saya juga mengalami Kegagalan SD dengan PI saya, kadang-kadang 5 hari berturut-turut, kadang-kadang bekerja selama sebulan.

Satu-satunya cara saya bisa menjalankannya dengan andal selama lebih dari satu tahun sekarang adalah dengan Boot dari USB stick. Dengan cara ini Anda tidak menggunakan kartu SD Anda (hanya saat boot) dan hanya perlu sekitar 500mb kartu sd (murah) dan USB Stick.

Gotschi
sumber
0

Saya mengikuti petunjuk yang dapat Anda lakukan syncsebelum shutdown, dan sejauh ini saya berhasil dengan perintah ini:

sync; sudo shutdown -t 9 -r now
dirkk0
sumber
Apakah Anda masih mengalami masalah dengan Raspberry menggunakan solusi di atas?
CuriousMind
Saya tidak memiliki masalah lagi - tetapi saya mengakui bahwa saya cenderung agak meninggalkan pi, daripada mematikannya. Tapi tebakan saya adalah saya membuangnya lebih dari lima puluh kali dengan garis di atas, dan itu tidak gagal sekali sejak itu. Jadi dari statistik itu - itu berhasil.
dirkk0
Saya tidak berpikir ini akan memperbaiki masalah ini. Ketika Anda menjalankan shutdown yang terkontrol, tidak ada kerusakan yang terjadi pada kartu sd Anda dengan desain. Korupsi tampaknya terjadi sebagian besar dalam kasus-kasus di mana perangkat cukup dicabut (atau pemadaman listrik terjadi) yang tidak terkait dengan Anda syncatau shutdownperintah kecuali Anda menjalankan syncsegera sebelum mencabut (tak terduga!) Yang tampaknya tidak layak.
nhee