이것은 아마도 중복되는 질문 일 수 있지만 CentOS (특히 VM에서)의 로그인 / 부팅 프로세스에 익숙하지 않아 검색 대상을 알 수 없습니다.
VirtualBox에서 CentOS 7을 실행하고 있습니다. 실수로 파일 gnome-terminal
끝에 추가 했습니다 ~/.bashrc
. 이제 로그인 할 때 터미널 창이 나타납니다. 터미널 세션이 실행 .bashrc
되어 다른 창 등이 열리고 많은 gnome-terminal
터미널 창이 넘칩니다 .
GUI 로그인없이 터미널 세션에 로그인하려고하는데 ( gnome-terminal
실패) GUI없이 부팅 할 수 없습니다. 나는이 질문에 대한 답을 성공적으로 사용하려고 시도했습니다. 매번 GUI 로그인을받습니다 : CLI에서 CentOS를 부팅하는 방법? . 부팅 할 때 grub 구성을 편집하는 또 다른 방법이 있습니까, 아니면 Ubuntu의 Ctrl + Alt + F1과 같은 GUI 로그인에서 새 터미널 인스턴스를 얻는 방법이 있습니까? (예, 시도했습니다. CentOS 7에서 작동하지 않거나 VirtualBox VM에서 작동하지 않습니다.) 또는 GUI없이 터미널 세션을 얻을 수있는 다른 방법이 있습니까? .bashrc
이 난장판을 고쳐?
답변
CtrlAltF1호스트에 의해 캡처되거나 VirtualBox가 올바르게 전달되지 않을 수 있습니다. 몇 가지 빠른 테스트 를 통해 VirtualBox에 정의 된 호스트 키를 사용할 수 있음을 알 수 있습니다 CtrlAlt( Mac Ctrl에서는 왼쪽 또는 왼쪽 일 수 있음 ⌘). 따라서를 눌러 ⌘F1VirtualBox에서 TTY1로 전환했습니다 ( ⌘F7GUI 로 돌아 가기 위해 비슷하게 ).
답변
라이브 Linux CD로 부팅 한 다음 CentOS 파일 시스템을 마운트하고 거기서 .bashrc 파일을 편집 할 수 있습니다.
답변
GRUB 구성에서 Init / bin / sh
GUI로 이동하는 대신 루트 쉘을로드하도록 grub 구성을 편집 할 수 있습니다.
- VM 재부팅
- 그럽 메뉴가 나타나면 첫 번째 항목을 선택하고을 눌러
e
편집합니다. 표시되지 않으면 부팅하는 동안 Shift 키를 다시 누른 상태로 유지하십시오 -
linux16
또는로 시작하는 줄을 찾으십시오linux
. 광산은 이렇게 생겼습니다. 약간 다를 수 있습니다linux16 /vmlinuz-3.10.0-327.18.2.el7.x86_64 root=/dev/mapper/centos-root ro crashkernal=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF8
-
변경 사항을 쓸 수 있도록
ro
torw
( readonly 플래그를 readwrite로 변경)init=/bin/sh
를 행에 추가 하십시오. 이것은 시작시/bin/sh
대신 리눅스가 실행되도록 지시init
합니다. 나의 참가 예linux16 /vmlinuz-3.10.0-327.18.2.el7.x86_64 root=/dev/mapper/centos-root rw crashkernal=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF8 init=/bin/sh
-
구성을 실행하려면 Ctrl-X를 누르십시오. 저장되지 않습니다.
-
루트 쉘이 나타납니다. 이를 사용
.bashrc
하여 문제를 해결하고 문제를 일으키는 줄을 제거하십시오.셸은 일반적으로
init
프로세스 용으로 예약 된 PID 1로 실행되므로이 상태에서 OS를 계속 사용해서는 안됩니다 . 수동으로 초기화를 계속할 수는exec /sbin/init
있지만 재부팅하는 것이 좋습니다. -
정상적으로 재부팅하십시오. 이전 변경 사항을 잊어 버릴 것입니다.
GRUB에서 Linux로 전달 된 부팅 옵션을 근본적으로 편집하고 있습니다. GRUB에서 루트 파일 시스템을 읽기-쓰기로 마운트 /bin/sh
하고 init 프로세스를 시작 하도록합니다.
이것은 Centos 7 및 VirtualBox 4.3.12를 사용하는 경우 효과적입니다.
답변
수리 된 사본 .bashrc
을 제자리에 두다
작업 할 다른 시스템이있는 경우 손상된 파일의 사본을 잡고 문제점을 수정 한 다음 원래 위치로 되돌려 놓으십시오. 로그인 및 로그인 명령을 호출하지 않습니다.
user@backup ~ $ scp user@homehost:~/.bashrc busted.bashrc
user@backup ~ $ vim busted.bashrc # fix, fix
user@backup ~ $ scp busted.bashrc user@homehost:~/.bashrc
user@backup ~ $ rm busted.bashrc
부록 : OP가 아래에 지적한대로에 액세스하려면 SSH 액세스가 필요합니다 homehost
. 이것이 옵션이 아닌 대신 FTP / SFTP를 사용할 수있는 경우, 파일 전송 방법이 필요한 것을 수행 할 것입니다. 이는 단순히 올바른 로그인 파일을 설치하는 것입니다.