Saya tidak membuat kebiasaan mencabut pi dalam arti menghindari mematikan mereka dengan benar kecuali ketika saya kehilangan jaringan pada pi tanpa kepala, dalam hal ini saya biasanya terlalu malas untuk menyambungkan keyboard, dll.
Secara umum saya selalu memeriksa untuk memastikan lampu ACT hijau tidak menyala pada saat itu; untuk model terbaru (atau firmware?) ini akan dimatikan ketika kartu SD tidak diakses. Yang ingin Anda pastikan. Kecuali Anda terus-menerus menulisnya, ini seharusnya cukup sederhana; selama ada jumlah ruang kepala yang layak dalam RAM gratis (katakanlah 50-100 + MB, tergantung pada konteksnya), maka hal-hal yang cenderung sering digunakan kembali tetapi sebenarnya tidak dimuat oleh suatu proses pada saat tertentu akan di- cache dalam memori bebas dan dimuat kembali dari sana oleh OS, bukan media fisik yang sebenarnya. Ini adalah bagaimana semua sistem operasi tujuan umum kontemporer beroperasi.
Jika pi menggunakan kartu SD, inilah risikonya minimal : sistem file pada kartu tidak sinkron dengan keadaan memori. Biasanya, ini mungkin bukan masalah besar; sebagai permulaan, penjurnalan filesystem yang digunakan secara default pada sebagian besar pis mungkin merupakan pertahanan terhadapnya, seperti halnya fsck yang harus diterapkan secara otomatis saat boot jika filesystem tidak di-unmount dengan bersih. Saya akan menjelaskan mengapa saya mengatakan "mungkin" dan tidak "sebentar", karena dalam konteks ini saya pikir sering kali tidak .
Sejauh yang saya tahu, saya tidak pernah berakhir dengan korupsi sistem file atau kehilangan data saat menarik steker, yang mungkin telah saya lakukan ratusan kali atau lebih selama bertahun-tahun. Namun, sekali lagi, saya tidak terbiasa melakukannya. Jika Anda melakukannya beberapa kali sehari, pada akhirnya Anda mungkin akan mengalami apa pun tingkat risiko statistiknya, dan ada potensi tangkapan yang tidak menyenangkan.
Inilah MASALAHnya:
Baru-baru ini terpikir oleh saya bahwa ada masalah dengan kartu SD yang mekanisme OS / sistem file mungkin tidak berdaya melawan, dan yang mungkin menjelaskan mengapa beberapa orang tampaknya memiliki masalah terus-menerus dengan korupsi fs, terutama mereka yang masuk ke menarik kabel terlepas dari sistem negara - misalnya, baru-baru ini seseorang di sini mengaku menjalankan modul komputasi di mana korupsi meninggalkan sistem unbootable di ~ 1/40 pemadaman listrik seperti itu.
Dalam istilah abstrak, tanpa mempertimbangkan sifat kartu SD , itu tidak boleh terjadi bahkan jika sistem sedang sibuk, karena apa yang paling mungkin berakhir rusak adalah hal-hal yang tidak penting yang sedang ditulis, bukan perangkat lunak sistem yang secara efektif hanya-baca dan hanya akan diubah selama pembaruan.
Itu bisa terjadi jika bit sedang disulap, dan sistem informasi meta yang menyimpan di mana berbagai bit rusak. Namun, sekali lagi, penjurnalan dan fsck harus mampu menangani hal ini, yang memang mengharuskan kernel untuk boot, tetapi kernel pada pi berada di partisi boot terpisah yang mungkin juga dilepas saat digunakan (kecuali untuk saat memperbarui) karena tidak ada yang digunakan setelah sistem boot. Berarti informasi tentang partisi harus, secara efektif, tidak dapat rusak, bahkan ketika dibiarkan dipasang.
Tapi...
Kartu SD adalah kotak hitam untuk sistem operasi. Tidak ada jalan keluar dari itu. Walaupun ada driver khusus untuk pengontrol kartu SD yang merupakan bagian dari perangkat keras komputer (pada pi, ini adalah bagian dari SoC), tidak ada yang namanya driver untuk berbeda, merek dan model kartu yang berbeda.
Namun, mereka semua memiliki mikrokontroler di dalamnya yang dapat beroperasi dengan cara yang sangat berbeda. 1. Inilah yang membuat kartu menjadi kotak hitam; itu berinteraksi dengan sistem operasi melalui protokol SD standar, dan itu adalah titik kontrol terakhir yang dimiliki OS.
Salah satu hal yang dilakukan kartu SD dan media solid state lain yang berbeda dari disk pemintalan tradisional adalah menggunakan pengalamatan virtual yang tidak jelas; mereka tidak menyimpan informasi secara fisik dalam urutan yang diterima sistem operasi. Ini sebagian besar adalah hal yang baik, atau kita mungkin benar-benar membutuhkan driver yang berbeda untuk berbagai merek kartu, dll., Dan itu memungkinkan kartu untuk (secara tidak jelas) menerapkan leveling keausan , yang secara signifikan memperpanjang umur mereka.
Hal lain yang mereka andalkan adalah "menghapus blok" yang relatif besar; ketika data dalam suatu blok perlu diubah, seluruh blok dihapus dan ditulis ulang. Filesystem juga melakukan hal semacam ini sebagai hal yang biasa, tetapi perhatikan bahwa ada pada tingkat perangkat lunak sistem, dan masalah yang dihasilkan dari ini adalah jenis masalah yang dihadapi dan fsck
ditangani.
Inti dari masalah yang lebih sulit diatasi adalah bahwa sistem file skala melakukan hal itu biasanya jauh lebih kecil daripada skala kartu SD melakukannya. Jika tidak, Anda akan menghabiskan banyak ruang penyimpanan, karena blok sistem file hanya dapat berisi data dari satu file. Jika bloknya 2 MB dan hanya ada beberapa kB data, sisanya terbuang sia-sia. Jadi blok filesystem cenderung berkisar dari 1/2 KiB hingga 4 KiB.
Jelas kartu SD tidak melakukan itu, dan pada kenyataannya, tidak bisa, karena pengontrol dalam kartu SD tidak memiliki kesadaran akan batasan seperti "file", "filesystem", atau bahkan "partisi perangkat". Itu hanya berkaitan dengan potongan data yang diinginkan OS, melalui lapisan buram dari dalam kotak hitam di mana segala sesuatu dapat terjadi pada tingkat fisik.
Salah satu alasannya jelas (selain dari kartu premis "tidak bisa melakukan itu di tempat pertama") adalah blok-blok itu sering cukup besar, namun kartu tampaknya melakukan pekerjaan yang layak untuk memanfaatkan semua ruang. Blok erase mungkin berukuran beberapa megabyte . Terlebih lagi, detailnya adalah milik. Walaupun mungkin ada mekanisme di mana OS dapat meminta ukuran blok hapus dari kartu, kartu tidak harus menyediakan ini, itu bisa bohong tentang itu, dan itu akan menjadi tidak masuk akal jika OS mencoba memanfaatkannya.
Maka dari ini bahwa sejak:
Pengontrol kartu SD tidak memiliki konsep data apa yang "sah" berada di mana dalam arti sistem file dan partisi yang koheren, dan,
Kartu SD adalah kotak hitam di mana OS tidak dapat benar-benar melihat,
Lalu apa yang ada di blok penghapusan 1 MB, di mana kartu berisi beberapa partisi menggunakan 4 KiB atau blok sistem file yang lebih kecil, terikat secara sewenang-wenang begitu kartu telah digunakan cukup (dan mungkin bahkan jika itu belum banyak digunakan pada semua). Ini mungkin benar bahkan jika Anda mencoba memaksa OS untuk menggunakan ukuran blok yang lebih besar / sesuai; mereka akan berakhir tidak selaras.
Begitu:
Jika daya terputus saat kartu SD di tengah mengubah blok, yang dapat mengakibatkan hilangnya volume data sewenang-wenang yang cukup besar yang bisa berupa apa saja dari kartu. Bisa jadi informasi itu bertanda "hanya baca". Ini bisa berupa informasi dari partisi yang bahkan tidak di-mount , dan, jelas cukup, dari partisi boot yang kebanyakan tidak digunakan.
Jika itu terjadi dan kartu tidak memiliki sistem perlindungan sendiri (yang mungkin dimiliki beberapa orang, tetapi saya yakin sebagian besar tidak), maka Anda dapat melihat situasi FUBAR. Penjurnalan tidak akan melindungi terhadap korupsi ukuran MB acak yang bahkan tidak mengenali batas partisi. Atau fsck.
Atau, karena perangkat keras kartu umumnya milik, bisa apa pun selain perangkat lunak yang diproduksi oleh produsen kartu - anggap itu masuk akal. Saya belum pernah mendengarnya. Ini akan membuat kartu lebih rumit, lebih mahal, dan lebih mudah digunakan. Yang bukan tujuannya.
Dengan kata lain, kartu SD tidak dimaksudkan untuk digunakan secara andal dengan cara ini . Mereka murah dan sangat berguna tetapi itu adalah hasil dari pertukaran dalam protokol: Secara umum, tidak ada jaminan integritas data untuk apa pun pada kartu jika Anda secara sewenang-wenang mematikan kekuatan untuk itu.
Apa yang salah dengan mencabut Pi? Haruskah saya mulai mencabut saja? Catatan: Dalam hal ini saya tidak terlalu khawatir tentang kehilangan data.
Secara fisik tidak akan merusak pi, tidak, hanya waspada "kehilangan data" dapat meluas ke "kartu tidak berguna" yang perlu diformat ulang sepenuhnya. Namun, saya akan mengatakan kemungkinan jika Anda melakukannya dengan lampu ACT hijau mati sangat rendah.
- Ini mungkin penting ketika mempertimbangkan mengapa beberapa merek / model kartu tertentu jelas lebih buruk daripada yang lain bagi sebagian orang. Sayangnya, sementara dua kartu yang berlabel identik mungkin identik dalam hal fitur yang dinyatakan (ukuran, kecepatan, dll.), Produsen tidak terikat untuk membuat mereka benar-benar 100% identik dalam hal bagian-bagian penyusunnya.