- Published on
linux grub timeout 0: 부팅 메뉴 대기 없이 바로 시작하기
- Authors

- Name
- Indo Yoon
GRUB 타임아웃을 0으로 두면 부팅할 때 메뉴를 기다리지 않고 기본 항목으로 곧바로 진입합니다. 재부팅 후 콘솔 앞에서 키를 누를 일이 없어지므로 원격 운영이나 자동 재시작이 잦은 서버에서 편합니다. 다만 메뉴를 확인할 여유가 사라지므로, 적용 전에 되돌리는 방법을 함께 준비해 두는 편이 안전합니다.
한눈에 보기
GRUB의 타임아웃은 "기본 항목으로 넘어가기 전에 얼마나 기다릴지"를 정하는 값입니다. 이 값이 0이면 GRUB은 메뉴를 표시하는 대신 기본 항목을 즉시 부팅합니다. 실제 운영에서 손대는 곳은 대부분 /etc/default/grub 한 파일이고, 수정 후 생성 도구를 실행해 /boot/grub/grub.cfg에 반영하는 흐름입니다.
정리하면 다음과 같습니다.
- 설정 파일은
/etc/default/grub이고, 여기서GRUB_TIMEOUT=0을 지정합니다. - 화면에 보이는 결과는
GRUB_TIMEOUT_STYLE값과 함께 결정됩니다. - 수정만으로는 반영되지 않고, 배포판의 설정 생성 명령을 한 번 실행해야 합니다.
- 생성된
/boot/grub/grub.cfg는 직접 편집하지 않는 것이 원칙입니다.
GRUB 타임아웃 값이 하는 일
GNU GRUB 매뉴얼은 타임아웃을 기본 엔트리로 부팅하기 전까지의 대기 값으로 설명하고, 값이 0이면 메뉴를 표시하지 않고 즉시 부팅한다고 안내합니다. 즉 타임아웃 0은 "아주 짧게 기다린다"가 아니라 "기다리지 않는다"에 가깝습니다.
여기서 흔히 헷갈리는 지점이 커널 파라미터입니다. 부팅 로그나 검색 자동완성에서 보이는 timeout=0 형태는 리눅스 커널에 전달하는 인자가 아니라 GRUB 설정 변수입니다. /etc/default/grub에 값을 넣고 설정을 다시 생성하는 방식으로 다루게 됩니다.
또 하나 중요한 것은 GRUB_TIMEOUT_STYLE입니다. 같은 타임아웃 값이라도 스타일이 menu, countdown, hidden 중 무엇이냐에 따라 메뉴가 보이는 방식이 달라집니다. 그래서 타임아웃만 0으로 바꾸면 의도와 다른 화면을 만날 수 있고, 두 값을 세트로 이해하는 것이 좋습니다.
| 항목 | 설정 위치 | 값 예시 | 실제 동작 |
|---|---|---|---|
| GRUB_TIMEOUT | /etc/default/grub | 0 | 기본 항목으로 즉시 진입 |
| GRUB_TIMEOUT_STYLE | /etc/default/grub | hidden | 메뉴를 숨기고 필요할 때만 노출 |
| GRUB_TIMEOUT_STYLE | /etc/default/grub | menu | 메뉴를 표시하는 방식 유지 |
| GRUB_DEFAULT | /etc/default/grub | 0 | 목록의 첫 항목을 기본으로 선택 |
| timeout | /boot/grub/grub.cfg | 0 | 생성 결과에 반영된 실제 값 |
표에서 마지막 행은 사람이 직접 쓰는 값이 아니라 생성 도구가 만들어 넣는 값입니다. 검증할 때는 이 파일에서 실제로 어떤 값이 박혀 있는지 확인하게 됩니다.
설정 파일과 반영 절차
대부분의 배포판에서 사용자가 편집하는 파일은 /etc/default/grub입니다. 이 파일은 사람이 읽기 좋은 형태의 입력값이고, 부팅 시 실제로 읽히는 것은 생성된 /boot/grub/grub.cfg입니다. 그래서 순서를 지키는 것이 중요합니다.
- 현재 상태를 백업합니다.
sudo cp /etc/default/grub /etc/default/grub.bak처럼 원본을 남겨 두면 되돌리기가 쉬워집니다. - 편집기로
/etc/default/grub을 엽니다.GRUB_TIMEOUT줄을 찾아 값을 0으로 바꾸고, 필요하면GRUB_TIMEOUT_STYLE도 함께 조정합니다. - 설정을 다시 생성합니다. Debian·Ubuntu 계열은
sudo update-grub또는sudo grub-mkconfig -o /boot/grub/grub.cfg를 사용합니다. - 생성 결과를 확인합니다.
grep -n timeout /boot/grub/grub.cfg같은 명령으로 값이 반영됐는지 봅니다. - 문법이 걱정되면
grub-script-check로 생성 파일을 검사한 뒤 재부팅합니다.
배포판마다 생성 명령 이름과 출력 경로가 다릅니다. Fedora·RHEL 계열은 grub2-mkconfig라는 이름을 쓰고, BIOS와 UEFI 환경에서 경로가 갈리기도 합니다. 명령을 추측하지 말고 사용 중인 배포판 문서에서 확인하는 편이 안전합니다.
또 하나 기억할 점은 grub.cfg를 직접 편집하지 않는다는 원칙입니다. 생성 도구를 다시 실행하면 수동 편집분이 사라지기 때문입니다. 급한 상황에서 임시로 고쳤다면, 원인을 정리한 뒤 반드시 /etc/default/grub에 반영해 두어야 다음 커널 업데이트에서도 유지됩니다.
상황별 선택
같은 "메뉴를 안 본다"라도 운영 목적에 따라 선택이 달라집니다.
단일 부팅 서버를 빠르게 올리는 것이 목적이라면 GRUB_TIMEOUT=0과 GRUB_TIMEOUT_STYLE=hidden 조합이 무난합니다. 평소에는 메뉴가 보이지 않고, 부팅 중 키 입력으로 메뉴를 호출하는 방식입니다.
커널을 여러 개 두고 골라 쓰는 개발 서버라면 타임아웃을 0으로 두지 않는 편이 좋습니다. 새 커널을 시험하다 부팅이 실패했을 때 이전 항목으로 넘어갈 통로가 필요하기 때문입니다. 이 경우에는 짧은 대기 값을 두고 메뉴를 남겨 두는 쪽이 운영 부담이 적습니다.
자동 재부팅이 반복되는 환경이라면 일회성 부팅 항목을 활용하는 방법도 있습니다. GRUB은 다음 부팅에만 적용되는 엔트리를 지정하는 기능을 제공하므로, 점검용 커널로 한 번만 올라가고 싶을 때 타임아웃 값과 별개로 다룰 수 있습니다. 다만 이런 기능은 배포판의 도구 지원 여부를 먼저 확인해야 합니다.
클라우드 이미지나 원격 콘솔만 있는 서버는 특히 신중해야 합니다. 메뉴가 뜨지 않으면 잘못된 항목을 고를 기회 자체가 없으므로, 스냅샷이나 복구용 부팅 수단을 준비한 뒤 적용하는 것이 좋습니다.
주의할 점과 복구
타임아웃 0의 가장 큰 위험은 실수로 부팅이 실패했을 때 메뉴로 들어가기 어렵다는 점입니다. 대기 시간이 없으면 키 입력을 받을 틈이 없어, 메뉴 호출이 되지 않는 상황을 만날 수 있습니다. 그래서 적용 전에 콘솔 접근 경로와 복구 절차를 확인해 두어야 합니다.
복구는 보통 다음 순서로 진행합니다. 먼저 복구 모드나 라이브 매체로 부팅합니다. 그다음 루트 파일시스템을 마운트하고 필요하면 chroot로 진입해 /etc/default/grub을 원래 값으로 되돌립니다. 마지막으로 설정 생성 명령을 다시 실행하고 재부팅합니다. 백업 파일을 만들어 두었다면 이 과정이 훨씬 짧아집니다.
설정을 바꾼 뒤에는 반드시 재부팅으로 검증해야 합니다. 파일만 확인하고 넘어가면 생성 단계가 실패했거나 다른 설정 파일이 우선 적용된 경우를 놓치기 쉽습니다. 재부팅은 가능하면 콘솔이나 원격 접속이 살아 있는 상태에서, 되돌릴 수 있는 시간대에 하는 것이 좋습니다.
커널 업데이트나 배포판 업그레이드 후에는 값이 유지되는지도 확인 대상입니다. 배포판이 설정 생성 과정에서 기본값을 다시 넣는 경우가 있으므로, 업그레이드 후 한 번 점검하는 습관이 도움이 됩니다.
자주 묻는 질문
GRUB_TIMEOUT=0과 GRUB_TIMEOUT_STYLE=hidden은 무엇이 다른가요?
타임아웃은 기다리는 시간을 정하는 값이고, 스타일은 메뉴를 어떤 형태로 보여줄지 정하는 값입니다. 타임아웃이 0이면 기다리지 않고 바로 부팅하며, 스타일을 hidden으로 두면 평소 메뉴를 숨기고 키 입력이 있을 때만 노출합니다. 두 값을 함께 볼 때 실제 부팅 화면이 결정됩니다.
타임아웃을 0으로 두면 메뉴에 어떻게 들어가나요?
부팅 초반에 키를 누르는 방식으로 메뉴 호출을 시도하게 되지만, 대기 시간이 없으면 입력을 받지 못할 수 있습니다. 그래서 운영 환경에서는 메뉴 호출이 가능한지 미리 시험해 보는 것이 좋습니다. 호출이 불안정하다면 타임아웃을 0이 아닌 짧은 값으로 두는 편이 안전합니다.
설정을 바꿨는데 부팅 화면이 그대로입니다.
/etc/default/grub만 수정하고 설정 생성 명령을 실행하지 않은 경우가 가장 흔합니다. 생성된 /boot/grub/grub.cfg에 값이 반영됐는지 확인하고, 배포판에 맞는 생성 명령을 다시 실행해 보세요. 그래도 그대로라면 다른 설정 파일이나 부트로더 경로가 사용 중인지 확인해야 합니다.
서버·클라우드 이미지에서도 0으로 두어도 되나요?
가능하지만 복구 난이도가 올라갑니다. 원격 콘솔만 있는 환경에서는 메뉴를 볼 수 없을 때 대응이 제한되므로, 스냅샷과 복구용 부팅 수단을 먼저 준비하는 것이 좋습니다. 부팅 실패가 서비스 중단으로 이어지는 시스템이라면 짧은 대기 값을 남기는 쪽을 권합니다.
출처
- GNU GRUB Manual, timeout: https://www.gnu.org/software/grub/manual/grub/html_node/timeout.html
- GNU GRUB Manual, Simple configuration: https://www.gnu.org/software/grub/manual/grub/html_node/Simple-configuration.html
- Ubuntu Community Help, Grub2/Setup: https://help.ubuntu.com/community/Grub2/Setup
- Debian Wiki, Grub: https://wiki.debian.org/Grub
부팅 설정을 다룬 뒤에는 커널 업데이트와 재부팅 절차를 함께 점검해 두면 좋습니다. 배포판별 부트로더 경로와 복구 방법을 정리해 둔 운영 글도 함께 참고해 보세요: https://wiki.debian.org/Grub