❌이전글/이전글

리눅스centos7 - 응급복구(2) GRUB 부트로더

당근은싫지만먹어야함 2019. 5. 2. 23:13
반응형

응급복구(1)에 이어 GRUB를 함부로 변경하지 못하게 비밀번호를 설정해봅시다

하지만 먼저 GRUB의 개념과 특징 파일들을 설명드릴게요


GRUB 부트로더


GNU GRUB은 GNU프로젝트의 부트로더입니다. 대부분 운영체제의 커널을 불러올 수 있으며, 인자를 넘겨 줄 수도있습니다.

GNU GRUB의 이전 이름은 Grand Unified Bootloader 이었습니다 . 대부분 리눅스 배포판에서 부트로더로 사용합니다.

CentOS에서 기본적으로 제공해주는 GRUB를 살펴봅시다. GRUB부트로더는 CentOS를 부팅할 때 처음 나오는 선택화면을 말합니다.



GRUB 의 특징


  • 부트 정보를 사용자가 임의로 변경해 부팅할 수가 있습니다
  • 다른 여러가지 운영체제와 멀티부팅이 가능합니다
  • 대화형 설정이므로 커널의 경로와 파일이름만 알면 부팅이 가능합니다


최금 CentOS에서는 이전GRUB보다 향상된 GRUB2 버전을 사용합니다. GRUB2는 셸 스크립트 문법을 사용하기 때문에  이전의 GRUB 보다 설정을 변경하기가 상당히 복잡해졌지만 많은 장점이 있다

  • 셸 스크립트를 지원함으로써 조건식과 함수를 사용
  • 동적 모듈을 로드할 수있다. 동적 모듈은 /boot/grub2/i386-pc/ 디렉터리에 mod 파일로 존재, GRUB2는 필요에 따라 이 파일들을 로드할 수있습니다.
  • 그래픽 부트 메뉴를 지원하며, 부트 스플래시 성능이 개선되었습니다
  • ISO 이미지를 이용해서 바로 부팅할 수 있습니다.
  • 설정파일의 형식이 변경되었지만, 더 향상된 내용을 포함할 수 있습니다


GRUB2의 설정 파일

/boot/grub2/grub.cfg

링크파일

/etc/grub2.cfg 


grub.cfg 파일은 일반사용자에게 읽기전용, root사용자도 이 파일을 직접 편집해서는 안됩니다

설정된 내용을 변경하고 싶다면 /etc/default/grub 파일과 /etc/grub.d 디렉터리의 파일을 수정후 

grub2-mkconfig 명령어를 실행해서 설정을 변경할 수 있습니다



그럼 먼저 /etc/default/grub 파일을 살펴봅시다

1행 : 처음 화면이 나오고 자동으로 부팅되는 시간 초단위입니다. -1로 하면 자동으로 넘어 가지 않고 엔트리를 직접선택 가능

2행 : 초기 부팅 화면의 각 엔트리 앞에 붙을 배포판 이름을 추출합니다. /etc/system-release파일에서 CentOS 글자를 추출해서

초기화면에 CentOS라는 글자고 표현되는 것을 볼 수 있다

3행 : saved는 이전 선택한 엔트리가 기본으로 선택되도록 한다는 뜻입니다. 0으로 지정하면 첫 번째 엔트리를 의미

4행 : 서브 메뉴 사용여부를 설정합니다. true 설정 시 서브 메뉴 사용x

5행 : GRUB이 나올 장치를 설정 기본값을 console로 지정하면 모니터로 설정됨

6행 : 부팅 시 커널에 전달할 파라미터를 지정 . 이전에 사용하던 GRUB1 의 피라미터도 일부 사용가능

7행 : true로 설정하면 메뉴 엔트리에서 복구와 관련된 것을 비활성화합니다




GRUB에 비밀번호를 설정 (누구나 GRUB을 편집하여 비밀번호를 변경하는 것을 막아봅시다, 응급복구(1)에서의 의문점)


vi /etc/grub.d/00_header 파일을 열고 4개의 행을 추가

위 사진의 2행에 GRUB 사용자이름이고 1234 비밀번호는  user의 비밀번호 1234 로 설정된 것입니다

:wq로 저장후 

내용을 적용하려면  grub2-mkconfig -o /boot/grub2/grub.cfg를 입력

reboot로 시스템을 재부팅  확인하려면 응급복구(1)에서 했던 내용을 다시 해보자



이상으로 글 읽어주셔서 감사합니다

반응형