web-dev-qa-db-ja.com

カーネルバイナリの場所(/ bootにない場合)?

/bootの標準の場所にカーネルバイナリが見つかりませんでした。ファイルシステム全体でvmlinuxまたはbzimageも検索しました

find / -iname vmlin*
find / -iname bzimage

ただし、これは標準デスクトップではなく組み込みデバイスです。カーネルバイナリがマウントされていない別の保存場所にある可能性はありますか?.

例:

/はSDカードにマウントされ、カーネルはフラッシュに書き込まれますか?

そうでない場合、カーネルバイナリを見つけるためのオプションは何ですか?

/bootは、デスクトップ/サーバーディストリビューションのカーネルの標準的な場所ですが、組み込みシステムは大きく異なります。カーネルの格納場所はブートローダーに完全に依存します。埋め込まれたブートローダーはLinuxファイルシステムを読み取ることができないことが多いため、ファイルではない場合があります。

たとえば、 with U-Boot (人気の埋め込みブートローダー)、あなたは mkimage 、これは 別のFATパーティションに書き込まれるか 、または他のシステム固有の形式で書き込まれます。カーネルイメージがFATパーティションにある場合、Linuxはそのパーティションにアクセスする必要がないため、そのパーティションはLinuxでマウントされないことがよくあります(アップグレード中を除き、ほとんどの組み込みシステムはブートローダーとは別にカーネルをアップグレードしません)。

その結果、あなたはそれを探す必要があります。ヘルプが必要な場合は、システムを非常に正確に説明する必要があります。それでも、組み込みシステムの人気度に応じて、サポートできる場合とできない場合があります。自分で見つけることができない場合は、組み込みシステムのプロバイダーにサポートを依頼することを検討してください。

組み込みデバイスがUブートを使用している場合、カーネルイメージはNANDフラッシュの特定のパーティションに書き込まれる可能性があります。参照 this !これが当てはまる場合、アクセスできる場合は、Uブートのソースコードを確認することでバイナリを見つけることができます。手がかりがないか環境変数を確認することもできます。これはシステムによって大きく異なるため、具体的には説明できません。

2
Dean

はい。異なるパーティションにカーネルを置くことが可能になります

カーネルの場所を見つけるには、

1. see the grub.cfg OR grub.conf file 
2. Examine the output of `cat > /proc/cmdline`
1
SHW