GNU/Linux >> Linux の 問題 >  >> Linux

組み込み Linux 用の破損防止 SD カード ファイルシステム?

RAID1 の BTRFS は、1 枚の SD カードの破損に対する最高の耐性を提供します。 事前定義された時間ごとに自動スクラブを実行するモード。

メリット:

<オール>
  • ファイルシステムへの RW 機能の保持
  • 透過的な圧縮やスナップショットなど、RPi の非常に便利なオプションを備えた最新のフル機能のファイルシステム
  • (とりわけ) フラッシュ メモリを念頭に置いて設計
  • 方法は次のとおりです:

    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 つです。


    Linux
    1. 新しいSonyVaioZ外部グラフィックカードのLinuxサポート?

    2. パフォーマンスを向上させるために Btrfs ファイルシステムを調整する方法

    3. SD カード上の GNU/Linux のファイルシステムの選択

    1. 組み込みLinuxシステムを構築するための4つのツール

    2. Linuxでの効率的なファイルシステムナビゲーションには「pushd」と「popd」を使用します

    3. BTRFS ファイルシステム RAID のエラーを監視するには?

    1. Linuxシステムリカバリにsystemd-nspawnを使用する方法

    2. FedoraLinuxのBtrfsファイルシステムを理解する

    3. Linux –グラフィックカードパススルーのカーネルでIommuを有効にしますか?