Grub이 마지막으로 부팅한 항목을 기억하게 설정하는 방법

요약
- 목적: Grub이 마지막으로 선택된 항목을 기억하도록 설정.
- 핵심 설정: GRUB_DEFAULT=saved 및 GRUB_SAVEDEFAULT=true 추가.
- 필요한 조치: 설정 파일 백업 → 편집 → grub 업데이트 → 재부팅으로 동작 확인.
사전 안내
정의: Grub — 리눅스 계열에서 널리 쓰이는 부트로더(부팅관리자).
범위: 본 가이드는 /etc/default/grub와 /etc/grub.d 기반의 전통적인 Grub(주로 Grub2)를 다룹니다. UEFI 환경이나 배포판별 차이로 일부 명령어가 다를 수 있습니다.
Important: 변경 전 항상 백업을 만드세요. 잘못된 설정으로 부팅 불가 상황이 발생할 수 있습니다.
1. Grub 백업
변경을 시작하기 전, 시스템에서 사용하는 Grub 구성 파일을 백업합니다. 터미널을 열고 다음을 실행하세요.
mkdir -p ~/grub-backup
이 명령은 사용자의 홈 디렉터리에 grub-backup 폴더를 만듭니다.
다음으로 /etc/default/grub 파일을 복사합니다.
cp /etc/default/grub ~/grub-backup/
그리고 /etc/grub.d 디렉터리 전체를 보존합니다.
cp -a /etc/grub.d ~/grub-backup/
검증: 백업 내용이 정상적으로 복사되었는지 ls로 확인하세요.
ls -l ~/grub-backup
노트: 루트 권한이 필요하면 명령 앞에 sudo를 붙이세요.
2. Grub 편집 — 마지막으로 선택한 항목 기억시키기
터미널 또는 GUI 편집기에서 /etc/default/grub 파일을 엽니다. CLI 편집을 권장합니다(예: nano). GUI 편집기를 사용하려면 gedit나 다른 편집기를 대신 사용할 수 있습니다.
CLI 편집 예:
sudo nano /etc/default/grub
GUI 편집 예:
sudo gedit /etc/default/grub
파일에서 다음 줄을 찾습니다:
GRUB_DEFAULT=0
이를 다음으로 변경하세요:
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
설명: GRUB_DEFAULT=saved는 Grub에게 이전에 부팅했던 항목을 기본으로 삼도록 지시합니다. GRUB_SAVEDEFAULT=true는 부팅 시 선택된 항목을 저장하도록 만듭니다.
편집을 마쳤으면 저장 후 편집기를 닫습니다. nano의 경우 Ctrl+O(저장) → Enter → Ctrl+X(종료).
3. Grub의 다른 유용한 설정들
다음은 Grub을 더 편리하게 쓰기 위한 추가적인 설정입니다. /etc/default/grub 파일에서 수정하세요.
부팅 메뉴 대기 시간 변경
기본값은 보통 5초입니다. 더 길게(예: 10 또는 15초) 하거나 더 빠르게(예: 3초) 설정할 수 있습니다. 파일에서 다음 줄을 찾으세요:
GRUB_TIMEOUT=5
원하는 초 단위로 바꿉니다.
Grub 메뉴를 기본 숨김으로 설정
Grub 메뉴가 보기 싫다면 부팅 시 숨기고 Shift(또는 Esc) 키를 누를 때만 표시하게 할 수 있습니다. 최근 Grub에서는 아래와 같은 옵션이 표준입니다:
GRUB_TIMEOUT_STYLE=hidden
이 설정을 사용하면 타이머가 만료될 때까지 메뉴가 보이지 않습니다. 필요하면 GRUB_TIMEOUT을 0이 아닌 적절한 값으로 유지하세요.
Note: 일부 오래된 Grub 버전에서는 다른 키(예: Shift 대신 Esc)를 사용하거나 동작이 다를 수 있습니다.
4. 변경 사항 적용 — Grub 구성 갱신
수정한 설정을 실제 부트로더 구성으로 반영하려면 Grub 구성을 생성해야 합니다. 우분투 계열처럼 update-grub를 제공하는 배포판에서는 아래로 충분합니다.
sudo update-grub
모든 배포판에서 동작하는 범용 명령은 grub-mkconfig를 사용하는 것입니다:
sudo grub-mkconfig -o /boot/grub/grub.cfg
이 명령은 /etc/default/grub와 /etc/grub.d의 스크립트를 읽어 /boot/grub/grub.cfg를 새로 생성합니다.
변경을 적용했으면 시스템을 재부팅하고 Windows를 선택한 뒤 자동 재부팅 후 동일 항목(Windows)으로 복귀하는지 확인하세요.
5. 백업 복원(롤백)
문제가 생기면 앞서 만든 백업으로 원래 상태로 복원할 수 있습니다. 아래 예시는 파일을 덮어쓰는 방식입니다.
# 원래 파일 삭제(선택 사항)
sudo rm /etc/default/grub
sudo rm -rf /etc/grub.d
# 백업에서 복사
sudo cp ~/grub-backup/grub /etc/default/grub
sudo cp -a ~/grub-backup/grub.d/ /etc/
# 구성 갱신
sudo update-grub # 또는 sudo grub-mkconfig -o /boot/grub/grub.cfg
주의: 복원 전에 백업 파일이 정상인지 ls로 반드시 확인하세요.
6. 검사 및 문제 해결 체크리스트
간단 체크리스트:
- /etc/default/grub의 GRUB_DEFAULT와 GRUB_SAVEDEFAULT가 올바르게 설정되었는가?
- 설정 저장 후 update-grub 또는 grub-mkconfig를 실행했는가?
- 재부팅 후 선택한 항목이 grub.cfg에 반영되었는가?
- UEFI 환경에서 다른 NVRAM 부트 순서가 우선으로 작동하지는 않는가?
자주 발생하는 원인 및 해결:
- Windows가 부트로더 설정을 덮어쓴 경우: Windows 업데이트가 부트 순서를 변경할 수 있습니다. 이 경우 UEFI 펌웨어(BIOS)에서 부트 순서를 확인하거나 Linux에서 efibootmgr을 사용해 우선순위를 재설정하세요.
- Fast Startup(Windows의 빠른 시작) 또는 하이버네이션 때문에 예상과 다른 동작이 발생할 수 있습니다. Windows에서 Fast Startup을 끄고 테스트하세요.
- Secure Boot이나 커스텀 서명 이슈: 일부 시스템에서는 서명 정책으로 인해 grub가 로드되지 않을 수 있습니다. 그 경우 Secure Boot 설정을 확인해야 합니다.
7. 언제 이 방법이 통하지 않을까 (예외 사례)
- 시스템이 UEFI NVRAM에서 직접 부팅 항목을 선택하도록 강제되어 Grub의 saved 옵션이 무시되는 경우.
- Windows가 부팅 파티션을 갱신하거나 자체 부트 매니저를 우선시하도록 NVRAM을 덮어쓴 경우.
- 배포판이나 Grub 버전 차이로 GRUB_SAVEDEFAULT 동작이 다르게 구현된 경우.
대안: rEFInd 같은 다른 부트로더를 도입하거나, UEFI 부팅 항목을 직접 조정(efibootmgr)하는 방법을 고려하세요.
8. 운영팀/개발팀용 빠른 플레이북
- 변경 전: sudo mkdir -p ~/grub-backup && sudo cp /etc/default/grub ~/grub-backup/ && sudo cp -a /etc/grub.d ~/grub-backup/
- 편집: sudo nano /etc/default/grub — GRUB_DEFAULT=saved, GRUB_SAVEDEFAULT=true 추가
- 적용: sudo update-grub 또는 sudo grub-mkconfig -o /boot/grub/grub.cfg
- 검증: 재부팅 → Windows 선택 → 자동 재부팅 후 동일 OS로 복귀 확인
- 롤백: 복원 명령 실행(섹션 5 참고)
테스트 케이스(수용 기준):
- TC1: Windows를 선택해 부팅 후 자동으로 재부팅될 때 동일 Windows로 복귀한다. (성공)
- TC2: Linux를 선택해 부팅 후 재부팅될 때 동일 Linux로 복귀한다. (성공)
- TC3: Grub 메뉴 숨김 설정 후 Shift 누르면 메뉴가 표시된다. (성공)
9. 간단 용어집
- GRUB_DEFAULT: Grub의 기본 선택 항목을 지정.
- GRUB_SAVEDEFAULT: 부팅 시 선택 항목을 저장할지 여부를 지정.
- update-grub / grub-mkconfig: /boot/grub/grub.cfg를 생성/갱신하는 명령.
결론
Grub의 GRUB_DEFAULT를 saved로 바꾸고 GRUB_SAVEDEFAULT=true를 켜면, 재부팅이 많은 Windows 업데이트 상황에서 매번 수동으로 선택할 필요가 줄어듭니다. 항상 백업을 만들고, 변경 후에는 grub 구성을 갱신한 뒤 재부팅하여 동작을 확인하세요. 문제가 발생하면 백업으로 빠르게 롤백하거나 UEFI 부트 순서를 점검하세요.
요약: 백업 → 편집 → 구성 갱신 → 테스트 → (필요 시) 복원
감사합니다. Grub 설정을 적용해 보시고 경험을 공유해 주세요!
Notes: 일부 배포판과 하드웨어 환경에서는 추가 설정이 필요할 수 있습니다.