26.10. 부팅 중 터미널 메뉴 편집
메뉴 항목을 수정하고 부팅 시 커널에 전달할 수 있습니다. 이는 부트 로더 메뉴의 선택한 메뉴 항목에서 e 키를 누를 때 트리거되는 메뉴 항목 편집기 인터페이스를 사용하여 수행됩니다. Esc 키는 변경 사항을 취소하고 표준 메뉴 인터페이스를 다시 로드합니다. c 키는 명령줄 인터페이스를 로드합니다.
명령행 인터페이스는 가장 기본적인 GRUB 2 인터페이스이지만 가장 많은 제어 권한을 부여하는 인터페이스이기도 합니다. 명령행을 사용하면 관련 GRUB 2 명령 뒤에 Enter 키를 입력하여 실행할 수 있습니다. 이 인터페이스는 컨텍스트 기반의 Tab 키 완성을 포함한 쉘 과 유사한 몇 가지 고급 기능을 갖추고 있으며 Ctrl+a 를 눌러 줄의 시작 부분으로 이동하고 Ctrl+e 를 눌러 줄의 끝으로 이동합니다. 또한 화살표,홈,종료 및 삭제 키는 bash 쉘에서 수행하는 대로 작동합니다.
26.10.1. 복구 모드로 부팅
복구 모드는 편리한 단일 사용자 환경을 제공하며 일반적인 부팅 프로세스를 완료할 수 없는 상황에서 시스템을 복구할 수 있습니다. 복구 모드에서는 시스템이 모든 로컬 파일 시스템을 마운트하고 일부 중요한 시스템 서비스를 시작하려고 하지만 네트워크 인터페이스를 활성화하지 않거나 더 많은 사용자가 시스템에 로그인할 수 있도록 합니다. Red Hat Enterprise Linux 7에서 복구 모드는 단일 사용자 모드와 동일하며 root
암호가 필요합니다.
- 부팅 중에 복구 모드로 들어가려면 GRUB 2 부팅 화면에서 편집용 e 키를 누릅니다.
64 enterprise IBM Power 시리즈의
linux
라인 끝에, x86-64 BIOS 기반 시스템의linux16
라인, 또는 UEFI 시스템의linuxefi
라인에 다음 매개 변수를 추가하십시오.systemd.unit=rescue.target
Ctrl+a 및 Ctrl+e 를 눌러 각 줄의 시작 및 끝으로 건너뜁니다. 일부 시스템에서는 홈 및 종료일 도 작동할 수 있습니다.
동등한 매개변수인
1
,s
및단일
도 커널에 전달할 수 있습니다.- Ctrl+x 를 눌러 매개 변수를 사용하여 시스템을 부팅합니다.
26.10.2. 긴급 모드로 부팅
긴급 모드는 가능한 가장 최소한의 환경을 제공하며 시스템이 복구 모드로 전환되지 않은 경우에도 시스템을 복구할 수 있습니다. 긴급 모드에서는 읽기용으로만 루트
파일 시스템을 마운트하고 다른 로컬 파일 시스템을 마운트하지 않고 네트워크 인터페이스를 활성화하지 않으며 몇 가지 필수 서비스만 시작합니다. Red Hat Enterprise Linux 7의 긴급 모드에서는 루트
암호가 필요합니다.
- 긴급 모드로 들어가려면 GRUB 2 부팅 화면에서 편집용 e 키를 누릅니다.
64 enterprise IBM Power 시리즈의
linux
라인 끝에, x86-64 BIOS 기반 시스템의linux16
라인, 또는 UEFI 시스템의linuxefi
라인에 다음 매개 변수를 추가하십시오.systemd.unit=emergency.target
Ctrl+a 및 Ctrl+e 를 눌러 각 줄의 시작 및 끝으로 건너뜁니다. 일부 시스템에서는 홈 및 종료일 도 작동할 수 있습니다.
동등한 매개변수,
emergency
및-b
도 커널에 전달할 수 있습니다.- Ctrl+x 를 눌러 매개 변수를 사용하여 시스템을 부팅합니다.
26.10.3. 디버그 쉘로 부팅
systemd
디버그 쉘은 systemd
관련 부팅 문제를 진단하는 데 사용할 수 있는 시작 프로세스 초기에 쉘을 제공합니다. 디버그 쉘에서
, systemctl
list-jobssystemctl list-units
를 사용하여 부팅 문제의 원인을 찾을 수 있습니다. 또한 로그 메시지 수를 늘리기 위해 커널 명령줄에 debug
옵션을 추가할 수 있습니다. systemd
의 경우 커널 명령줄 옵션 debug
는 이제 systemd.log_level=debug
의 바로 가기입니다.
디버그 쉘 명령 추가
이 세션에 대해서만 디버그 쉘을 활성화하려면 다음과 같이 진행하십시오.
- GRUB 2 부팅 화면에서 편집하려는 메뉴 항목으로 커서를 이동한 후 편집할 e 키를 누릅니다.
64 enterprise IBM Power 시리즈의
linux
라인 끝에, x86-64 BIOS 기반 시스템의linux16
라인, 또는 UEFI 시스템의linuxefi
라인에 다음 매개 변수를 추가하십시오.systemd.debug-shell
선택적으로
debug
옵션을 추가합니다.Ctrl+a 및 Ctrl+e 를 눌러 각 줄의 시작 및 끝으로 건너뜁니다. 일부 시스템에서는 홈 및 종료일 도 작동할 수 있습니다.
- Ctrl+x 를 눌러 매개 변수를 사용하여 시스템을 부팅합니다.
필요하면 systemctl enable debug-shell
명령을 사용하여 모든 부팅 시 시작되도록 디버그 쉘을 설정할 수 있습니다. 또는 grubby
도구를 사용하여 GRUB 2 메뉴에서 커널 명령행을 영구적으로 변경할 수 있습니다. grubby
사용에 대한 자세한 내용은 26.4절. “grubby 도구를 사용하여 GRUB 2 메뉴의 영구 변경 사항 만들기” 을 참조하십시오.
인증을 사용하지 않으므로 디버그 쉘을 영구적으로 활성화하면 보안 위험이 있습니다. 디버깅 세션이 종료되면 비활성화합니다.
디버그 쉘에 연결
부팅 프로세스 중에 systemd-debug-generator
는 TTY9에서 디버그 쉘을 구성합니다.
- Ctrl+Alt+F9 를 눌러 디버그 쉘에 연결합니다. 가상 머신으로 작업하는 경우 이 키 조합을 전송하려면 가상화 애플리케이션의 지원이 필요합니다. 예를 들어 Virtual Machine Manager 를 사용하는 경우 메뉴에서 를 선택합니다.
-
디버그 쉘에는 인증이 필요하지 않으므로 TTY9:
[root@localhost /]#
에서 다음과 유사한 프롬프트가 표시됩니다. 필요한 경우 디버그 쉘에 있는지 확인하려면 다음과 같이 명령을 입력합니다.
/]# systemctl status $$ ● debug-shell.service - Early root shell on /dev/tty9 FOR DEBUGGING ONLY Loaded: loaded (/usr/lib/systemd/system/debug-shell.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2015-08-05 11:01:48 EDT; 2min ago Docs: man:sushell(8) Main PID: 450 (bash) CGroup: /system.slice/debug-shell.service ├─ 450 /bin/bash └─1791 systemctl status 450
- 부팅이 성공하면 기본 쉘로 돌아가려면 Ctrl+Alt+F1 을 누릅니다.
시작 문제를 진단하려면 커널 명령줄에
을 한 번 이상 추가하여 특정 systemd 장치를 마스킹할 수 있습니다. 부팅 프로세스 중에 추가 프로세스를 시작하려면 커널 명령줄에 systemd
. mask=unit_namesystemd.wants=unit_name
을 추가합니다. systemd-debug-generator(8)
매뉴얼 페이지는 이러한 옵션을 설명합니다.
26.10.4. 루트 암호 변경 및 설정
루트
암호를 설정하는 것은 Red Hat Enterprise Linux 7 설치의 필수 부분입니다. 루트
암호를 잊어버리거나 손실하면 재설정할 수 있지만, wheel 그룹의 멤버인 사용자는 다음과 같이 루트
암호를 변경할 수 있습니다.
~]$ sudo passwd root
GRUB 2에서는 Red Hat Enterprise Linux 6에 포함된 GRUB에서와 마찬가지로 더 이상 단일 사용자 모드에서 암호 재설정이 수행되지 않습니다. 이제 단일 사용자 모드와
긴급
모드에서도root
암호를 작동해야 합니다.
루트
암호를 재설정하는 두 가지 절차는 다음과 같습니다.
- 설치 디스크를 사용하여 루트 암호 재설정 GRUB 2 메뉴를 편집하지 않고도 쉘 프롬프트로 이동합니다. 이 방법은 두 절차 중 더 짧으며 권장되는 방법이기도 합니다. 부팅 디스크 또는 일반 Red Hat Enterprise Linux 7 설치 디스크를 사용할 수 있습니다.
-
rd.break를 사용하여 루트 암호 재설정 제어가
initramfs
에서systemd
로 전달되기 전에rd.break
를 사용하여 부팅 프로세스를 중단합니다. 이 방법의 단점은 더 많은 단계가 필요하며 GRUB 2 메뉴를 편집해야 할 필요가 있으며 SELinux 파일의 레이블을 다시 지정하거나 SELinux 강제 모드를 변경하는 데 걸리는 시간 중에서 선택한 다음 부팅이 완료되면/etc/shadow/
에 대한 SELinux 보안 컨텍스트를 복원해야 한다는 것입니다.
설치 디스크를 사용하여 루트 암호 재설정
- 시스템을 시작하고 BIOS 정보가 표시되면 부팅 메뉴에 대한 옵션을 선택하고 설치 디스크에서 부팅하도록 선택합니다.
-
Troubleshooting
을 선택합니다. -
Rescue a Red Hat Enterprise Linux System
을 선택합니다. -
기본 옵션인
Continue
를 선택합니다. 이 시점에서 암호화된 파일 시스템이 있는 경우 암호로 승격됩니다. - OK 를 눌러 쉘 프롬프트가 표시될 때까지 표시되는 정보를 확인합니다.
다음과 같이 파일 시스템
루트
를 변경합니다.sh-4.2# chroot /mnt/sysimage
-
passwd
명령을 입력하고 명령줄에 표시된 지침에 따라root
암호를 변경합니다. 자동 복구 가능
파일을 제거하여 디스크의 SELinux 재지정을 사용하는 시간을 방지합니다.sh-4.2# rm -f /.autorelabel
-
exit
명령을 입력하여chroot
환경을 종료합니다. -
exit
명령을 다시 입력하여 초기화를 재개하고 시스템 부팅을 완료합니다.
rd.break를 사용하여 루트 암호 재설정
- 시스템을 시작하고 GRUB 2 부팅 화면에서 편집용 e 키를 누릅니다.
rhgb
및quiet
매개 변수를 끝에서 또는linux16
라인의 끝 근처에, 또는 UEFI 시스템의linuxefi
를 제거하십시오.Ctrl+a 및 Ctrl+e 를 눌러 각 줄의 시작 및 끝으로 건너뜁니다. 일부 시스템에서는 홈 및 종료일 도 작동할 수 있습니다.
중요시스템 메시지를 활성화하려면
rhgb
및quiet
매개 변수를 제거해야 합니다.64 enterprise IBM Power 시리즈의
linux
라인 끝에, x86-64 BIOS 기반 시스템의linux16
라인, 또는 UEFI 시스템의linuxefi
라인에 다음 매개 변수를 추가하십시오.rd.break enforcing=0
enforcing=0
옵션을 추가하면 SELinux 레이블을 다시 지정하는 데 걸리는 시간을 생략할 수 있습니다.initramfs
는 제어를 Linux 커널에 전달하기 전에 중지되므로루트
파일 시스템에서 작업할 수 있습니다.initramfs
프롬프트는 Linux 행에 지정된 마지막 콘솔에 표시됩니다.Ctrl+x 를 눌러 변경된 매개 변수를 사용하여 시스템을 부팅합니다.
암호화된 파일 시스템에서는 이 시점에서 암호가 필요합니다. 그러나 메시지를 로깅하여 모호하기 때문에 암호 프롬프트가 나타나지 않을 수 있습니다. Backspace 키를 눌러 프롬프트를 확인할 수 있습니다. 로깅 메시지를 무시하는 동안 키를 해제하고 암호화된 파일 시스템의 암호를 입력합니다.
initramfs
switch_root
프롬프트가 나타납니다.파일 시스템은
/sysroot/
에 읽기 전용으로 마운트됩니다. 파일 시스템에 쓸 수 없는 경우 암호를 변경할 수 없습니다.파일 시스템을 쓰기 가능으로 다시 마운트합니다.
switch_root:/# mount -o remount,rw /sysroot
쓰기가 활성화된 파일 시스템이 다시 마운트됩니다.
파일 시스템의
루트
를 다음과 같이 변경합니다.switch_root:/# chroot /sysroot
프롬프트가
sh-4.2#
.passwd
명령을 입력하고 명령줄에 표시된 지침에 따라root
암호를 변경합니다.시스템에 쓸 수 없는 경우 다음 오류와 함께 passwd 툴이 실패합니다.
Authentication token manipulation error
암호 파일을 업데이트하면 잘못된 SELinux 보안 컨텍스트가 있는 파일이 생성됩니다. 다음 시스템 부팅 시 모든 파일의 레이블을 다시 지정하려면 다음 명령을 입력합니다.
sh-4.2# touch /.autorelabel
또는 대용량 디스크의 레이블을 다시 지정하는 데 걸리는 시간을 절약하기 위해 3단계에서
enforcing=0
옵션이 포함되어 있는 경우 이 단계를 생략할 수 있습니다.파일 시스템을 읽기 전용으로 다시 마운트합니다.
sh-4.2# mount -o remount,ro /
-
exit
명령을 입력하여chroot
환경을 종료합니다. exit
명령을 다시 입력하여 초기화를 재개하고 시스템 부팅을 완료합니다.이 시점에서는 암호화된 파일 시스템을 사용하는 경우 해당 텍스트 또는 문구가 필요합니다. 그러나 메시지를 로깅하여 모호하기 때문에 암호 프롬프트가 나타나지 않을 수 있습니다. 를 누르고 Backspace 키를 눌러 프롬프트를 확인할 수 있습니다. 로깅 메시지를 무시하는 동안 키를 해제하고 암호화된 파일 시스템의 암호를 입력합니다.
참고SELinux 레이블 지정 프로세스에는 시간이 오래 걸릴 수 있습니다. 프로세스가 완료되면 시스템 재부팅이 자동으로 수행됩니다.
3단계에서
enforcing=0
옵션을 추가하고 8 단계에서touch /.autorelabel
명령을 생략하면 다음 명령을 입력하여/etc/shadow
파일의 SELinux 보안 컨텍스트를 복원합니다.~]# restorecon /etc/shadow
다음 명령을 입력하여 SELinux 정책 실행을 다시 켜고 해당 명령이 켜져 있는지 확인합니다.
~]# setenforce 1 ~]# getenforce Enforcing