switch_root: /sbin/init를 실행할 수 없습니다: 심볼릭 링크 수준이 너무 많습니다.

switch_root: /sbin/init를 실행할 수 없습니다: 심볼릭 링크 수준이 너무 많습니다.

그래서 최근에 저는 Linux 프로젝트를 처음부터 작업하고 있었고 여러 터미널이 열려 있었기 때문에 계속 작업하다가 실수로 다른 터미널 탭(루트)에 해당 줄을 입력하여 심볼릭 링크가 완전히 엉망이 되었습니다! , bash에서는 어떤 명령도 실행할 수 없습니다.

    case $(uname -m) in
 i?86) ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3
 ;;
 x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64
 ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3
 ;;
esac

저는 아치 리눅스를 사용하고 있는데 컴퓨터를 재부팅했을 때 커널 패닉이 발생했고 "switch_root: /sbin/init: 너무 많은 심볼릭 링크 수준을 실행할 수 없습니다."라고 말했습니다.

해결책이 있나요? 누구든지 도움이 되었으면 좋겠습니다.

답변1

복원할 내용

이 명령을 실행할 때는 이 LFS변수가 설정되지 않을 수 있습니다 . 그래서 수정 /lib64/ld-linux-x86-64.so.2하고 /lib64/ld-lsb-x86-64.so.3.

당신은 손상되었습니다동적 로더. 따라서 동적으로 연결된 프로그램을 실행할 수 없습니다. , 등을 포함한 거의 모든 프로그램은 동적으로 연결됩니다 bash.initln

/lib64/ld-linux-x86-64.so.2가장 중요합니다. 64비트 Arch 프로그램에서 사용되는 동적 로더입니다. 심볼릭 링크는 다음과 같이 표현됩니다.glibc 패키지실행 중인 Linux 시스템에서 다음을 실행합니다.

ln -snf ld-2.33.so /lib/ld-linux-x86-64.so.2

참고: 숫자 2.33은 시간이 지남에 따라 변경됩니다!/lib/ld-*.so시스템에 어떤 파일이 있는지 확인하십시오 .

/lib64/ld-lsb-x86-64.so.3이는 Arch용으로 제작되지 않은 프로그램과의 호환성을 위한 것입니다. 그것은 출신이다ld-lsb. 이 패키지가 설치되어 있으면 링크를 복원하십시오.

ln -snf ld-linux-x86-64.so.2 /lib/ld-lsb-x86-64.so.3

설치되지 않은 경우 ld-lsb삭제하세요 /lib/ld-lsb-x86-64.so.3.

사전 계획을 통한 독립적 복구

동적 라이브러리가 손상된 경우에도 정적으로 링크된 실행 파일을 실행할 수 있습니다. 불안정하거나 롤링 릴리스 시스템을 실행하는 경우 기본 정적 연결 유틸리티 세트를 사용하는 것이 좋습니다. (단순한 쉘 이상입니다. 예를 들어 정적으로 링크된 bash는 심볼릭 링크를 생성하기 위해 아무 작업도 수행하지 않습니다.) Arch Linux에는 그런 기능이 없는 것 같습니다. Debian에서 실행 파일을 복사할 수 있습니다.busybox-static또는zsh-정적: 둘 다 셸 및 내장 핵심 유틸리티(예: cpln) 를 포함합니다.

이와 같은 사전 계획을 통해 여전히 실행 중인 루트 셸이 있는 한 다음을 실행할 수 있습니다 busybox-static.

ln -snf ld-2.33.so /lib/ld-linux-x86-64.so.2

아니면 zsh-static달리고

zmodload zsh/files
ln -snf ld-2.33.so /lib/ld-linux-x86-64.so.2

재부팅 후에도 여전히 멈춘다면 /sbin/init정적 셸로 부팅하세요. 다음 단계를 따르세요.최근에 사용한 회사 컴퓨터가 시작 시 충돌이 발생함"유용한 디버깅 기술:"에서 "Hold Shift"로 시작합니다. 명령줄 에 (또는 올바른 경로) linux추가하세요 .init=/bin/busybox-static

복구 시스템에서 수리

사전 계획이 없으면 제대로 작동하는 Linux 시스템을 실행하여 시스템을 복구해야 합니다. 이것아치스 위키월간 아치 미러를 시작하는 것이 좋습니다. 당신은 또한 사용할 수 있습니다시스템 복구 CD. 어느 쪽이든, lsblk루트 파티션을 파악 fdisk -l하고 . 그런 다음 심볼릭 링크를 수정합니다.lvsmount /dev/… /mnt

ln -snf ld-2.33.so /mnt/lib/ld-linux-x86-64.so.2

관련 정보