組み込みデバイスにramfsを使用したカーネルパニック:ファイルシステムがルートをマウントできませんでした

ジェレミー

Linux(カーネル3.10)を実行し、ストレージ用のNANDメモリを備えた組み込みARMデバイスに取り組んでいます。独自のパーティションに常駐し、メインファームウェアの更新を実行する最小限のLinuxを構築しようとしています。

カーネルは、ramfsに格納されている非常に最小限のルートfsを使用します。ただし、起動できません。次のエラーが発生します。

[    0.794113] List of all partitions:
[    0.797600] 1f00             128 mtdblock0  (driver?)
[    0.802669] 1f01            1280 mtdblock1  (driver?)
[    0.807697] 1f02            1280 mtdblock2  (driver?)
[    0.812735] 1f03            8192 mtdblock3  (driver?)
[    0.817761] 1f04            8192 mtdblock4  (driver?)
[    0.822794] 1f05            8192 mtdblock5  (driver?)
[    0.827820] 1f06           82944 mtdblock6  (driver?)
[    0.832850] 1f07           82944 mtdblock7  (driver?)
[    0.837876] 1f08           12288 mtdblock8  (driver?)
[    0.842906] 1f09           49152 mtdblock9  (driver?)
[    0.847928] No filesystem could mount root, tried:  squashfs
[    0.853569] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
[    0.861806] CPU: 0 PID: 1 Comm: swapper Not tainted 3.10.73 #11
[    0.867732] [<800133ec>] (unwind_backtrace+0x0/0x12c) from [<80011a50>] (show_stack+0x10/0x14)
(...etc)

ルートfsは、以下を使用してビルドプロセスによってビルドされます(わかりやすくするために簡略化されています)。

# [Copy some things to $(ROOTFS_OUT_DIR)/mini_rootfs]
cd $(ROOTFS_OUT_DIR)/mini_rootfs && find . | cpio --quiet -o -H newc > $(ROOTFS_OUT_DIR)/backup.cpio
gzip -f -9 $(ROOTFS_OUT_DIR)/backup.cpio

これにより、$(ROOTFS_OUT_DIR)/backup.cpio.gzが作成されます

次に、カーネルは次のように構築されます。

@$(MAKE) -C $(LINUX_SRC_DIR) O=$(LINUX_OUT_DIR) \
             CONFIG_INITRAMFS_SOURCE="$(ROOTFS_OUT_DIR)/backup.cpio.gz" \
             CONFIG_INITRAMFS_ROOT_UID=0 CONFIG_INITRAMFS_ROOT_GID=0

これは、メインファームウェア(他の場所で構築されたもの)と同じ構成を使用するが、CONFIG_INITRAMFS_SOURCEを使用して最小限のramfsイメージを提供することを意味すると思います。

よりKernel.Org、ramfsは常にとにかく構築され、そしてCONFIG_INITRAMFS_SOURCEは使用にあらかじめ用意されたルートファイルシステムを指定するために必要なものをすべてです。ramfsの作成に問題があることを示すビルドエラーはなく、結果のカーネルのサイズはほぼ適切に見えます。backup.cpio.gzは約3.6MBです。最終的なzImageは6.1MBです。イメージは、サイズが8MBのパーティションに書き込まれます。

このイメージを使用するために、(カスタム)ブートローダーが使用するいくつかのフラグを設定して、最小パーティションから起動するように指示します。また、カーネルに別のコマンドラインを設定します。起動に使用するコマンドラインは次のとおりです。

console=ttyS0 rootfs=ramfs root=/dev/ram rw rdinit=/linuxrc mem=220M

最小ルートfsには「/ linuxrc」が含まれていることに注意してください。これは実際には/ bin / busyboxへのリンクです。

lrwxrwxrwx  1 root root   11 Nov  5  2015 linuxrc -> bin/busybox

なぜこれが起動しないのですか?なぜ「squashfs」ファイルシステムを試しているのですか?これは間違っていますか?

ジェレミー

解決しました!(カスタム)ビルドシステムで使用されるファイル名が更新の一部として変更されたため、正しいカーネルイメージがファームウェアパッケージに配置されていなかったことが判明しました。私は実際に「rootfs = ramfs」パラメータを使用して間違ったカーネルを起動しようとしていました。これにはramfsがありませんでした。

