GRUB2 부트로더 설정 및 복구 완전 가이드

GRUB2 부트로더란 무엇이며 왜 중요할까요?

GRUB2(GRand Unified Bootloader version 2)는 리눅스 시스템을 포함한 많은 운영체제에서 사용되는 표준 부트로더입니다. 컴퓨터 전원을 켰을 때 운영체제를 시작하는 역할을 담당하며, 멀티 부팅 환경을 구성할 때 특히 중요합니다. 즉, GRUB2가 없으면 컴퓨터는 어떤 운영체제를 시작해야 할지 알 수 없습니다.

GRUB2는 이전 버전인 GRUB 레거시보다 훨씬 강력하고 유연하며, 모듈화된 구조와 스크립트 언어 지원으로 인해 사용자 정의가 용이합니다. UEFI (Unified Extensible Firmware Interface) 시스템과 BIOS (Basic Input/Output System) 시스템 모두를 지원하며, 다양한 파일 시스템과 디스크 레이아웃을 처리할 수 있습니다.

GRUB2의 기본 작동 원리

컴퓨터를 켜면 BIOS 또는 UEFI 펌웨어가 먼저 실행됩니다. 펌웨어는 부팅 가능한 장치(일반적으로 하드 드라이브)를 찾고, 해당 장치의 부트 섹터에 있는 코드를 실행합니다. 이 부트 섹터에는 GRUB2의 첫 번째 단계인 “core.img”가 위치하며, 이 파일은 GRUB2의 핵심 기능을 로드하고 GRUB2 메뉴를 표시하는 데 필요한 파일 시스템 드라이버를 포함합니다.

GRUB2 메뉴에서는 설치된 운영체제 목록과 복구 모드 옵션 등을 선택할 수 있습니다. 선택된 운영체제의 커널이 메모리에 로드되고, 필요한 초기화 과정을 거쳐 운영체제가 시작됩니다.

GRUB2 설정 파일 이해하기

GRUB2의 주요 설정 파일은 /boot/grub/grub.cfg입니다. 하지만 이 파일은 직접 편집하지 않는 것이 좋습니다. 왜냐하면 이 파일은 GRUB2가 업데이트될 때마다 자동으로 생성되기 때문입니다. 대신, /etc/default/grub 파일을 편집하고 update-grub 명령어를 실행하여 grub.cfg 파일을 업데이트해야 합니다.

/etc/default/grub 파일에는 GRUB2의 전반적인 동작을 제어하는 변수들이 정의되어 있습니다. 예를 들어, 기본 부팅 운영체제, 메뉴 표시 시간, 커널 파라미터 등을 설정할 수 있습니다.

다음은 /etc/default/grub 파일의 예시입니다.


GRUB_DEFAULT=0

GRUB_TIMEOUT_STYLE=menu

GRUB_TIMEOUT=10

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

GRUB_CMDLINE_LINUX=""

GRUB2 설정 변경 및 업데이트 방법

    • /etc/default/grub 파일을 편집기로 엽니다. (예: sudo nano /etc/default/grub)
    • 필요한 설정을 변경합니다.
    • 파일을 저장하고 닫습니다.
    • 터미널에서 sudo update-grub 명령어를 실행합니다. 이 명령어는 /etc/default/grub 파일을 기반으로 /boot/grub/grub.cfg 파일을 업데이트합니다.
    • 컴퓨터를 재부팅하여 변경 사항을 확인합니다.

GRUB2 복구 방법 (가장 흔한 문제 해결)

GRUB2가 손상되면 컴퓨터가 부팅되지 않을 수 있습니다. 다음과 같은 방법으로 GRUB2를 복구할 수 있습니다.

1. 라이브 CD/USB를 이용한 복구

가장 일반적인 방법은 라이브 CD/USB를 사용하여 시스템을 부팅하고 GRUB2를 다시 설치하는 것입니다.

    • 라이브 CD/USB를 사용하여 컴퓨터를 부팅합니다.
    • 터미널을 엽니다.
    • 루트 권한을 얻습니다. (예: sudo su)
    • 손상된 GRUB2가 설치된 파티션을 마운트합니다. (예: mount /dev/sda1 /mnt, 여기서 /dev/sda1은 루트 파티션입니다.)
    • 필요한 경우, 부트 파티션도 마운트합니다. (예: mount /dev/sda2 /mnt/boot, 여기서 /dev/sda2는 부트 파티션입니다.)
    • GRUB2를 다시 설치합니다. (예: grub-install --target=i386-pc --boot-directory=/mnt/boot /dev/sda, 여기서 /dev/sda는 부팅 디스크입니다.)
    • GRUB2 설정을 업데이트합니다. (예: grub-mkconfig -o /mnt/boot/grub/grub.cfg)
    • 파티션을 언마운트합니다. (예: umount /mnt/boot, umount /mnt)
    • 컴퓨터를 재부팅합니다.

2. GRUB Rescue 모드 활용

GRUB Rescue 모드는 GRUB2가 완전히 손상되지 않았을 때 사용할 수 있는 복구 방법입니다. 이 모드에서는 몇 가지 기본적인 명령어를 사용하여 GRUB2를 복구할 수 있습니다.

GRUB Rescue 모드에 진입하면 다음과 같은 명령어를 사용할 수 있습니다.

GRUB Rescue 모드에서 GRUB2를 복구하는 방법은 다음과 같습니다.

    • ls 명령어를 사용하여 루트 파티션을 찾습니다.
    • set root=(hdX,Y) 명령어를 사용하여 루트 파티션을 설정합니다.
    • set prefix=(hdX,Y)/boot/grub 명령어를 사용하여 GRUB2 파일이 있는 디렉토리를 설정합니다.
    • insmod normal 명령어를 사용하여 normal 모듈을 로드합니다.
    • normal 명령어를 실행하여 GRUB2 메뉴를 표시합니다.
    • GRUB2 메뉴에서 운영체제를 선택하여 부팅합니다.
    • 운영체제에 로그인한 후, update-grub 명령어를 실행하여 GRUB2 설정을 업데이트합니다.

3. Boot-Repair 도구 사용

Boot-Repair는 GRUB2 복구를 자동화하는 데 도움이 되는 그래픽 도구입니다. 라이브 CD/USB에서 실행할 수 있으며, GRUB2 문제를 진단하고 복구하는 데 유용합니다.

    • Boot-Repair가 포함된 라이브 CD/USB를 사용하여 컴퓨터를 부팅합니다. (예: Ubuntu Live CD/USB)
    • 터미널을 열고 Boot-Repair를 설치합니다. (예: sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt update && sudo apt install -y boot-repair)
    • Boot-Repair를 실행합니다. (예: sudo boot-repair)
    • “Recommended repair” 옵션을 선택하고 지침을 따릅니다.
    • 컴퓨터를 재부팅합니다.

GRUB2 관련 유용한 팁

흔한 오해와 사실 관계

자주 묻는 질문 (FAQ)

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다