GNU/Linux >> Belajar Linux >  >> Linux

Sistem file kartu SD tahan korupsi untuk Linux tersemat?

Perlawanan terbaik terhadap korupsi pada satu kartu SD akan ditawarkan oleh BTRFS di RAID1 mode dengan scrub otomatis berjalan setiap periode waktu yang telah ditentukan.

Manfaatnya:

  1. mempertahankan kemampuan RW ke sistem file
  2. sistem file modern berfitur lengkap dengan opsi yang sangat berguna untuk RPi, seperti kompresi transparan dan snapshot
  3. dirancang dengan mempertimbangkan memori flash (antara lain)

Berikut adalah cara melakukannya:

Saya menjalankan RaspberryPi saya di ArchARM linux dan kartu saya ada di pembaca SD, jadi ubah instruksi tersebut sesuai untuk distro lain dan antarmuka /dev.

Berikut adalah contoh tata letak partisi:

/dev/mmcblk0p1: fat32 boot partition
/dev/mmcblk0p2: to be used as btrfs partition
/dev/mmcblk0p3: to be used as btrfs partition (mirrored with the above)
/dev/mmcblk0p4 (optional): swap

Untuk memasukkan btrf ke dalam RAID1, Anda membuat sistem file seperti ini:

mkfs.btrfs -m raid1 -d raid1 /dev/mmcblk0p2 /dev/mmcblk0p3

Kemudian Anda rsync -aAXv ke sistem cadangan Anda sebelumnya.

Untuk mem-boot dari BTRFS di raid1, Anda perlu memodifikasi initramfs . Oleh karena itu, Anda perlu melakukan hal berikut saat sistem Anda masih berjalan di sistem file lama Anda.

Raspberry biasanya tidak menggunakan mkinitcpio jadi Anda harus menginstalnya. Kemudian, Anda perlu menambahkan "btrfs" ke array MODULES di mkinitcpio.conf dan membuat ulang initramfs dengan

mkinitcpio -g /boot/initrd -k YOUR_KERNEL_VERSION

Untuk mengetahui apa yang harus diketik selain YOUR_KERNEL_VERSION, jalankan

ls /lib/modules

Jika Anda memperbarui kernel, Anda HARUS membuat ulang initramfs SEBELUM melakukan reboot.

Kemudian, Anda perlu memodifikasi file boot RPi.

Di cmdline.txt, Anda harus memiliki

root=/dev/mmcblk0p2 initrd=0x01f00000 rootfstype=btrfs

dan di config.txt, Anda perlu menambahkan

initramfs initrd 0x01f00000

Setelah Anda melakukan semua itu dan berhasil mem-boot ke sistem btrfs RAID1 Anda, satu-satunya yang tersisa adalah mengatur scrub berkala (setiap 3-7 hari) baik dengan systemd timer (lebih disukai), atau cron (dcron) seperti:

btrfs scrub start /

Ini akan berjalan di sistem file Anda membandingkan checksum dari semua file dan memperbaikinya (mengganti dengan salinan yang benar) jika menemukan kerusakan.

Kombinasi BTRFS RAID1, single medium, dan Raspberry Pi membuat hal-hal yang cukup misterius ini. Butuh beberapa waktu dan usaha untuk menyatukan semua bagian, tapi ini dia.


Saya akan menggunakan cara lain dan hanya akan menggunakan sistem file read-only. Saya tidak pernah mendapatkan raspberry pi saya cukup stabil saat menggunakan sistem file root baca-tulis di sdcard. Anda dapat mem-boot root Anda melalui kernel cmdline (ro) atau menggunakan initramfs dengan piggyback termasuk sistem lengkap Anda.

Keduanya dapat dibuat dengan sistem build buatan saya OpenADK.(http://www.openadk.org)


Penyimpanan flash lebih diinginkan daripada penyimpanan magnetik, karena berbagai alasan, tetapi untuk aplikasi ini saya akan mengatakan terutama karena tidak ada bagian yang bergerak. Karena itu, menurut saya tidak ada sistem file 'bukti korupsi' di luar sana, tetapi ada beberapa sistem file yang kuat (ext4 menjadi satu) di luar sana, serta beberapa taktik untuk membantu mengurangi korupsi.

Disk RAM

Jika gambar RPi tidak memiliki untuk berubah, dan sepertinya tidak, jika tidak ada yang mencoba (atau harus mencoba) menulis ke disk, maka coba gunakan sistem file root yang dibuat untuk dibongkar ke dalam RAM. Idenya di sini adalah Anda memiliki sistem file root terkompresi saat boot yang dibongkar ke dalam RAM. Semua perubahan terjadi pada disk RAM, jadi secara efektif tidak ada penulisan ke Kartu SD, hanya membaca saat boot. ini akan mengurangi pembacaan/penulisan ke drive Anda, mempertahankan masa pakainya. Ini serupa dengan apa yang dilakukan saat Anda mem-boot linux dari CD, dan merupakan salah satu hal pertama yang terjadi saat linux mem-boot.


Linux
  1. Gunakan 'pushd' dan 'popd' untuk Navigasi Sistem File yang Efisien di Linux

  2. Dukungan Linux Untuk Kartu Grafis Eksternal Sony Vaio Z Baru?

  3. Linux – Mengaktifkan Iommu Di Kernel Untuk Pass-through Kartu Grafis?

  1. Cara menggunakan systemd-nspawn untuk pemulihan sistem Linux

  2. Pilihan sistem berkas untuk GNU/Linux pada kartu SD

  3. Bagaimana cara memantau serangan sistem file BTRFS untuk kesalahan?

  1. 4 alat untuk membangun sistem Linux tertanam

  2. Memahami sistem file Btrfs di Fedora Linux

  3. Cara Menyetel Sistem File Btrfs untuk Performa Lebih Baik