したがって、今後の参照のために、「rootfs = ramfs」を指定したが、カーネルが組み込みのrootfsで構築されていない場合にこのエラーが発生します(CONFIG_INITRAMFS_SOURCE = ...指定なし)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

リカバリモードでファイルシステムを読み取り/書き込みとしてマウントできません

分類Dev

Manjaroがルートおよびカーネルファイルシステムの再マウントを開始できませんでした

分類Dev

Manjaro linuxエラー:ルートおよびカーネルファイルシステムの再マウントを開始できませんでした

分類Dev

組み込みデバイスのファイルシステムで新しいパッケージを更新/インストールする方法は?

分類Dev

ループデバイス(ファイルを指している)で作成されたパーティションをマウントできません

分類Dev

サンドボックスファイルシステムのディレクトリのファイルをChromeアプリでユーザーが選択したディレクトリに保存または書き込みます

分類Dev

サンドボックスファイルシステムのディレクトリのファイルをChromeアプリでユーザーが選択したディレクトリに保存または書き込みます

分類Dev

ソースJarファイルを開き、メインクラスのマニフェストを読み込めませんでした

分類Dev

RAIDコントローラーが組み込まれた外付けハードドライブケースを備えたHDDのパーティションスキーム/ファイルシステムを破壊できたでしょうか?

分類Dev

ファイルまたはアセンブリを読み込めませんでした 'システム、バージョン= 4.0.0.0、カルチャ=ニュートラル'またはその依存関係の1つ

分類Dev

dep Ensureの実行時のエラー:マニフェスト、ロック、およびベンダーのグループ化された書き込み:VerifyVendorが存在すると主張したファイルをstatできませんでした

分類Dev

Flinkのストリーミングファイルシンクを使用してORCファイルを書き込みたいのですが、ファイルが正しく書き込まれません

分類Dev

新しくインストールしたシステムがtarファイルを抽出できません

分類Dev

新しいシステムにインストールした後、最新のカーネルアップデートを起動できません

分類Dev

起動に失敗しました:ルートおよびカーネルファイルシステムの再マウントを開始できませんでした

分類Dev

起動に失敗しました:ルートおよびカーネルファイルシステムの再マウントを開始できませんでした

分類Dev

AWSVPCの変更組み込みのローカルルートテーブルとTerraformを使用したネットワークインターフェース

分類Dev

Lenovo ThinkpadP73を使用したUbuntu18.04のインストールに失敗すると、「[ファームウェアのバグ]:TPM割り込みが機能しません」と表示されて起動できません。

分類Dev

インストールウィンドウには、Ubuntuのインストールで選択するためのルートファイルシステムが表示されません。マニュアルは役に立ちませんでした

分類Dev

ファイルシステムを読み取り専用でマウントし、書き込みをRAMにリダイレクトしますか?

分類Dev

「Windowsは指定されたデバイス、パス、またはファイルにアクセスできません。」Windows 8でのエラー、実行可能ショートカットではなく、インストールEXEのみ

分類Dev

uSDカードからの起動中にエラーが発生しました-ファイルシステムがルートをマウントできませんでした:Ext4

分類Dev

ネットワークを介してファイルシステムをマウントし、ファイルエクスプローラーで動作し、マウントを理解できません

分類Dev

Dockerイメージにローカルディレクトリをマウントしましたが、そのディレクトリからファイルを読み取ることができません

分類Dev

purrr :: walkを使用して、オンザフライのファイル名でネストされたデータフレームから書き込みます

分類Dev

サブリスト内の特定のティッカーについてのみ、パッケージyfinanceを使用してフォーマットごとにグループでダウンロードされたデータをパンダデータフレームに取得できません

分類Dev

サブリスト内の特定のティッカーについてのみ、パッケージyfinanceを使用してフォーマットごとにグループでダウンロードされたデータをパンダデータフレームに取得できません

分類Dev

コンパイルされたカーネルをインストールするときにUbuntuカーネルパニックが発生します。.debからカーネルをインストールするときに存在しません

分類Dev

