GNU/Linux >> Znalost Linux >  >> Linux

Souborový systém SD karet odolný proti poškození pro vestavěný Linux?

Nejlepší odolnost proti poškození na jedné kartě SD nabízí BTRFS v RAID1 režim s automatickým čištěním každou předem definovanou dobu.

Výhody:

  1. zachování schopnosti RW do souborového systému
  2. moderní, plně vybavený souborový systém s velmi užitečnými možnostmi pro RPi, jako je transparentní komprese a snímky
  3. navrženo s ohledem na paměť flash (mimo jiné)

Jak na to:

Spouštím své RaspberryPi na linuxu ArchARM a moje karta je ve čtečce SD, takže tyto pokyny odpovídajícím způsobem upravte pro další distribuce a rozhraní /dev.

Zde je příklad rozložení oddílu:

/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

Chcete-li dostat btrfs do RAID1, vytvořte souborový systém takto:

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

Potom rsync -aAXv k tomu váš dříve zálohovaný systém.

Chcete-li jej spustit z BTRFS v raid1, musíte upravit initramfs . Proto musíte udělat následující, dokud váš systém stále běží na vašem starém souborovém systému.

Raspberry běžně nepoužívá mkinitcpio, takže jej musíte nainstalovat. Poté musíte přidat „btrfs“ do pole MODULES v mkinitcpio.conf a znovu vytvořit initramfs pomocí

mkinitcpio -g /boot/initrd -k YOUR_KERNEL_VERSION

Chcete-li vědět, co zadat místo YOUR_KERNEL_VERSION, spusťte

ls /lib/modules

Pokud aktualizujete jádro, MUSÍTE PŘED restartem znovu vytvořit initramfs.

Poté musíte upravit spouštěcí soubory RPi.

V cmdline.txt musíte mít

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

a v config.txt musíte přidat

initramfs initrd 0x01f00000

Jakmile to vše uděláte a úspěšně nabootujete do systému btrfs RAID1, zbývá pouze nastavit pravidelné čištění (každých 3-7 dní) buď pomocí systemd timer (preferováno), nebo cronu (dcron), jako je tento:

btrfs scrub start /

Spustí se na vašem souborovém systému, porovná kontrolní součty všech souborů a opraví je (nahradí správnou kopií), pokud zjistí nějaké poškození.

Kombinace BTRFS RAID1, jednoho média a Raspberry Pi dělá z této docela tajemné věci. Dalo to nějaký čas a práci dát všechny kousky dohromady, ale tady to je.


Šel bych jinou cestou a použil bych pouze souborový systém pouze pro čtení. Nikdy nedostanu své raspberry pi dostatečně stabilní, když na sdcard používám kořenový souborový systém pro čtení a zápis. Můžete buď jednoduše nabootovat svůj kořenový adresář pomocí cmdline jádra (ro) nebo použít initramfs s přibalením včetně vašeho kompletního systému.

Obojí je možné vytvořit s mým domácím sestavovacím systémem OpenADK. (http://www.openadk.org)


Flash úložiště je z mnoha důvodů žádoucí než magnetické úložiště, ale pro tuto aplikaci řeknu hlavně proto, že zde nejsou žádné pohyblivé části. Jak již bylo řečeno, nemyslím si, že existuje souborový systém „odolný proti korupci“, ale existují některé robustní souborové systémy (ext4 je jeden) a také některé taktiky, které pomáhají zmírnit korupci.

Disk RAM

Pokud obrázek RPi nemá změnit, a zní to tak, že ne, pokud se nic nebude pokoušet (nebo by se o to pokoušelo) zapisovat na disk, zkuste použít kořenový souborový systém vytvořený pro rozbalení do RAM. Myšlenka je taková, že při spouštění máte komprimovaný kořenový souborový systém, který se rozbalí do paměti RAM. Všechny změny se projeví na disku RAM, takže zápis na SD kartu je prakticky nulový, pouze čtení při spouštění. to by mělo omezit čtení/zápis na váš disk a zachovat jeho životnost. Je to podobné tomu, co se dělá, když bootujete linux z CD, a je to jedna z prvních věcí, která se stane při bootování linuxu.


Linux
  1. Podpora Linuxu pro novou externí grafickou kartu Sony Vaio Z?

  2. Linux – Povolení Iommu v jádře pro průchod grafické karty?

  3. Jak vyladit souborový systém Btrfs pro lepší výkon

  1. Použijte „pushd“ a „popd“ pro efektivní navigaci souborovým systémem v Linuxu

  2. Jak sledovat raid souborového systému BTRFS na chyby?

  3. Rockově stabilní souborový systém pro velké soubory (zálohy) pro linux

  1. Jak používat systemd-nspawn pro obnovu systému Linux

  2. 4 nástroje pro budování vestavěných linuxových systémů

  3. Pochopení souborového systému Btrfs ve Fedora Linux