自己修復SDカードパーティション


9

多くのSDカードはかなり壊れやすいです。私は今約2年間パイを持っています、そして主な失敗は何らかの理由でsdカードが破損したことが原因でした。

起動時にsdカードを「強化」するために開発が行われたかどうか疑問に思っています。過去のプロジェクトでこのようなものがあったことを覚えています。このプロジェクトでは、無効なcrc32チェックサムがあった場合、ubootは12個のtarballから選択していました。次に、正常に起動した後に変更された検証済みのものを他のすべてに再コピーします。

私のpiを「永続的な」セットアップで使用したいのですが、カードを再フラッシュすることなく機能することができればすばらしいと思います。

この方法ですでに行われた開発はありますか?一般的な考えはかなり些細なことですが、ubootを適切に機能させることは、通常、回避したいかなり苦しいプロセスです。

編集:

少し掘り下げた後、私が思い描いていたことが、可能ではないか、意味のある利点をもたらすような方法で可能であるように思えます。ここでは、ブートプロセスについて説明します。私のボードにはプログラム可能なフラッシュが搭載されていたため、私が作業したコードは最初のブートレベルで実行されていました。piでは、これは工場からROMに格納されます。他のすべてはsdカードから取得されるため、カードが損傷した場合、第2ステージのブートローダーは他のパーティションと同じくらい破壊される可能性があります。

この目的のためにROMブートローダーを悪用することは可能かもしれませんが、その方法を言うのは難しいです。このコードも独自仕様のようです。

編集2:

実際のブートプロセスの説明は、ソースによって矛盾します。もっと読んでみます

回答:


9

SDカードに問題がある場合は、(順番に)試してください。

  1. 別の(より大きな)電源を使用してください。
  2. Raspberryとお手持ちのUSB周辺機器の間にパワードハブを接続します。
  3. 有名なブランドのSDカードを使用してください。
  4. より大きいSDカードを使用します(分散ウェアレベリング用)。
  5. rootfsを読み取り専用に設定し、SDカードへの書き込みを回避します。
  6. 完全にRAMから実行される「ライブ」ディストリビューションを使用してください。私のプロジェクトNard SDKはその1つです(ただし、他にもあります)。Nardでは、SDカードは起動時にのみ使用されます。ファイルシステムを立ち上げて実行することが二度とない場合、SDカードをホットプラグすることさえできます...

参照:http : //www.arbetsmyra.dyndns.org/nard/


USB接続のHDDからOSを実行することもできます-アイテム#6と同じです。
Phil B.

提案ありがとうございます。ただし、電源が失われると、sdカードは破損する可能性があります。たぶん、カードを読み取り専用にすると役立つでしょう。そもそも腐敗を防ぐ方がより良い解決策であることに同意しますが、完全に防ぐことは困難です。
Eric

電源喪失時の腐敗が問題である場合、ライブディストリビューションが救済策です。
Ronny Nilsson 2015年

1

電源が時々失われたとしても、頻繁に劇的な破損を経験するべきではありません。

ファイルシステムのの6番目の列にゼロ以外の値/etc/fstabがある場合は、マウントする前にエラーをスキャンする必要があるかどうかが確認されます。通常のpiディストリビューションには、この設定/dev/mmcblk0p1とルートファイルシステムパーティション(Raspbianの場合mmcblk0p2)が必要です。これがext4ファイルシステム(ルートfsなど)に対して意味することは、Nマウントごとにこれが発生することです。Nの値については、からの出力の「最大マウントカウント」を参照してくださいtune2fs -l /dev/[partition]。この値はtune2fs -c(を参照man tune2fs)を使用して調整できます。

ファイルシステムが適切にアンマウントされなかった場合にもスキャンされます。これはで行われe2fsckます。ほとんどの場合、すべてがうまくいきます。ただし、データが失われて破損する可能性があります。この証拠はに残され/lost+foundます。可能であれば(通常はそうです)、ファイルシステムは引き続き使用可能で、破損していない状態のままになります。問題は、修正で一部の重要なコンポーネントが失われたかどうかですが、これも非常に珍しいことです。

重要なものに影響を与える可能性が低いのは、技術的に読み取り専用ではないもののほとんどは通常の方法では変更されないためです。システムは、からのもののトンを持っている/binし、/lib任意の時点でメモリにロードされますが、ディスクは、それらの非存在の変化と同期して落ちるチャンスがないので、ディスク上のソースを変更するつもりは、ありません。

カーネルとファームウェアを含む最初のvfatパーティションのルールはわかりませんが(extはフォーマットされていないため)、同様のチェックが可能であり、いずれにしても、最後の段落のロジックを想定しています。適用されます-これはシステム更新の変更のみです。実際、本当に偏執的になりたい場合は、更新を除いて読み取り専用でマウントすることができます(または通常のブートが完了したら必要ないため、マウントしないこともできます)。

すべてこの後、あなたはかなり必要があります決してあなたが本当に頻繁に(その場合でも、それはまれでなければなりません)電源を切断することによりサイコロを転がしていない限り、深刻な破損が発生しません。破損が頻繁に発生する場合は、非常に深刻な問題があります。少々困惑している読み取り専用ファイルシステムを使用している場合でも、少なくとも数人の人が破損の問題を報告しています。これは、破損がハードウェアの欠陥またはソフトウェアのバグによって任意に引き起こされていることを意味します。

そして確かに、2013年のある時点から2014年の後半にかけて、OSが最新の状態であると想定して、pisに任意に影響を与えるようなバグがあったと思います。「SDカードが壊れています!」過去4〜6か月の投稿(ただし、Nb。それを確認するための実際の会計処理は行っていません)。


1

USBフラッシュドライブ/ USBハードドライブを使用することもできます。

SDカードよりもはるかに信頼性が高いです

これを行う方法を説明するスレッドがあります


0

自己修復は、fsckが最も破損しやすいファイルシステム上にあるLinuxディストリビューションの問題です。これは、ほとんどすべてのLinuxディストリビューションでraspbianが共有している問題です。最近では、1つの大きなext4パーティションにすべてのもの(Ubuntuの場合は/ bootを含む)を配置したいと考えています。

読み取り専用のルートパーティションは、fsckを実行する前にLinuxがファイルシステムの問題に遭遇するという、ブートキリングの問題を回避することに驚異的です。

しかし、めったに更新されない読み取り/書き込みルートでさえ、大きな前進です。

Raspbianは読み取り専用ルートで正常に動作します。セットアップには少し手間がかかりますが、もちろんルートファイルシステムに変更を加える前に、「mount -o remount、rw /」の準備をする必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.