コンパイルされたカーネルをインストールするときにUbuntuカーネルパニックが発生します。.debからカーネルをインストールするときに存在しません

Related 関連記事

  1. 1

    リカバリモードでファイルシステムを読み取り/書き込みとしてマウントできません

  2. 2

    Manjaroがルートおよびカーネルファイルシステムの再マウントを開始できませんでした

  3. 3

    Manjaro linuxエラー:ルートおよびカーネルファイルシステムの再マウントを開始できませんでした

  4. 4

    組み込みデバイスのファイルシステムで新しいパッケージを更新/インストールする方法は?

  5. 5

    ループデバイス(ファイルを指している)で作成されたパーティションをマウントできません

  6. 6

    サンドボックスファイルシステムのディレクトリのファイルをChromeアプリでユーザーが選択したディレクトリに保存または書き込みます

  7. 7

    サンドボックスファイルシステムのディレクトリのファイルをChromeアプリでユーザーが選択したディレクトリに保存または書き込みます

  8. 8

    ソースJarファイルを開き、メインクラスのマニフェストを読み込めませんでした

  9. 9

    RAIDコントローラーが組み込まれた外付けハードドライブケースを備えたHDDのパーティションスキーム/ファイルシステムを破壊できたでしょうか?

  10. 10

    ファイルまたはアセンブリを読み込めませんでした 'システム、バージョン= 4.0.0.0、カルチャ=ニュートラル'またはその依存関係の1つ

  11. 11

    dep Ensureの実行時のエラー:マニフェスト、ロック、およびベンダーのグループ化された書き込み:VerifyVendorが存在すると主張したファイルをstatできませんでした

  12. 12

    Flinkのストリーミングファイルシンクを使用してORCファイルを書き込みたいのですが、ファイルが正しく書き込まれません

  13. 13

    新しくインストールしたシステムがtarファイルを抽出できません

  14. 14

    新しいシステムにインストールした後、最新のカーネルアップデートを起動できません

  15. 15

    起動に失敗しました:ルートおよびカーネルファイルシステムの再マウントを開始できませんでした

  16. 16

    起動に失敗しました:ルートおよびカーネルファイルシステムの再マウントを開始できませんでした

  17. 17

    AWSVPCの変更組み込みのローカルルートテーブルとTerraformを使用したネットワークインターフェース

  18. 18

    Lenovo ThinkpadP73を使用したUbuntu18.04のインストールに失敗すると、「[ファームウェアのバグ]:TPM割り込みが機能しません」と表示されて起動できません。

  19. 19

    インストールウィンドウには、Ubuntuのインストールで選択するためのルートファイルシステムが表示されません。マニュアルは役に立ちませんでした

  20. 20

    ファイルシステムを読み取り専用でマウントし、書き込みをRAMにリダイレクトしますか?

  21. 21

    「Windowsは指定されたデバイス、パス、またはファイルにアクセスできません。」Windows 8でのエラー、実行可能ショートカットではなく、インストールEXEのみ

  22. 22

    uSDカードからの起動中にエラーが発生しました-ファイルシステムがルートをマウントできませんでした:Ext4

  23. 23

    ネットワークを介してファイルシステムをマウントし、ファイルエクスプローラーで動作し、マウントを理解できません

  24. 24

    Dockerイメージにローカルディレクトリをマウントしましたが、そのディレクトリからファイルを読み取ることができません

  25. 25

    purrr :: walkを使用して、オンザフライのファイル名でネストされたデータフレームから書き込みます

  26. 26

    サブリスト内の特定のティッカーについてのみ、パッケージyfinanceを使用してフォーマットごとにグループでダウンロードされたデータをパンダデータフレームに取得できません

  27. 27

    サブリスト内の特定のティッカーについてのみ、パッケージyfinanceを使用してフォーマットごとにグループでダウンロードされたデータをパンダデータフレームに取得できません

  28. 28

    コンパイルされたカーネルをインストールするときにUbuntuカーネルパニックが発生します。.debからカーネルをインストールするときに存在しません

  29. 29

    コンパイルされたカーネルをインストールするときにUbuntuカーネルパニックが発生します。.debからカーネルをインストールするときに存在しません

ホットタグ

アーカイブ