OS/Linux

Linux | GRUB

만두는정말맛있어 2023. 9. 8. 17:32

GRUB(GRand Unified Bootloader)

- 다양한 파일 시스템 지원

- 부팅 시 커널 인자를 조정하여 동적 부팅 지원

- 메뉴 인터페이스 방식을 기본으로 사용하지만 배쉬와 같은 명령행 인터페이스를 추가로 제공함

- 그래픽 메뉴와 배경 그림 삽입 가능


부팅 모드

- 해당 화면에서 'e' 입력 시 편집 모드로 진입하여 사용자가 직접 부팅 설정 가능

- 해당 화면에서 'c' 입력 시 명령 프롬포트 모드로 진입하여 명령행으로 직접 입력 가능


설정 파일

- /boot/grub2/grub.cfg (심볼릭 링크 : /etc/grub2.cfg)

- 해당 파일은 셸 스크립트 형태로 작성되어 있음

- 파일 수정 후 'grub2-mkconfig -o [파일명]' 명령을 실행하여야 적용됨

# GRUB_TIMEOUT=5 : 부트 화면에서 대기하는 시간을 초 단위로 지정, 기본값 5초

# GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" : 부트 환면에서 각 엔트리 앞에 보여질 리눅스 배포판 이름을 추출할 때 사용함, /etc/system-release 라는 파일에서 'CentOS Linux'하는 문자열을 추출함

# GRUB_DEFAULT=saved : 부트 화면에서 제시된 목록 중에 기본적으로 부팅할 모드를 선택하는 항목

# GRUB_DISABLE_SUBMENU=true : grub-mkconfig에서 버전 번호가 가장 높은 커널에 대해 최상위 메뉴 항목으로 생성하고 다른 모드 커널 또는 복구 모드에 대한 대체 항목을 하위 메뉴로 생성함

# GRUB_TERMINAL_OUTPUT="console" : GRUB이 출력되는 터미널 장치를 설정

# GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet" : 커널 인자값(arguments)를 지정하는 항목

# GRUB_DISABLE_RECOVERY="true" : 부트 메뉴 엔트리에 복구 모드 표시 여부 지정


활용

1) root 비밀번호 분실 - 응급 복구 모드로 부팅

- GRUB 부트 메뉴에서 'e'를 입력하여 편집 상태로 진입

- 'ro rhgb quite LANG=ko_KR.UTF-8' 부분을 'rw init=/bin/sh'로 수정

- Ctrl + X 를 입력하여 부팅

- 사용자 확인 후 passwd 명령을 사용하여 패스워드 변경

- SELinux 사용 시, 라벨 변경 명령 실행 (touch / .autorelabel)

- 재부팅 (exec /sbin/init)

 

2) GRUB 패스워드 설정

- 무분별한 응급 복구 모드 접근 방지를 위해 GRUB에 패스워드 설정

- vi나 gedit를 이용하여 /etc/grub.d/00_header 파일 편집

- GRUB 사용자 및 패스워드 설정

- 'grub2-mkconfig -o /boot/grub2/grub.cfg' 명령 실행

 

3) 콘솔 모드의 터미널 해상도 변경

- vi나 gedit를 이용하여 /etc/default/grub 파일 편집

- 'GRUB_CMDLINE_LINUX="rhgb quiet"' 부분의 뒷부분에 'vga=값'을 추가함

- 'grub2-mkconfig -o /boot/grub2/grub.cfg' 명령 실행

- 재부팅

 

4) 네트워크 어댑터 이름 변경

vi나 gedit를 이용하여 /etc/default/grub 파일 편집

-  'GRUB_CMDLINE_LINUX="rhgb quiet"' 부분의 뒷부분에 'net.ifnames=0'을 추가함

'grub2-mkconfig -o /boot/grub2/grub.cfg' 명령 실행

- 재부팅

728x90