쉘을 zsh로 변경한 후 로그인 프롬프트에서 루프가 멈춤

쉘을 zsh로 변경한 후 로그인 프롬프트에서 루프가 멈춤

기본 셸을 bash에서 zsh로 변경했고 재부팅 시 루프에 갇혀 비밀번호를 올바르게 입력한 후 로그인 프롬프트로 돌아갔습니다. 루트로 로그인할 수도 없습니다.

로그인 프롬프트에 있기 때문에 아무것도 편집할 수 없으므로 라이브 USB가 필요하지만 그 외에 무엇을 해야 할지/문제를 해결하는 방법을 잘 모르겠습니다.

편집: 요청한 대로 기본적으로 있는 tty1에 로그인하고 평소와 같이 사용자 이름과 비밀번호를 입력했지만 이렇게 하면 일부 텍스트가 너무 빨리 표시되어 읽을 수 없게 된 다음 다시 사용자에게 돌아갑니다. 이름. 일반적으로 터미널로 이동한 다음 startxfce4 명령을 사용하여 xfce를 시작합니다.

쉘을 변경하기 위해 chsh /bin/zsh를 실행했습니다.

sudo로도 실행했을 수도 있지만 어제 그렇게 했고 더 이상 그렇게 했는지 기억이 나지 않습니다.

답변1

정상적으로 구성된 시스템에서 변경된 쉘을 사용하면 chsh선택한 쉘이 유효하므로 쉘이 시작되지만 구성 파일 중 하나에 문제가 있어 즉시 종료됩니다.

녹음 후 빠르게 +를 눌러보세요 Ctrl. C시스템의 로드에 따라 쉘을 종료하지 않고 구성 파일 구문 분석을 중지하도록 지시하는 창이 현실적인 성공 가능성을 가질 만큼 오래 지속될 수도 있고 그렇지 않을 수도 있습니다. 가급적이면 과도한 디스크 활동 중에 몇 번 시도해 보십시오. 그러면 관련 파일이 디스크 캐시에 남지 않게 됩니다.

이것이 문제인 경우에도 .zshrc비대화형으로 로그인할 수 있습니다. 이는 콘솔에서는 불가능하지만 네트워크를 통해 수행할 수 있습니다.

ssh machinename 'mv .zshrc bad.zshrc'

FTP(SFTP 아님) 액세스 권한이 있는 경우 FTP는 구성 파일을 읽지 않으므로 이 방법으로 모든 구성 파일을 삭제할 수 있습니다. SSH나 SFTP를 사용하면 항상 쉘이 호출되기 때문에 문제가 있거나 에 문제가 있으면 .zprofile로그인할 수 없게 됩니다 .zshenv.

계정에 액세스할 수 없는 경우 루트 계정을 통해 문제를 해결해야 합니다. 루트 비밀번호가 있는 경우 콘솔에 루트로 로그인하면 됩니다. sudo를 통해서만 루트 계정에 액세스할 수 있다면 자신이 잠긴 것이므로 다른 사람이 대신 이 작업을 수행할 수 없다고 가정하면 컴퓨터에 물리적으로 액세스해야 하며 재부팅해야 합니다. 부트로더 프롬프트( Shift표시하려면 길게 눌러야 할 수도 있음)에서 커널 명령줄 끝에 init=/bin/sh( 로 시작하는 줄)을 추가합니다 . linux보다아치스 위키자세한 내용은.

루트 계정에서 액세스 권한을 얻으면 셸을 유효한 셸로 다시 변경하거나 어떤 파일이 문제를 일으키는지 추측할 수 있습니다. Zsh 읽기5개의 구성 파일 /etc과 5개의 홈 디렉터리.

계정에 대한 액세스를 복원한 후 문제를 일으키는 파일 을 모르는 경우 set -x. ~/.zshenv실행 zsh -l하여 로그인 셸을 실행하거나 다른 터미널에 로그인하여 무엇이 잘못되었는지 확인하세요.

셸을 다시 zsh로 변경하기 전에 zsh -l작동하는지 테스트하세요. 실행 후 chsh, 종료하기 전 다른 단말기에서 로그인이 가능한지 확인하세요.

답변2

내 컴퓨터로 Chrooting한 다음 쉘을 다시 bash로 변경하여 문제를 해결할 수 있었습니다. 이 문제는 처음에는 공유 라이브러리 문제로 인해 발생한 것으로 생각됩니다. 이제 문제가 해결되었으며 zsh를 내 쉘로 가져오려면 다시 시도해야 합니다. , 도와주셔서 감사합니다.

관련 정보