ファイルからのLinuxアーキテクチャの決定

ファイルからのLinuxアーキテクチャの決定

私のシステムには回復できない/usrパーティションがあります。ドライブの不良が心配され、LiveCD環境で起動したのですが、インストールアーキテクチャが何なのかは覚えておらず、最も記憶に残るのはCentOS 5.5だったということです。

Live環境のため、uname、checkなどの標準的な方法は動作しません/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*ユーザーモードがサポートするアーキテクチャを教えてくれます。たとえば、x86システムを使用している場合は、/lib/ld-linux.so.2少なくともデフォルトの32ビットをサポートします。その場合は、少なくともデフォルトの64ビット(amd64)をサポートします/lib/ld-linux-x86-64.so.2。どのアーキテクチャユーティリティがどのアーキテクチャでコンパイルされるかを示します(通常、オペレーティングシステムの全ユーザー領域が1つのアーキテクチャでコンパイルされ、アプリケーションの他のABIをカスタマイズするための追加のライブラリもあります)。/lib64/ld-linux-x86-64.so.2file /bin/ls

カーネルとユーザー領域は常に同じアーキテクチャではありません。 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?最後rpm -q kernelに見ると、x86_6464ビット設定であることがわかります。

関連情報