Saya memiliki beberapa papan tertanam yang menjalankan American Megatrends bios dengan embedded linux sebagai OS. Masalah yang saya miliki adalah bahwa ide kilat industri akan rusak karena kehilangan daya. Saya minta mereka diformat sebagai ext4. Setiap kali ini terjadi, saya biasanya dapat memperbaiki flash dengan fsck, tetapi ini tidak akan mungkin dilakukan dalam penerapan kami. Saya telah mendengar bahwa menonaktifkan cache tulis harus membantu, tetapi saya tidak tahu bagaimana melakukannya. Juga, adakah hal lain yang harus saya lakukan?
Info lebih lanjut
Drive adalah modul flash ide 4GB. Saya punya satu partisi yang ext4. OS diinstal pada partisi itu dan grub adalah bootloader saya.
fdisk -l menunjukkan / dev / sda sebagai modul flash saya dengan / dev / sda1 sebagai partisi utama saya.
Setelah kehilangan daya, saya biasanya tidak dapat membuatnya sepenuhnya melalui skrip init boot.
Ketika saya memasang drive di PC lain saya menjalankan fsck / dev / sda1. Itu selalu menampilkan pesan seperti
"zero datetime on node 1553 ... fix (y)?"
Saya memperbaikinya dan boot dengan baik sampai kehilangan daya berikutnya.
Ketika saya sampai di kantor besok, saya akan memposting output aktual dari fdisk -l
Ini semua yang saya tahu tentang cara kerja sistem. Saya bukan orang sistem, saya seorang Insinyur Perangkat Lunak yang memiliki kebiasaan masuk ke dalam kesulitan yang berada di luar deskripsi pekerjaannya. Saya tahu cara memformat drive, menginstal bootloader, menulis perangkat lunak, dan meretas pada sistem operasi.
Ini adalah output dari dumpe2fs
#sudo dumpe2fs /dev/sda1
dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name: VideoServer
Last mounted on: /
Filesystem UUID: 9cba62b0-8038-4913-be30-8eb211b23d78
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: (none)
Filesystem state: not clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 245760
Block count: 977949
Reserved block count: 48896
Free blocks: 158584
Free inodes: 102920
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 239
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Fri Feb 4 15:12:00 2011
Last mount time: Sun Oct 2 23:48:37 2011
Last write time: Mon Oct 3 16:34:01 2011
Mount count: 2
Maximum mount count: 26
Last checked: Tue Oct 4 07:44:50 2011
Check interval: 15552000 (6 months)
Next check after: Sun Apr 1 07:44:50 2012
Lifetime writes: 21 GB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Default directory hash: half_md4
Directory Hash Seed: 249d2b79-1e20-49a3-b324-6cb631294a63
Journal backup: inode blocks
sumber
dumpe2fs /dev/sda1
(atau apa pun perangkat / nama partisi Anda untuk sistem ini) - mereka harus berisi semua informasi yang relevan. Dan opsi mount untuk sistem file root dari / etc / fstab juga akan membantu.Saran cache tulis adalah awal yang baik tetapi ini terdengar seperti cacat desain arsitektur. Pada sistem tertanam, blitz internal mungkin TIDAK boleh dipasang R / W kecuali dalam keadaan langka. Anda harus benar-benar melakukan sebagian besar pekerjaan dalam sistem file memori dan menyinkronkan perubahan kembali ke flash RW pada beberapa perintah pengguna atau interval reguler. Benar-benar tidak biasa bagi embedded system untuk menggunakan filesystem biasa (seperti ext4) dalam mode rw selama operasi normal. Jika ada beberapa persyaratan aplikasi di mana Anda memerlukan banyak ruang penyimpanan, Anda harus mempertimbangkan agar partisi sistem Anda berbeda dan mendesainnya sedemikian rupa sehingga partisi data dapat di-fsck sebagai bagian dari startup.
Jika Anda memerlukan beberapa titik awal, saya akan melihat bagaimana orang-orang mengatur sistem Diskless Linux:
http://frank.harvard.edu/~coldwell/diskless/
dan mulai dari sana. Gagasan umum adalah biner dan data sistem Anda dapat dipasang hanya-baca sehingga sistem file Anda tidak akan rusak. Namun Anda harus dapat menulis ke area tertentu, jadi Anda perlu sesuatu untuk biasanya filesystem memori / tmp, / var / tmp. Bahkan jika hal-hal tertentu perlu ditulis, Anda cukup membuat skrip untuk me-mount partisi sebagai r + w dan kemudian melakukan perubahan, kemudian kembali ke read-only.
Sebuah contoh yang sangat bagus dari hal ini adalah perangkat keras Cyclades, linux yang disematkan dan setiap kali Anda melakukan perubahan konfigurasi Anda harus menjalankan skrip save yang sebenarnya rebundles konfigurasi dan menuliskannya ke flash.
sumber