RAMのrootfsでLinuxを起動するにはどうすればよいですか?


16

rootfsはsquashfsイメージであり、ブートローダーはそれをSDRAMのあるアドレスにロードしています。そこからrootfsをマウントできるようにするには、どのパラメーターをカーネルに渡す必要がありますか?Squashfsのサポートは組み込みであり、すでに動作します

root=/dev/mtdblock2 rootfstype=squashfs  

フラッシュから起動します。

編集:これは、カスタムブートローダーを使用したMIPSベースの組み込みデバイスです。通常、ブートローダーは圧縮されたカーネルをフラッシュからSDRAMに抽出し、カーネルは/ dev / mtdblock2をrootfsとしてマウントします。ブートローダーを改善して、イメージをRAMにダウンロードし、フラッシュに書き込まずにブートできるようにしています。

LinuxでRAMのファイルシステムイメージをrootfsとしてマウントする方法がわかりません。


squashfsが動作することを既に知っている場合は、達成しようとしているものをより良く説明してください。どのように機能することを知っていますか?何が起こるのですか?そして最も重要なのは、あなたが望むように機能しないもの何ですか?
rozcietrzewiacz

1
また、デバイスはどのブートローダーを使用しますか?
rozcietrzewiacz

あなたがカーネルとして(SYSLINUXから)memdiskを使用する場合、私が思うに、それはそれから、その後のブーツをメモリに画像全体をロードし、
golimar

回答:


10

私はinitramfsを使用します。(http://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt

多くのLinuxディストリビューションは、ブートプロセス中にinitramfs(initrdと混同しないでください。異なる)を使用します。これは、主にブートプロセスの非常に早い段階でユーザースペースプログラムを起動できるようにするためです。ただし、必要なものに使用できます。

initrdと比較したinitramfsの利点は、initrdfsがtmpfsファイルシステムを使用し、initrdがramブロックデバイスを使用することです。ここでの重要な違いは、initrdの場合、すべてのスペースを使用しない場合でも、ファイルシステムのすべてのスペースを事前に割り当てる必要があることです。そのため、ファイルシステムのスペースを使用しないと、RAMが無駄になります。これは、組み込みデバイスではほとんどの場合リソースが不足しています。TmpfsはRAMを使い果たすファイルシステムですが、ファイルシステムで現在使用されているRAMだけを使用します。したがって、tmpfsからファイルを削除すると、そのRAMはすぐに解放されます。

現在、通常initramfsは一時的なものであり、ブートプロセスの非常に早い段階で一部のプログラムを実行するためにのみ使用されます。これらのプログラムが実行されると、制御は物理ディスクで実行されている実際のファイルシステムに引き継がれます。ただし、その必要はありません。initramfsを無期限に使い果たすことを止めるものは何もありません。


そのため、「initramfsを無期限に実行する」システムを実際にセットアップしようとしています。システムの大部分は稼働していますが、いくつかの問題がありました-光を当てることができるかどうか疑問に思っていますか?ここに投稿された質問
-dtmland


0

phramこの目的でドライバーを使用します。物理メモリーを使用してMTDデバイスをエミュレートします。つまり、後で実際のフラッシュに書き込むテスト/開発用にまったく同じrootfsイメージを使用できます。カーネルコマンドラインで必要な魔法は次のようになります

phram.phram=rootfs,0x100000,9Mi root=/dev/mtdblock0 memmap=9M\$100000

memmapカーネルがそのメモリを自身で使用しようとしないようにするためにも引数が必要であることに注意してください。9MBは、私のrootfsの大きさ(または大きさ)です。$の前の\はブートローダーで必要ですが、あなたのものではないかもしれません。物理メモリがデバイスにどのように配置されているかわからないため、ここで選択したアドレスは任意です。以前にtftpまたは何かを使用してそのアドレスでrootfsをロードしたと仮定します

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