본문 바로가기

Programming/Linux

[Linux/CentOS] 리눅스 GRUB 부트로더

  • GRUB 부트 로더
    - CentOS를 부팅할 때 처음 나오는 화면

  • 기본적 특징
    - 부트 정보를 사용자가 임의로 변경해 부팅할 수 잇음
    즉, 부트 정보가 올바르지 않더라도 수정하여 부팅할 수 있음

  • 다른 여러 운영체제와 멀티부팅 가능

  • 대화영 설정을 제공해 커널 경로와 파일 이름만 알면 부팅이 가능함

 

[ GRUB 2 ]

  • GRUB 2는 셸 스크립트 문법을 사용하기에 이전의 GRUB보다 설정 변경이 훨씬 복잡함

  • 장점

    - 셀 스크립트를 지원함으로 조건시고가 함수를 사용할 수있음

    - 동적 모듈 로드 가능
    [위치] /boot/grub2/i386-pc/    디렉터리에 mod 파일로 존재함 

    - 그래픽 부트 메뉴를 지원하며, 부트 스플래시 성능이 개선됨

    - ISO 이미지를 이용해 바로 부팅 가능

    - 설정 파일의 형식이 변경되었으나, 더 향상된 내용을 포함할 수 있음

설정 파일

  • GRUB 2 설정 파일
    [설정] /boot/grub2/grub.cfg 
    [링크] /etc/grub2.cfg

  • grub.cfg 파일은 일반 사용자에게 읽기 전용이며, root 사용자도 이를 직접 편집해서는 안 됨.
    설정을 변경하려면 /etc/default/grub 파일과 /etc/groub/d/ 디렉터리의 파일을 수정한 후 grub2-mkconfig 명령 실행

설정 내용

  1. GRUB_TIMEOUT=5
    - 처음 화면이 나오고 자동으로 부팅되는 시간을 초 단위로 설정
    - -1로 하면 자동으로 넘어가지 않고, 사용자가 직접 엔트리를 선택할 때까지 기다림

  2. GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
    - 초기 부팅 화면의 각 엔트리 앞에 붙을 배포판 이름 추출
    - 위 명령문의 경우 /etc/system-release 파일에서 'CentOS'라는 글자 추출

  3. GRUB_DEFAULT=saved
    - saved는 이전에 선택한 엔트리가 기본으로 계속 선택되도록 한다는 뜼
    - 0번으로 지정하면 첫 번째 엔트리를 의미함

  4. GRUB_DISABLE_SUBMENU=true
    - 서브 메뉴 사용 여부 설정
    - 기본 값을 true로 설정해두면 서브 메뉴를 사용하지 않음

  5. GRUB_TERMINAL_OUTPUT="console"
    - GRUB이 나올 장치 설정
    - 기본 값을 console로 설정해두면 모니터로 설정됨
    - 그 외 serial, gfxterm (그래픽 모드 출력) 등으로 설정할 수 있음

  6. GRUB_CMDLINE_LINUX="crachkernel=auto resume=UUID=장치코드고유번호 rhgb quiet"
    - 부팅 시 커널에 전달할 파라미터 지정
    - 이전에 사용하던 GRUB 1의 파라미터도 일부 사용할 수 있음

  7. GRUB_DISABLE_RECOVERY="true"
    - true로 설정하면 메뉴 엔트리에서 복구와 관련된 것을 비활성화함
    - 특별히 변경할 필요 없음

  8. GRUB_ENABLE_BLSCFG=true
    - BLSCFG는 Bootloader Spec for configuring의 약자로 특별히 변경할 필요 없음

 

 

[ 실습 내용 책 265 페이지 ~ 269 페이지 ]