
Linuxを実行しているシングルボードコンピュータ(RaspberryPi、CubieTruckなど)を使用してプロジェクト用のシステム設計を検討しています。
私の主な要件は、SDカードの起動の複雑さを最小限に抑えることです。私のビジョンは次のとおりです。
/
boot.txt
settings.txt # DHCP /ifconfig data etc.
error.log # optional
OS.tar.gz # the OS Omni-file
Kernel.img # If it can't fit with the Omni-file
オペレーティングシステムは、いくつかのエラーログを除いてファイルを修正する必要はありません。
これまでの私の推測では、実際のISOから起動することです。使いやすさしかし、レイアウトは十分に単純ではありません(そして少し逆さまに見えます)。
私の目標を達成するのに役立つプロジェクト/リリースオプションはありますか?
修正する
私について知りました循環装置、これは私が必要と思われる - ファイル内のFS。
次のようにフォーマットしてインストールしました。
losetup /dev/loop0 /tmp/disk.img
mkfs -t ext2 /dev/loop0
losetup -d /dev/loop0
mkdir /tmp/disk-mount
mount /tmp/disk.img /tmp/disk-mount -o loop
touch /tmp/disk-mount/bla
umount /tmp/disk-mount
そのようなデバイスから起動する方法についてのドキュメントはありますか?
答え1
使用を検討してくださいルート構築ターゲットルートファイルシステムを作成するには、次の手順を実行します。このプロジェクトは、Linuxカーネルを活用して、組み込みシステムファイルシステム全体のワークフローを構成および構築します。
答え2
私が正しく理解したら、カスタムルートファイルシステムを構築するためのツールが必要です。私が使用したツールの1つはhttp://www.ptxdist.org/software/ptxdist/index_en.html しかし、Riで実行するようにブートローダを設定するのが簡単な作業かどうかはわかりません。
また、例で定義したファイルの一部を埋めるには、特定の形式のデーモンが必要であり、そのデーモンはファイルシステム階層のどこかにあるバイナリファイルであることを考慮してください。
したがって、The OS doesn't have to modify its files, except possibly for some error log.
これを修正するアプリケーションは、おそらくrootfsのどこかにあるユーザースペースデーモンです(たとえば/usr/bin
)。
答え3
ループデバイスの使用に関するマイナーな(「更新された」)質問に従って:私はブートプロセスに精通していますが、最初に初期のRAMディスクで起動する必要があります。つまり、カーネルイメージに組み込まれた最小ルートFSイメージです。デフォルトのルートFSはループデバイスとしてマウントできます。デフォルトのルートFSをマウントしたら、initrdでフル(ループ)インストールのルートイメージとして「chroot」します。