Bestimmen der Linux-Architektur anhand von Dateien

Bestimmen der Linux-Architektur anhand von Dateien

Ich habe ein System mit einer nicht wiederherstellbaren /usrPartition. Ich habe Angst, dass die Laufwerke kaputt gehen. Ich habe es in einer LiveCD-Umgebung gebootet und kann mich nicht an die Installationsarchitektur erinnern. Das Einzige, was ich weiß, ist CentOS 5.5.

Aufgrund der Live-Umgebung funktionieren keine der Standardmethoden wie uname oder checking /proc.

Dies ist der verwendete Kernel: vmlinuz-2.6.18-194.32.1.el5. Gibt es etwas, wonach ich die Datei durchsuchen kann, um herauszufinden, ob es sich um eine 32- oder 64-Bit-Architektur handelt?

Oder kann ich mir etwas anderes im Dateisystem ansehen? Nichts davon /usrwird funktionieren, da diese Partition jetzt tot ist.

Antwort1

file vmlinuz-2.6.18-194.32.1.el5gibt an, für welche Architektur der Kernel kompiliert wurde. Wenn eine Datei vorhanden ist /boot/config-2.6.18-194.32.1.el5, enthält sie weitere Informationen zu den Kompilierungsoptionen des Kernels, einschließlich der Prozessorarchitektur.

ls /lib*wird Ihnen sagen, welche Architektur das Userland unterstützt. Wenn es beispielsweise /lib/ld-linux.so.2auf einem x86-System vorhanden ist, haben Sie zumindest grundlegende 32-Bit-Unterstützung. Wenn es /lib/ld-linux-x86-64.so.2oder gibt /lib64/ld-linux-x86-64.so.2, haben Sie zumindest grundlegende 64-Bit-Unterstützung (amd64). file /bin/lswird Ihnen sagen, aus welcher Architektur die Dienstprogramme kompiliert werden (normalerweise wird das gesamte OS-Userland für eine Architektur kompiliert, möglicherweise mit zusätzlichen Bibliotheken für eine andere ABI für benutzerdefinierte Anwendungen).

Der Kernel und das Userland haben nicht immer dieselbe Architektur. Amd64-Kernel können 32-Bit-Benutzerprogramme ausführen (aber nicht umgekehrt). Wenn Sie wissen möchten, ob Sie eine 32-Bit- oder 64-Bit-Edition von CentOS haben, prüfen Sie, ob es /bin/lssich um ein 32-Bit- oder 64-Bit-Programm handelt.

Antwort2

Führen Sie es einfach fileauf dem Kernel-Image aus. Es wird angezeigt, mit welcher Architektur die Binärdatei kompiliert wurde. file vmlinuz-2.6.18-194.32.1.el5.

BEARBEITEN: Das Ausführen der Datei auf dem Kernel des OP gibt nicht die genaue Architektur zurück, daher ist die Antwort ungültig. Ich werde es auf meinen Kerneln versuchen und sehen, ob ich mehr Informationen bekomme.

Antwort3

Suchen Sie nach einem /lib64-Verzeichnis. Wenn es vorhanden und nicht leer ist, hatten Sie wahrscheinlich eine 64-Bit-Installation, wenn nicht, war es eine 32-Bit-Installation.

Antwort4

Funktioniert rpm/ yumfunktioniert es noch? rpm -q kernelSollte es x86_64am Ende sein, sollte es ein 64-Bit-Setup sein.

verwandte Informationen