圧縮されたrootfsで起動する方法は?

圧縮されたrootfsで起動する方法は?

私の質問は次のとおりです圧縮されたrootfsは利用できませんが(起動中のカーネルの競合)、圧縮されていないrootfsは正常に動作します。

私がしたこと:Buildroot 2013.11を使用してSDカードから起動する組み込みLinux(2.6.39)ARM 9システムをイメージしています。

SDカードの2番目のパーティションに画像(ext4など)を「dd」します。

sudo dd if=/path-to/rootfs.ext4 of=/dev/sdb2 bs=2048

linux-menuconfigでドライバを有効にします。つまり、

File systems
- <*> The Extended 4 (ext4) filesystem
- [*] Use ext4 for ext2/ext3 file systems
- [*] Ext4 extended attributes

圧縮されたext4(lzoを使用するなど)を使用したい場合、ビルドルートはrootfs.ext4.lzoここで「dd」を生成します。

sudo dd if=/path-to/rootfs.ext4.lzo of=/dev/sdb2 bs=2048

コマンドはエラーなしで実行されますが、この時点から再フォーマットするまで「sdb2」にアクセスできなくなります。このSDでシステムを起動すると、カーネルパニックが発生し、ext4でパーティションを解釈しようとしましたが読み取れないというメッセージが表示されます。

私はどこで間違っていますか?

答え1

多くの情報を省略していますが、ここに表示される内容は意味がありません。圧縮ファイルシステムイメージを作成する場合は、後でメモリから非圧縮状態で使用するには、それをメモリにロードして解凍する必要があります。ファイルシステムのように圧縮された画像にアクセスしたいようですが、そうではありません。圧縮されたext4ファイルシステムはext4ファイルシステムではないため、マウントできません。

Flashでファイルシステムを使用するには(必要に応じてファイルのロードとアンロードなど)、解凍する必要があります。メモリでファイルシステムを使用するには、次のように設定することをお勧めします。ファイルシステムの初期化:ファイルシステムの空き部分にメモリを無駄にせず、メモリを解放したい場合はすぐにファイルを消去することができ、構築および起動に必要なインフラストラクチャが少なくなります。

関連情報