RAID1 の BTRFS は、1 枚の SD カードの破損に対する最高の耐性を提供します。 事前定義された時間ごとに自動スクラブを実行するモード。
メリット:
<オール>方法は次のとおりです:
ArchARM Linux で RaspberryPi を実行しており、カードは SD リーダーにあるため、他のディストリビューションや /dev インターフェイスに合わせてこれらの手順を変更してください。
パーティション レイアウトの例を次に示します。
/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
btrfs を RAID1 に入れるには、次のようにファイルシステムを作成します:
mkfs.btrfs -m raid1 -d raid1 /dev/mmcblk0p2 /dev/mmcblk0p3
次に rsync -aAXv
以前にバックアップしたシステムにコピーします。
raid1 で BTRFS から起動するには、initramfs を変更する必要があります。 .したがって、システムがまだ古いファイルシステムで実行されている間に、次のことを行う必要があります。
Raspberry は通常 mkinitcpio を使用しないため、インストールする必要があります。次に、mkinitcpio.conf の MODULES 配列に「btrfs」を追加し、
で initramfs を再作成する必要があります。mkinitcpio -g /boot/initrd -k YOUR_KERNEL_VERSION
YOUR_KERNEL_VERSION の代わりに何を入力すればよいかを知るには、
を実行します。ls /lib/modules
カーネルを更新する場合は、再起動する前に initramfs を再作成する必要があります。
次に、RPi のブート ファイルを変更する必要があります。
cmdline.txt には、
root=/dev/mmcblk0p2 initrd=0x01f00000 rootfstype=btrfs
そしてconfig.txtに、追加する必要があります
initramfs initrd 0x01f00000
これらすべてを実行し、btrfs RAID1 システムを正常に起動したら、あとは systemd タイマー (推奨) または cron (dcron) を使用して定期的なスクラブ (3 ~ 7 日ごと) を設定するだけです:
btrfs scrub start /
ファイルシステム上で実行され、すべてのファイルのチェックサムを比較し、破損が見つかった場合はそれらを修正します (正しいコピーに置き換えます)。
BTRFS RAID1、シングル メディア、および Raspberry Pi の組み合わせにより、この非常に難解なものが作成されます。すべての部品を組み立てるのに時間と労力がかかりましたが、ここにあります。
SDカードで読み取り/書き込みルートファイルシステムを使用すると、ラズベリーパイが十分に安定しません。カーネル コマンドライン (ro) を介してルートを起動するか、完全なシステムを含むピギーバックで initramfs を使用することができます。
どちらも自作のビルドシステム OpenADK (http://www.openadk.org) で作成可能です。
いくつかの理由から、磁気ストレージよりもフラッシュ ストレージの方が望ましいと言えますが、このアプリケーションについては、主に可動部分がないという理由で説明します。そうは言っても、そこに「破損防止」ファイルシステムがあるとは思いませんが、いくつかの堅牢なファイルシステム (ext4 がその 1 つ) と、破損を軽減するのに役立ついくつかの戦術があります.
RAM ディスク
RPi の画像に ない場合 何もディスクに書き込もうとしない (またはしようとすべきではない) 場合は、RAM にアンパックするために作成されたルート ファイルシステムを使用してみてください。ここでの考え方は、起動時に RAM に展開される圧縮されたルート ファイルシステムがあるということです。すべての変更は RAM ディスクに対して発生するため、SD カードへの書き込みは事実上ゼロであり、起動時にのみ読み取りが行われます。これにより、ドライブへの読み取り/書き込みが削減され、ドライブの寿命が維持されます。これは、Linux を CD から起動するときに行われることと似ており、Linux の起動時に最初に行われることの 1 つです。