Mam wbudowane płyty z biosami American Megatrends z wbudowanym linuksem jako system operacyjny. Problem, który mam, polega na tym, że przemysłowe lampy błyskowe zostaną uszkodzone w wyniku utraty zasilania. Mam je sformatowane jako ext4. Ilekroć tak się dzieje, zwykle mogę naprawić flash za pomocą fsck, ale nie będzie to możliwe w naszych wdrożeniach. Słyszałem, że wyłączenie buforowania zapisu powinno pomóc, ale nie wiem, jak to zrobić. Czy jest jeszcze coś, co powinienem zrobić?
Więcej informacji
Napęd to moduł pamięci flash 4 GB. Mam jedną partycję, która jest ext4. System operacyjny jest zainstalowany na tej partycji, a grub jest moim programem ładującym.
fdisk -l pokazuje / dev / sda jako mój moduł flash z / dev / sda1 jako moją partycją podstawową.
Po utracie zasilania zwykle nie mogę zrobić tego całkowicie za pomocą skryptów inicjujących rozruch.
Kiedy montuję dysk na innym komputerze, uruchamiam fsck / dev / sda1. Zawsze pokazuje wiadomości takie jak
"zero datetime on node 1553 ... fix (y)?"
Naprawiam je i ładuje się dobrze do następnej utraty zasilania.
Kiedy jutro przyjdę do biura, opublikuję rzeczywistą wydajność fdisk -l
To wszystko, co wiem o tym, jak działa system. Nie jestem facetem od systemów, jestem inżynierem oprogramowania, który ma zwyczaj wpadania w kłopoty, które są poza jego opisem stanowiska. Wiem, jak formatować dyski, instalować program ładujący, pisać oprogramowanie i hakować w systemie operacyjnym.
Oto dane wyjściowe z 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
źródło
dumpe2fs /dev/sda1
(lub jakąkolwiek nazwę urządzenia / partycji dla tego systemu) - powinny one zawierać wszystkie istotne informacje. Pomogą również opcje montowania głównego systemu plików z / etc / fstab.Sugestia pamięci podręcznej zapisu to dobry początek, ale brzmi to jak wada projektu architektonicznego. W systemie wbudowanym prawdopodobnie nie należy montować wewnętrznej lampy błyskowej R / W, z wyjątkiem rzadkich przypadków. Naprawdę powinieneś wykonywać większość pracy w systemie plików pamięci i synchronizować zmiany z powrotem do pamięci flash RW po wydaniu polecenia przez użytkownika lub w regularnych odstępach czasu. Naprawdę rzadko zdarza się, aby system osadzony używał zwykłego systemu plików (takiego jak ext4) w trybie rw podczas normalnej pracy. Jeśli jest jakieś wymaganie aplikacji, w którym potrzebujesz dużo miejsca do przechowywania, powinieneś rozważyć inną partycję systemową i zaprojektowanie jej w taki sposób, aby partycja danych mogła być fsck -y'ed w ramach uruchamiania.
Jeśli potrzebujesz kilku punktów wyjścia, przyjrzałbym się, jak ludzie konfigurują bezdotykowe systemy Linux:
http://frank.harvard.edu/~coldwell/diskless/
i zacznij od tego. Ogólny pomysł polega na tym, że pliki binarne i dane systemowe można montować tylko do odczytu, aby system plików nie został uszkodzony. Jednak musisz być w stanie pisać w niektórych obszarach, więc potrzebujesz czegoś, co zwykle pamięci system plików / tmp, / var / tmp. Nawet jeśli pewne rzeczy muszą być zapisywalne, wystarczy utworzyć skrypt, aby zamontować partycję jako r + w, a następnie zatwierdzić zmiany, a następnie wrócić do trybu tylko do odczytu.
Naprawdę doskonałym tego przykładem jest sprzęt Cyclades, jego osadzony linux i za każdym razem, gdy wprowadzasz zmiany w konfiguracji, musisz wykonać skrypt zapisu, który faktycznie ponownie konfiguruje i zapisuje je do pamięci flash.
źródło