ファイルから Linux アーキテクチャを判断する

ファイルから Linux アーキテクチャを判断する

回復不可能なパーティションを持つシステムがあります/usr。ドライブが壊れるのではないかと心配して、LiveCD 環境で起動しましたが、インストール アーキテクチャが何だったか思い出せません。せいぜい CentOS 5.5 です。

Live 環境のため、 uname や checking などの標準的な方法はどれも機能しません/proc

使用されたカーネルは次のとおりです: vmlinuz-2.6.18-194.32.1.el5 アーキテクチャが 32 ビットか 64 ビットかを判断するためにファイルをスキャンできるものはありますか?

または、ファイル システムで他に確認できるものはありますか?/usrそのパーティションは現在使用されていないため、何も機能しません。

答え1

file vmlinuz-2.6.18-194.32.1.el5カーネルがどのアーキテクチャ用にコンパイルされたかがわかります。 ファイルがある場合は/boot/config-2.6.18-194.32.1.el5、プロセッサ アーキテクチャを含むカーネル コンパイル オプションに関する詳細情報が表示されます。

ls /lib*は、ユーザーランドがサポートしているアーキテクチャを示します。たとえば、/lib/ld-linux.so.2x86 システムに がある場合、少なくとも基本的な 32 ビット サポートがあります。/lib/ld-linux-x86-64.so.2または/lib64/ld-linux-x86-64.so.2がある場合、少なくとも基本的な 64 ビット (amd64) サポートがあります。file /bin/lsは、どのアーキテクチャ ユーティリティがコンパイルされているかを示します (通常、OS ユーザーランド全体が 1 つのアーキテクチャ用にコンパイルされ、カスタム アプリケーション用の別の ABI 用の追加ライブラリが含まれる場合があります)。

カーネルとユーザーランドは、必ずしも同じアーキテクチャではありません。Amd64 カーネルは 32 ビット ユーザー プログラムを実行できます (ただし、その逆はできません)。CentOS の 32 ビット版と 64 ビット版のどちらを使用しているかを確認したい場合は、/bin/lsプログラムが 32 ビットか 64 ビットかを確認してください。

答え2

fileカーネル イメージ上で 実行するだけです。バイナリがどのアーキテクチャとしてコンパイルされたかが表示されますfile vmlinuz-2.6.18-194.32.1.el5

編集: OP のカーネルでファイルを実行しても正確なアーキテクチャが返されないため、回答は有効ではありません。自分のカーネルで試してみて、さらに情報が得られるか確認します。

答え3

/lib64 ディレクトリを探します。そこに存在し、空でない場合は、おそらく 64 ビット インストールであり、存在しない場合は 32 ビットです。

答え4

rpm/まだ動作しますかyum?と表示されていれば、64 ビット セットアップであることがrpm -q kernelわかります。x86_64

関連情報