파일에서 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. 어떤 아키텍처 유틸리티가 어떤 아키텍처에서 컴파일되는지 알려줍니다(일반적으로 전체 운영 체제 사용자 영역이 하나의 아키텍처에 대해 컴파일되고 애플리케이션의 다른 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비트 설정이라는 것을 알 수 있을 것입니다.

관련 정보