編集:何らかの理由で私の投稿の一部だけが保存されました。これで完全な内容に更新しました。
この項目はRaspberry Piを中心に扱いますが、デフォルトでは以下の設定を使用するすべてのSDカードに適用されます。ファイルシステムは全体のカードサイズの小さな部分だけを占めます。要するに、この質問のポイントは、書く方法を学ぶことです。ただFS(または複数のパーティションがある場合はそれ以上)をバックアップイメージに追加します。詳しくは下記をご覧ください。
昨年12月にPiを購入してから使い始めたとき、SDカードが数回破損して内容が失われました。これは電源を正しくシャットダウンせずに誤ってオフにしたため、ここでは大きな問題ではありません。カードをフォーマットし、Raspbianイメージを作成し、Piに入れ、ボードを起動し、ファイルシステムを拡張し、すべてを再インストールして再構成する必要があるたびに、私はより良いソリューションを探し始めました。
- 画像とFSのサイズを変更してください。今後SDカードに書き込む -これこのリンクは、画像を追加する方法(入力ソースとして使用)と調整方法
dd
(Raspbian用EXT4のようです(起動コンポーネントの小さなFAT32パーティションを除く))を完全に説明します。これにより、使用する必要がある問題が解決されます。/dev/zero
ext4
拡張ファイルシステムRaspberry構成ツールの機能は、デフォルトで2GB、4GB、16GB、32GBなど、フォーマットされていない残りのスペースを占めています。もちろん、画像を増やすとdd
SDカードに書き込むのにかかる時間も増えますが、次のステップのカスタマイズも可能です。 - インストールされているソフトウェアのカスタマイズ -
chroot
またはproot
(+qemu
)を使用することができます(参照:ここそしてここ)RaspbianのFSを正しくインストールし、chroot
必要なものをインストール/ビルドする場合。これは、クロスコンパイルが必要な多くのビルド(PiのQtなど)にとっても重要なステップです。 Piではデフォルトでコンパイルできますが、多くのスペースと時間が必要です。
これが基本的に画像をカスタマイズする方法です。ここでの問題は、操作を元に戻すことに関連する一連の手順、すなわちSDカードのコンテンツを取得し、可能な限り最良の方法でPCに保存することです。圧縮は確かにあなたができる重要なことの1つですが、それだけでは不十分です。これにより、dd
SDカード全体(空のブロックを含む)をコンピュータに書き込むか、希望のセクタサイズと番号を選択できます。 2番目のアプローチはストレージをよりよく活用しますが、内容を慎重に計算する必要があります。内容を短くするとFSが破損することがあります(ああ、そんなことを何度も見たことがありませんか…)。
次のような解決策を探しています。クローン属提案 - 複製可能実際にコンテンツがあるブロックのみだから残りは捨てろFS縮小より小さなスペースに完全な機能を備えたファイルシステムを保存する能力があります。私は昨年、隣人がMacBookの破損したハードドライブにデータを保存するのを手助けしたときにまさにそれをしました。
例:Raspbian Jessie Liteがインストールされている場合は約1時間かかります。 SDカードは1.3GBを使用します。さて、カードが32GBだと想像してみてください。もちろん、時には残りのスペースをフォーマットして使用したいかもしれませんが、通常は(少なくとも私にとっては)そうではありません。したがって、dd
盲目的に使用すると、デフォルトで32GBのイメージファイルが生成されます。圧縮はこれらのギガバイトの大部分を処理しますが、後でRaspbianの以前の状態のいくつかを復元するためにSDカードに書き換えることは非常に長いプロセスになります。 FSをコピーすることもできます(再使用dd
)。しかし、実際のインストール(すべてのファイル)がそのパーティションで約600 MBしか占有していない場合はどうなりますか? 600MBだけが必要なのに、なぜ1.3GBをコピーするのですか?構成ツールの「拡張ファイルシステム」機能を使用するRaspbianを含むSDカードがあり、n
実際に%を使用しているにもかかわらず、SDカード全体がフォーマットされた場合はどうなりますか?
できるだけ少ない労力と労力でこれを達成する方法についてのアイデアはありますか?
答え1
小さなFATパーティションdd
(完全に必要)をダンプ/復元しますがe2image -a
(で使用)e2fsprogsパッケージ)をデフォルトパーティションとして使用します。このオプションはフラッシュに復元するのに-c
役立ちます(ターゲットから実際には他の部分のみが上書きされます)。
答え2
まあ、あなたの質問に直接答えることなく、簡単に回復できるように私がしたことは次のとおりです。
- 必要なパッケージをすべてインストールしたら、SDカードの内容をファイルに追加します。
- ファイルを最大圧縮でbzipし、gzipで圧縮されたデータファイルをバックアップとして保持します。
- 破損した場合は、ddを使用してBunzip以降のバックアップファイルを復元してください。