GNU GRUB
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
GNU GRUB은 컴퓨터 부팅 과정을 관리하는 부트 로더로, 사용자가 운영 체제를 선택하고 시스템 설정을 변경할 수 있도록 다양한 기능을 제공한다. 동적 설정, 명령줄 인터페이스, 파일 시스템 접근, 멀티부팅 지원 등을 지원하며, 2012년 이후 UEFI 펌웨어와 GPT를 지원한다. GRUB은 MBR 또는 EFI 시스템 파티션에 설치되며, 2단계 또는 3단계의 부팅 과정을 거쳐 운영 체제를 로드한다. GRUB은 GRUB 레거시와 GRUB 2의 두 가지 주요 버전을 가지고 있으며, 다양한 파일 시스템과 운영 체제를 지원한다. 또한, GRUB4DOS, rEFInd, systemd-boot와 같은 파생 및 대안 부트 매니저가 존재하며, 부팅 문제 해결을 위한 유틸리티도 제공된다.
더 읽어볼만한 페이지
- 연구 프로젝트 - HELLADS
HELLADS는 DARPA가 제너럴 아토믹스와 개발한 150kW급 전술 레이저 무기로, 크기와 무게를 줄여 다양한 플랫폼에 탑재 가능하며 AC-130 건쉽, B-1B 폭격기, 알레이 버크급 구축함, HEL-MD 등에 활용될 가능성이 검토되고 있다. - 연구 프로젝트 - 하상주단대공정
하상주단대공정은 중국 고대 하, 상, 주 삼대의 연대 확정을 목표로 1996년부터 2000년까지 진행된 국가적 역사 연구 프로젝트이다. - 어셈블리어로 작성된 자유 소프트웨어 - VirtualDub
VirtualDub은 윈도우 운영 체제에서 실행되는 무료 오픈 소스 비디오 캡처 및 처리 유틸리티이며, AVI 파일을 주로 처리하고 플러그인을 통해 다른 파일 형식도 지원하며, 동영상 캡처, 편집, 비디오 처리 및 필터 기능을 제공한다. - 어셈블리어로 작성된 자유 소프트웨어 - X264
x264는 H.264/MPEG-4 AVC 비디오 코덱의 오픈 소스 인코더로, 높은 화질과 다양한 기능을 제공하며, 분산 인코딩을 지원한다. - 시스템 소프트웨어 - 유틸리티 소프트웨어
유틸리티 소프트웨어는 컴퓨터의 운영 체제, 하드웨어, 응용 소프트웨어를 관리하고 성능을 향상시키거나 특정 작업을 수행하는 프로그램으로, 시스템 관리, 파일 관리, 데이터 복구, 보안 등의 기능을 제공하며 백업 소프트웨어, 바이러스 백신 등이 대표적이다. - 시스템 소프트웨어 - 가상 사설 서버
가상 사설 서버(VPS)는 공유 웹 호스팅과 전용 호스팅의 중간 단계 서비스로, 가상화 기술을 기반으로 슈퍼유저 수준의 접근 권한, 높은 운용 자유도와 향상된 보안성을 제공하지만, 환경 유지 관리 필요성, 상대적으로 높은 비용, 회선 공유 문제 등의 단점도 가진다.
| GNU GRUB - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 기본 정보 | |
![]() | |
![]() | |
| 개발 | |
| 개발자 | GNU 프로젝트 |
| 저자 | 에리히 볼레인 |
| 프로그래밍 언어 | 어셈블리어, C |
| 릴리스 | |
| 최초 릴리스 | 1995년 |
| 최신 안정화 버전 | 2.06 (GRUB2) |
| 최신 안정화 버전 출시일 | 2021년 6월 8일 |
| 최신 평가판 | 2.06~rc1 |
| 최신 평가판 출시일 | 2021년 3월 12일 |
| 지원 환경 | |
| 운영체제 | 리눅스, GNU/Hurd, macOS, BSD, (솔라리스/illumos (x86 포트)), 윈도우 (체인로딩을 통해) |
| 플랫폼 | IA-32, x86-64, IA-64, ARM, PowerPC, s390x, MIPS, RISC-V, LoongArch, SPARC |
| 언어 | 영어 및 기타 |
| 기타 | |
| 종류 | 부트로더 |
| 라이선스 | 2007: GPL-3.0-or-later |
| 웹사이트 | GNU GRUB |
2. 기능
GRUB은 다음과 같은 다양한 기능을 제공한다.
- 동적 설정: 부팅 시에도 커널 인자를 조정할 수 있다.
- 명령줄 인터페이스: Bash와 유사한 명령줄 인터페이스를 제공하여, 사용자가 직접 부팅 설정을 제어할 수 있다.
- 사용자 정의 부팅 기능: 사용자가 원하는 대로 부팅 설정을 변경할 수 있다.
- 파일 시스템 접근: 다양한 파일 시스템에 직접 접근할 수 있다.
- 다양한 파일 형식 지원: 실행 가능한 파일 형식을 지원한다.
- 멀티부팅 지원: 여러 운영 체제를 선택하여 부팅할 수 있다.
- 사람이 읽을 수 있는 설정 파일: 설정 파일을 쉽게 읽고 수정할 수 있다.
- 메뉴 인터페이스: 그래픽 메뉴 및 배경 그림을 사용할 수 있으며, 비 GUI 인터페이스도 지원한다.
- 자동 압축 해제: 압축된 OS 이미지를 자동으로 해제하여 부팅할 수 있다.
- 지오메트리 정보 독립: 디스크 지오메트리 변환에 의존하지 않는다.
- 모든 RAM 인식: 바이오스와 관계없이 모든 RAM을 인식한다.
- LBA 및 네트워크 지원: LBA 및 네트워크 부팅을 지원한다.
- 디스크 없는 시스템 지원: 네트워크를 통해 OS 이미지를 다운로드하여 부팅할 수 있다.
GRUB는 동적으로 설정이 가능하며, 컴퓨터 부팅 시 다양한 커널이나 초기 RAM 디스크(initrd)를 선택하는 등 유연한 설정 변경이 가능하다. 이를 위해 GRUB는 간단하고 Bash와 유사한 명령줄 인터페이스를 제공하며, 사용자는 일반 부트 메뉴 목록에 즉시 새로운 부트 시퀀스를 추가할 수도 있다.
GRUB는 (부팅 처리 초기의 코드가 어셈블리 언어를 사용하고 있는[48] 것을 제외하고) 이식성이 매우 높으며, 여러 실행 가능 포맷을 지원하며 디스크 지오메트리 변환에 의존하지 않는다. GRUB는 LBA(Logical Block Address) 모드 지원 외에도 거의 모든 주요 UNIX 파일 시스템, 더불어 VFAT 및 NTFS 등 Microsoft Windows에서 사용하는 파일 시스템도 지원한다. GRUB를 사용하면 지원하는 임의의 파일 시스템에 존재하는 파일의 내용을 사용자가 볼 수 있다.
GRUB는 다양한 사용자 인터페이스를 사용하여 설정할 수 있다. 많은 리눅스 배포판에서는 GRUB 부트 메뉴에 표시되는 배경 이미지 사용자 정의 등 그래픽 설정 도구를 제공하고 있다. 또한 GRUB의 텍스트 인터페이스를 사용하면 원격 터미널에서 시리얼 포트를 통해 연결할 수 있다[49]。
GRUB는 네트워크를 통한 OS 이미지 다운로드도 가능하며, 따라서 디스크리스 시스템도 지원한다. GRUB는 로컬에서 부팅하는 것뿐만 아니라 부팅 전 자동 OS 이미지 압축 해제도 가능하다.
GRUB는 스크롤 가능한 OS 부트 선택 화면을 표시한다. GRUB는 설정 파일 "menu.lst"(또는 "grub.cfg" 등)에 항목을 추가하여 150개 또는 그 이상의 부트 선택을 쉽게 할 수 있으며, 화살표 키로 부팅할 OS를 선택한다.
GRUB는 멀티 부팅을 지원하지만, 체인 로딩을 이용하여 멀티 부팅을 지원하지 않는 OS도 지원한다. 부팅 OS 추가와 마찬가지로, 2, 3줄의 명령 시퀀스를 설정 파일에 쓰거나, GRUB 셸에서 적절한 명령을 즉시 실행하여 MS-DOS、Windows、BSD 또는 Solaris 운영 체제를 매우 쉽게 시작할 수 있다. 이러한 Unix 계열 OS와 DOS, Windows 등을 시작하기 위한 체인 로더가 GRUB에 내장되어 있다.
앞서 언급했듯이, 일반 부트 메뉴 외에도 Bash와 유사한 터미널 명령 프롬프트를 사용할 수 있으며, 부팅 프로세스의 일부 또는 전부를 확인하거나 변경할 수 있는 풍부한 명령 세트를 가지고 있다. 이러한 방식을 활용하여 컴퓨터에 설치된 OS에 대한 특별한 사전 지식 없이도, 설치된 OS를 부팅할 목적으로 플로피 디스크、USB 또는 CD-ROM 장치에서 GRUB를 사용하여 부팅할 수도 있다.
GRUB는 일반적인 Unix 계열 OS에서 설치 가능하며, 특정 구현을 사용하여 DOS 및 Windows에서도 설치 가능하다.
3. 설치
GRUB은 LILO와 달리 설정을 변경한 후 다시 설치할 필요가 없다. GRUB은 스테이지 단위로 부팅되며, 스테이지 1은 MBR에 존재한다. GRUB 설정 파일은 주로 스테이지 2에서 호출되며, GRUB이 읽을 수 있는 파티션에 있다. 설정 파일이 없으면 명령줄 인터페이스로 전환된다. 설정 파일은 /boot/grub에 있으며, 배포판에 따라 파일 이름이 다를 수 있다.
CD, DVD 등 다양한 장치에서 부팅할 수 있다. GRUB은 OS와 연결되지 않고 설치되므로, 처음 설치 시에는 Linux 이미지 복사본이 최소 1개 필요하다. 하지만 Linux 시스템이 있다면, 로더 설치 명령어를 실행하여 다른 파티션의 VBR에 설치할 수 있다. 광학 디스크에도 GRUB을 설치할 수 있어, Linux 설치와 관계없이 시스템에 있는 OS를 GRUB으로 부팅할 수 있다. 이식된 GRUB도 있으므로, 로더 설치 명령어를 실행할 수 있는 환경이라면 Linux가 아니어도 된다.
Linux에서는 "grub-install"이라는 셸 명령어로 Stage 1 로더를 MBR 또는 파티션에 설치한다. GRUB 설정 파일, (일반적으로) Stage 2 로더 및 기타 파일은 유효한 파티션에 있어야 한다. 이 파일이나 파티션을 사용할 수 없게 되면, Stage 1은 GRUB 셸 명령줄 인터페이스로 전환된다.
GRUB 설정 파일 이름과 위치는 시스템마다 다르다.
| 운영체제 | 설정 파일 경로 |
|---|---|
| openSUSE, GRUB Legacy를 사용하는 Debian GNU/Linux | /boot/grub/menu.lst |
| Fedora, Gentoo Linux | /boot/grub/grub.conf |
| GRUB 2를 설치한 Debian, Ubuntu | /boot/grub/grub.cfg |
Fedora에서는 FHS 준수를 위해 /etc/grub.conf에서 /boot/grub/grub.conf로의 심볼릭 링크가 있다. Debian, Ubuntu에서는 기본 설정 파일이 /etc/default/grub에 있으며, 사용자는 이 파일을 수정한다. 수정 후 update-grub (grub-install의 래퍼 스크립트)를 실행하면, 커널과 initrd를 지정한 /boot/grub/grub.cfg가 생성된다.
GRUB는 하드 디스크가 없거나 부팅할 수 없는 시스템을 위해 El Torito (en)를 지원하는 광학 드라이브, 플로피 디스크, USB 플래시 드라이브 같은 이동식 미디어에도 설치할 수 있다.
4. 지원하는 파일 시스템
GRUB은 다음과 같은 다양한 파일 시스템을 지원한다.
| 파일 시스템 |
|---|
| ext2/ext3/ext4 |
| IBM JFS |
| ISO 9660 |
| 미닉스 파일 시스템 |
| ReiserFS |
| SGI XFS |
| UFS/UFS2 |
| FAT 계열 파일시스템 |
| NTFS |
| ZFS[40] |
| Btrfs[40] |
GRUB 2는 위에 나열된 파일 시스템에서 파일에 접근할 수 있다.
5. 지원하는 운영 체제
GRUB은 다음과 같은 다양한 운영 체제를 지원한다.
체인 로딩 기능을 쓰면 마이크로소프트 윈도우같은 상용 운영 체제도 불러올 수 있다.[48]
6. 작동 방식 (Operation)
GRUB은 동적으로 설정할 수 있으며, 부팅 시에도 커널 인자를 조정할 수 있다. Bash와 유사한 명령줄 인터페이스를 제공하여 사용자 정의 부팅 기능을 지원한다. 또한, 파일 시스템에 직접 접근할 수 있으며, 다양한 실행 파일 형식을 지원한다. 비 멀티부팅 운영 체제도 지원하며, 사람이 읽기 쉬운 설정 파일을 제공한다.boot.img)는 파티션 부트 섹터 중 하나에 쓸 수도 있다.
GRUB은 메뉴 인터페이스를 제공하며, 그래픽 메뉴 및 배경 그림을 사용할 수 있다. 비 GUI 인터페이스도 지원하며, 다양한 파일 시스템을 자동으로 압축 해제하여 지원한다. 지오메트리 정보에 독립적이며, 바이오스와 관계없이 모든 RAM을 인식한다. LBA 및 네트워크를 지원하며, 디스크 없는 시스템도 지원한다.
GRUB은 LILO와 달리 설정을 변경한 후 재설치할 필요가 없다. GRUB은 스테이지 단위로 부팅 과정이 구성되어 있으며, GRUB의 스테이지 1은 MBR에 존재한다. GRUB 설정 파일은 대개 스테이지 2에서 불리며, GRUB이 읽을 수 있는 파티션에 존재한다. 설정 파일이 없으면 명령줄로 이동한다. 설정 파일은 /boot/grub에 있으며 배포판마다 파일 이름이 다르다. 이러한 구조 때문에 GRUB 설정 파일이 있던 파티션만 지워졌다면 평소 보던 메뉴가 사라지므로, 초보자들은 부팅이 되지 않는 것으로 착각할 수 있다.[5]
CD, DVD 같은 다양한 장치에서의 부팅도 지원한다.
6. 1. 부팅 (Booting)
컴퓨터의 전원을 켜면, BIOS는 설정된 주 부트 장치(대개 컴퓨터의 하드 디스크)를 찾아 디스크의 처음 512바이트에 위치한 마스터 부트 레코드(MBR)에서 초기 부트스트랩 프로그램을 로드한다. 이후 제어는 이 코드로 넘어간다. MBR은 하드 디스크의 첫 번째 섹터이다. 이 부트스트랩 프로그램은 단일 섹터에 맞아야 하므로 작아야 한다. 오랫동안 섹터의 크기는 512 바이트였다. 2009년부터는 Advanced Format 디스크라고 불리는 섹터 크기가 4096 바이트인 하드 디스크가 출시되었지만, 이러한 하드 디스크는 여전히 512e 에뮬레이션을 사용하여 512바이트 섹터로 액세스된다.[5]레거시 MBR 파티션 테이블은 최대 4개의 파티션을 지원하며 총 64 바이트를 차지한다. 선택적인 디스크 서명 (4바이트) 및 디스크 타임스탬프 (6바이트)와 함께 부트 로더의 기계어에 434~446 바이트를 사용할 수 있다. 이러한 작은 공간은 매우 간단한 부트 로더에는 충분할 수 있지만,[6] 복잡하고 여러 파일 시스템을 지원하고 메뉴 기반 부팅 선택 기능을 갖춘 부트 로더를 포함할 만큼 충분하지 않다. 따라서 더 큰 공간을 차지하는 부트 로더는 여러 조각으로 분할되며, 가장 작은 조각은 MBR에 맞고, 하나 이상의 더 큰 조각은 MBR과 첫 번째 파티션 사이의 빈 섹터와 같은 다른 위치에 저장된다. MBR의 코드는 두 번째 부분을 시작하는 것 이상을 수행하지 않는다.
부트 로더의 나머지 부분의 목적은 운영 체제를 구성하고 커널을 시작하여 실제로 부팅하는 것이다. 커널은 대부분 적절한 파일 시스템에 있는 파일로 저장되지만, 파일 시스템의 개념은 BIOS에 알려져 있지 않다. 따라서 BIOS 기반 시스템에서 부트 로더의 임무는 해당 파일의 내용에 접근하여 RAM에 로드하고 실행할 수 있도록 하는 것이다.
부트 로더에 대한 한 가지 가능한 접근 방식은 기본 파일 시스템을 이해하지 않고 하드 디스크 섹터에 직접 접근하여 커널 이미지를 로드하는 것이다. 일반적으로 커널 이미지가 차지하는 물리적 섹터 목록이 포함된 보조 파일인 ''맵'' 또는 ''맵 파일'' 형태의 추가적인 간접 참조가 필요하다. 이러한 맵은 새 커널 이미지를 설치하거나 파일 시스템 조각 모음을 수행하는 등 커널 이미지가 디스크의 물리적 위치를 변경할 때마다 업데이트해야 한다. 또한 맵이 물리적 위치를 변경하는 경우 섹터 간접 참조 메커니즘이 계속 작동하도록 부트 로더의 MBR 코드 내에서 해당 위치를 업데이트해야 한다. 이것은 번거로울 뿐만 아니라 시스템 업데이트 중에 문제가 발생할 경우 수동으로 복구해야 하는 상황을 초래한다.[7]
또 다른 접근 방식은 부트 로더가 기본 파일 시스템을 인식하도록 하여 커널 이미지가 실제 파일 경로를 사용하여 구성되고 접근되도록 하는 것이다. 이를 위해서는 부트 로더가 지원되는 각 파일 시스템에 대한 드라이버를 포함하여 부트 로더 자체에서 이해하고 접근할 수 있도록 해야 한다. 이 접근 방식은 하드 디스크 섹터의 하드 코딩된 위치와 맵 파일의 존재 필요성을 제거하고 커널 이미지를 추가하거나 이동한 후 MBR 업데이트가 필요하지 않다. 부트 로더의 구성은 일반 파일에 저장되며, 실제 커널 이미지 부팅 전에 부팅 구성을 얻기 위해 파일 시스템 인식 방식으로도 접근된다. 따라서 시스템 업데이트 중에 문제가 발생할 가능성이 줄어든다. 단점으로는 이러한 부트 로더가 더 크고 복잡하다는 것이다.[7]
GNU GRUB는 기본 파일 시스템을 이해함으로써 두 번째 접근 방식을 사용한다. 부트 로더 자체는 MBR 부트 방식에 맞도록 여러 ''단계''로 분할된다.
6. 2. GRUB 레거시 (Version 0)
GRUB 0.x는 2단계 방식을 따른다.[47] 마스터 부트 레코드(MBR)는 일반적으로 GRUB ''stage 1''을 포함하거나, 활성 파티션의 부트 섹터에서 GRUB ''stage 1''을 체인로드하는 표준 MBR 구현을 포함할 수 있다. 부트 섹터의 작은 크기(512 바이트)를 고려할 때, ''stage 1''은 디스크 시작 부분 근처(첫 1024개 실린더 내)의 고정된 위치에서 몇 개의 디스크 섹터를 로드하여 GRUB의 다음 단계를 로드하는 것 외에는 할 수 있는 일이 거의 없다.''Stage 1''은 ''stage 2''를 직접 로드할 수 있지만, 일반적으로 MBR 바로 다음이자 첫 번째 파티션 앞에 있는 하드 디스크의 처음 30 KiB에 위치한 ''stage 1.5''를 로드하도록 설정된다. 이 공간을 사용할 수 없는 경우(특이한 파티션 테이블, 특수 디스크 드라이버, GPT 또는 LVM 디스크) ''stage 1.5'' 설치가 실패한다. ''Stage 1.5'' 이미지에는 파일 시스템 드라이버가 포함되어 있어, 예를 들어
/boot/grub과 같이 파일 시스템의 알려진 위치에서 ''stage 2''를 직접 로드할 수 있다. 그러면 ''Stage 2''는 기본 구성 파일 및 필요한 다른 모든 모듈을 로드한다.[47]6. 3. GRUB 2 (Version 2)
GRUB 버전 2(GRUB 2)는 이전 버전인 GRUB Legacy를 대체하기 위해 처음부터 다시 작성된 부트 로더이다. 현재 대부분의 리눅스 배포판에서 사용되고 있다.GRUB 2는 다음과 같은 특징을 가지고 있다.
- 동적 설정: 부팅 시간에도 커널 인자를 조정할 수 있다.
- 명령줄 인터페이스: Bash와 유사한 명령줄 인터페이스를 제공한다.
- 사용자 정의 부팅: 사용자 정의 부팅 기능을 지원한다.
- 파일 시스템 접근: 파일 시스템에 직접 접근할 수 있다.
- 다양한 실행 파일 형식 지원: 다양한 실행 파일 형식을 지원한다.
- 비 멀티부팅 운영 체제 지원: 비 멀티부팅 운영 체제를 지원한다.
- 가독성 좋은 설정 파일: 사람이 읽을 수 있는 설정 파일을 제공한다.
- 메뉴 인터페이스: 그래픽 메뉴 및 배경 그림을 사용할 수 있으며, 비 GUI 인터페이스도 지원한다.
- 다양한 파일 시스템 지원: 다양한 파일 시스템을 지원한다.
- 자동 압축 해제: 압축 해제 기능을 자동으로 지원한다.
- 지오메트리 정보 독립: 지오메트리 정보에 독립적이다.
- RAM 인식: 바이오스와 관계없이 모든 RAM을 인식한다.
- LBA 및 네트워크 지원: LBA 및 네트워크를 지원한다.
- 디스크 없는 시스템 지원: 디스크 없는 시스템을 지원한다.
GRUB 2의 구조와 처리 흐름은 GRUB 1과 매우 유사하다. GRUB 1의 Stage 1 로더와 유사한 ''boot.img'' 코드가 마스터 부트 레코드(MBR) 또는 파티션 부트 섹터(PBR, VBR)에 저장된다. 그러나 ''boot.img''는 기본적으로 LBA48 어드레싱을 사용하여 섹터를 읽을 수 있다. 이 코드는 ''diskboot.img''에서 생성된 ''core.img''의 첫 번째 섹터를 로드하고, 생성된 core.img 파일의 나머지를 로드하는 데 사용된다.
''core.img'' 파일은 일반적으로 GRUB 1의 Stage 1.5 로더와 동일한 영역에 저장되지만, GRUB 2의 ''core.img''는 다른 파일 시스템으로 이동하거나 "빈 파티션"(''bare partition'')으로 이동할 때 발생하는 문제가 줄어들었다. ''core.img''는 GRUB Legacy의 Stage 2 로더에서 로딩에 필요한 주요 코드만 추출한 것으로, MBR이나 VBR에 필수적이지만 Stage 2 로더보다 훨씬 작다. 이를 통해 저장 크기가 제한된 MBR이나 VBR에 설치할 수 없는 크기 문제를 해결하고, GRUB Legacy에서 발생할 수 있었던 Stage 2 사용 불가 문제를 부분적으로 해결했다.[50]
''core.img'' 파일이 로드되면 기본 설정 파일 및 필요한 기타 모듈도 로드된다.
6. 3. 1. BIOS 펌웨어를 사용하는 시스템에서의 시작
컴퓨터가 켜지면 BIOS는 주요 부팅 가능한 장치(보통 컴퓨터의 하드 디스크)를 찾아 마스터 부트 레코드(MBR)에서 초기 부트스트랩 프로그램을 실행한다.[5] MBR은 하드 디스크의 첫 번째 섹터이다. 오랫동안 섹터의 크기는 512 바이트였으나, 2009년부터 섹터 크기가 4096 바이트인 Advanced Format 디스크가 출시되었다. 이러한 하드 디스크는 여전히 512e 에뮬레이션을 사용하여 512바이트 섹터로 액세스된다.[5]
레거시 MBR 파티션 테이블은 최대 4개의 파티션을 지원하며 총 64 바이트를 차지한다. 선택적인 디스크 서명 (4바이트) 및 디스크 타임스탬프 (6바이트)와 함께 부트 로더의 기계어에 434~446 바이트를 사용할 수 있다. 이러한 작은 공간은 매우 간단한 부트 로더에는 충분할 수 있지만,[6] 복잡하고 여러 파일 시스템을 지원하고 메뉴 기반 부팅 선택 기능을 갖춘 부트 로더를 포함할 만큼 충분하지 않다. 따라서 더 큰 공간을 차지하는 부트 로더는 여러 조각으로 분할되며, 가장 작은 조각은 MBR에 맞고, 하나 이상의 더 큰 조각은 MBR과 첫 번째 파티션 사이의 빈 섹터와 같은 다른 위치에 저장된다. MBR의 코드는 두 번째 부분을 시작하는 것 이상을 수행하지 않는다.
부트 로더의 나머지 부분의 목적은 운영 체제를 구성하고 커널을 시작하여 실제로 부팅하는 것이다. 커널은 대부분 적절한 파일 시스템에 있는 파일로 저장되지만, 파일 시스템의 개념은 BIOS에 알려져 있지 않다. 따라서 BIOS 기반 시스템에서 부트 로더의 임무는 해당 파일의 내용에 접근하여 RAM에 로드하고 실행할 수 있도록 하는 것이다.
GNU GRUB는 기본 파일 시스템을 이해함으로써 부트 로더 문제를 해결한다. 부트 로더 자체는 MBR 부트 방식에 맞도록 여러 ''단계''로 분할된다.
GRUB의 두 가지 주요 버전이 일반적으로 사용된다. ''GRUB 레거시''라고 하는 GRUB 버전 0은 이전 버전의 Linux 배포판에서만 널리 사용된다. ''GRUB 2''는 처음부터 다시 작성되었으며 이전 버전을 대체하기 위해 제작되었으며 현재 대부분의 Linux 배포판에서 사용된다.
- '''boot.img''' ('''1단계'''): 마스터 부트 레코드의 처음 440바이트(섹터 0의 MBR 부트 코드)에 기록되거나, 선택적으로 파티션 부트 섹터 (PBR)에 기록된다. 64비트 LBA 주소를 사용하여 `diskboot.img`를 호출한다. 실제 섹터 번호는 `grub-install`에 의해 기록된다. `diskboot.img`는 `core.img`의 첫 번째 섹터이며, `grub-install`에 의해 기록된 LBA 섹터 번호로 식별되는 `core.img`의 나머지를 로드하는 유일한 목적을 가지고 있다.
- * MBR 파티션 디스크에서 '''core.img''' ('''1.5단계''')는 MBR과 첫 번째 파티션 사이의 빈 섹터(사용 가능한 경우)에 저장된다. 최신 운영 체제는 정렬을 위해 여기에 1MiB 간격(2047개의 512바이트 또는 255개의 4KiB 섹터)을 제안한다. 이 간격은 1996년 이전 BIOS에서 사용된 실린더-헤드-섹터 (C/H/S) 주소 지정의 섹터 번호 제한을 나타내는 62 섹터(31 KiB)였다. 따라서 `core.img`는 32 KiB보다 작도록 설계되었다.
- * GPT 파티션 디스크에서 '''core.img'''는 자체 파티션에 기록된다. "BIOS_grub"으로 플래그가 지정되어야 하며, 포맷되지 않아야 하며, 1 MiB만큼 작을 수 있다.
- '''2단계''': `core.img`는 `grub-install`에 의해 구성된 파티션에서 `/boot/grub/i386-pc/normal.mod`를 로드한다. 파티션 인덱스가 변경된 경우, GRUB는 `normal.mod`를 찾을 수 없으며 사용자에게 GRUB 복구 프롬프트를 표시한다.
- * GRUB2가 설치된 방식에 따라 `/boot/grub/`는 Linux 배포판의 ''루트'' 파티션 또는 별도의 ''/boot'' 파티션에 있다.
- * '''normal.mod가 로드된 후''': `normal.mod`는 `/boot/grub/grub.cfg`를 구문 분석하고, 선택적으로 모듈(예: 그래픽 UI 및 파일 시스템 지원용)을 로드하고 메뉴를 표시한다.
GRUB 버전 2의 구조와 처리 흐름은 GRUB 버전 1과 매우 유사하다. GRUB 버전 1의 Stage 1 로더와 유사한 ''boot.img''라는 코드가 MBR 또는 PBR(VBR)에 저장된다. 그러나 이 boot.img는 기본적으로 LBA48 어드레싱을 사용하여 섹터를 읽을 수 있다. 이 코드는 ''diskboot.img''에서 생성된 ''core.img''의 첫 번째 섹터를 로드하고, 생성된 core.img 파일의 나머지를 로드하는 데 사용된다. core.img 파일은 일반적으로 GRUB 버전 1의 Stage 1.5 로더와 동일한 영역에 저장되므로 이와 유사한 문제를 안고 있다. 하지만 Stage 1.5 로더를 이동하거나 설치에 실패한 경우에 비해 GRUB 버전 2의 core.img를 다른 파일 시스템으로 이동하거나 아직 파일 시스템을 생성하지 않은 "빈 파티션"(''bare partition'')으로 이동할 때 발생하는 문제는 줄어들었다. 이 core.img는 간단히 말해, GRUB Legacy의 Stage 2 로더에서 로딩에 필요한 주요 코드만 추출한 것으로, GRUB의 작동을 위해 MBR이나 VBR에 필수적이지만, Stage 2 로더보다 훨씬 작다. 저장 크기가 제한된 MBR이나 VBR에 설치할 수 없는 크기 문제는 이것으로 해결되었고, GRUB Legacy에서 발생할 수 있었던, Stage 2가 GRUB에서 사용 불가능하게 되어 작동하지 않는 문제에 대한 부분적인 해결책이 되었다.[50]
core.img 파일을 일단 로드하면 기본 설정 파일 및 필요한 기타 임의의 모듈도 로드된다.
6. 3. 2. UEFI 펌웨어를 사용하는 시스템에서의 시작
UEFI 시스템에서 GRUB의 부팅 과정은 다음과 같다. 먼저, `grubx64.efi` 파일 (Stage 1 및 1.5에 해당)이 EFI 시스템 파티션에 설치된다. 이 파일은 펌웨어에 의해 직접 부팅된다.[5]Stage 2에 해당하는 `/boot/grub/x86_64-efi/normal.mod` 파일과 기타 `/boot/grub/` 디렉터리 내의 파일들이 로드된다. `/boot/grub/` 디렉터리는 EFI 시스템 파티션이나 별도의 `/boot` 파티션에 위치할 수 있다.
6. 3. 3. 시작 후 (After startup)
GRUB은 사용자가 설치된 운영 체제(OS) 중 하나를 선택할 수 있는 메뉴를 제공한다. 사용자는 화살표 키를 사용하여 부팅할 OS를 선택할 수 있으며, 지정된 시간 초과 후에는 자동으로 선택된 OS를 로드하도록 설정할 수 있다. 시간 초과가 0초로 설정된 경우에는 키를 눌러 부팅 메뉴에 접근할 수 있다.[9]운영 체제 선택 메뉴에서는 다음과 같은 명령을 사용할 수 있다.
- 'e' 키: 선택한 메뉴 항목의 커널 매개변수를 ''운영 체제가 시작되기 전''에 편집할 수 있다.[51] 이는 시스템이 부팅에 실패하는 등의 비상 상황에서 유용하다. 예를 들어, 특정 커널 모듈이 문제를 일으키는 경우, `modprobe.blacklist=모듈이름`과 같이 커널 매개변수를 추가하여 해당 모듈을 비활성화할 수 있다.[52]
- 'c' 키: GRUB 명령줄로 들어간다.[51] GRUB 명령줄은 bash와 같은 일반적인 Linux 셸이 아니며, GRUB 관련 특정 명령만 허용된다.[10],[53]
부팅 옵션을 선택하면 GRUB은 선택한 커널을 메모리에 로드하고 제어를 커널에 전달한다. 또는, GRUB은 체인 로딩을 사용하여 부팅 프로세스의 제어를 다른 부트로더로 전달할 수 있다. 이는 Multiboot Specification을 지원하지 않거나 GRUB에서 직접 지원하지 않는 운영 체제를 로드하는 데 사용된다.
6. 4. 파티션 식별 (Identifying partitions)
GNU GRUB는 범용 고유 식별자(UUID)를 사용하여 파티션을 식별할 수 있다. ext2, ext3, ext4 및 xfs 파일 시스템은 UUID를 사용하여 인스턴스를 고유하게 식별한다. UUID는 파티션을 포맷할 때 생성되며 파일 시스템의 일부로 슈퍼블록에 기록된다. 포맷팅을 제외한 모든 작업은 UUID를 변경하지 않아야 하며, dd를 사용하여 전체 파티션을 복제하여 UUID를 변경하거나 복제할 수 있다.[48]`grub.cfg` 파일은 GRUB을 구성하는 데 사용된다. 이 파일에는 각 시작 시 실행할 명령이 포함되어 있으며, 기존의 유효한 `grub.cfg`가 없으면 GRUB은 프롬프트를 표시한다.[48]
7. 역사 (History)
GNU GRUB(GNU Read-Only Universal Bootloader)는 원래 자유 소프트웨어 재단에서 GNU/Hurd 운영 체제 부팅 작업의 일환으로 에리히 볼레인이 개발했다.[11] 1999년, 고든 마치게이트와 오쿠지 요시노리는 GRUB를 GNU 프로젝트의 공식 소프트웨어 패키지로 만들고 소프트웨어 개발 과정을 대중에게 공개했다.[11]
GRUB 버전 0(일명 "GRUB 레거시")은 더 이상 개발되지 않으며 단계적으로 폐지될 예정이다.[13] GNU GRUB 개발자들은 GNU GRUB을 더 깨끗하고, 더 강력하고, 더 이식성이 뛰어나고, 더 강력하게 만드는 것을 목표로 하는 완전 재작성인 GRUB 2에 초점을 맞추었다.[14] GRUB 2는 '''PUPA'''라는 이름으로 시작되었으며, 일본 정보 처리 추진 기구(IPA)의 지원을 받았다. PUPA는 GRUB 버전 0.9x가 GRUB 레거시로 이름이 변경된 2002년경에 GRUB 2 개발에 통합되었다.
GRUB 2 프로젝트의 목표는 x86 이외의 컴퓨팅 플랫폼 지원, 국제화 및 지역화, 비 ASCII 문자 지원, 동적 모듈, 메모리 관리, 스크립팅 미니 언어, 플랫폼 특정(x86) 코드를 플랫폼 특정 모듈로 마이그레이션, 객체 지향 프레임워크를 포함한다. GNU GRUB 버전 2.00은 2012년 6월 26일에 공식 출시되었다.[15][16]
우분투는 2009년 10월 9.10 버전,[20] 페도라는 2011년 11월 페도라 16,[21] 오픈수세는 2012년 9월 12.2 릴리스에서 GRUB 2를 기본 부트 로더로 채택했다.[22] 솔라리스는 솔라리스 11.1 릴리스에서 x86 플랫폼에 GRUB 2를 채택했다.[23]
2015년에는 로그인 암호를 우회하기 위해 백스페이스 키를 28번 누르는 취약점이 발견되어 신속하게 수정되었다.[24][25]
8. 파생 (Variants)
- OpenSolaris는 Solaris VTOC 슬라이스 지원, 자동 64비트 커널 선택, ZFS 부팅(압축 및 여러 부트 환경 포함)을 지원하는 수정된 GRUB 레거시를 포함한다.[26][27]
- 구글 코드 서머 2008년에는 GRUB 레거시가 ext4 형식의 파티션에서 부팅하도록 지원하는 프로젝트가 있었다.[28]
- Syllable 프로젝트는 시스템을 AtheOS 파일 시스템에서 로드하기 위해 GRUB의 수정된 버전을 만들었다.[29]
- ''TrustedGRUB''은 트러스티드 플랫폼 모듈(TPM)을 사용하여 시스템 무결성 및 부팅 프로세스 보안을 검증함으로써 GRUB을 확장한다.[30]
- 인텔 BIOS 구현 테스트 제품군(BITS)은 BIOS, 특히 인텔 프로세서, 하드웨어 및 기술의 초기화를 테스트하기 위한 GRUB 환경을 제공한다. BITS는 Python을 통한 스크립팅을 지원하며 ACPI, CPU 및 칩셋 레지스터, PCI 및 PCI Express를 포함한 하드웨어 플랫폼의 다양한 로우 레벨 기능에 액세스할 수 있는 Python API를 포함한다.[31]
- GRUB4DOS는 GRLDR 구성을 제외한 모든 것을 하나의 이미지 파일에 담아 DOS 및 마이크로소프트 윈도우에서의 설치 경험을 향상시키는 GRUB 레거시 포크이다. DOS에서 직접 로드하거나 NTLDR 또는 Windows 부트 관리자를 통해 로드할 수 있다.[32][33] GRUB4DOS는 활발히 개발 중이며 2021년 현재 UEFI를 지원한다.[34]
9. 유틸리티 (Utilities)
GRUB 설정을 위한 다양한 유틸리티들이 존재한다.
GRUB 설정 도구에는 데비안 기반 배포판을 위한 그래픽 설정 편집기인 StartUp-Manager가 있었으나, 2011년 5월 6일 개발이 중단되었다.[35] GRUB Customizer는 데비안 및 아치 기반 배포판에서 사용 가능한 그래픽 설정 편집기이다. GRUB 2를 위한 KDE 제어 모듈도 존재한다.[36][37] GRUB4DOS의 grldr 파일 기본 구성을 수정하는 도구로는 GRLDR ICE가 있다.[38]
부팅 복구 유틸리티로는 Boot-Repair가 있다. 이는 GRUB 및 윈도우 부트로더 관련 문제 복구를 위한 그래픽 도구로, GNU GPL 라이선스로 배포된다. 데비안, 우분투, 민트, 페도라, openSUSE, 아치 리눅스 등 다양한 리눅스 배포판에서 GRUB 복구를 지원한다.
Windows용 설치 프로그램으로는 Grub2Win이 있다. 이는 오픈 소스 소프트웨어로, GNU GRUB을 윈도우 디렉터리에서 부팅할 수 있게 해준다. 설치 프로그램은 GNU GRUB 버전 2.12를 NTFS 파티션에 설치하며, 윈도우 GUI 응용 프로그램을 통해 부팅 메뉴, 테마, UEFI 부팅 순서 등을 사용자 지정할 수 있다. UEFI 및 레거시 시스템 모두에서 GNU GRUB 스크립트와 명령을 지원한다. Grub2Win은 GNU GPL 라이선스에 따라 SourceForge에서 무료로 제공된다.[48]
9. 1. GRUB 설정 도구 (GRUB configuration tools)

StartUp-Manager는 데비안 기반 배포판을 위한 그래픽 설정 편집기이다. 그러나 주 개발자가 개인적인 이유로 더 이상 프로그램을 적극적으로 개발하지 않겠다고 밝힌 후 2011년 5월 6일에 개발이 중단되었다.[35] GRUB Customizer는 데비안 기반 배포판 및 아치 기반 배포판에서 사용할 수 있는 그래픽 설정 편집기이다.
GRUB 2의 경우 KDE 제어 모듈이 있다.[36][37]
GRLDR ICE는 GRUB4DOS의 grldr 파일의 기본 구성을 수정하기 위한 작은 도구이다.[38]
9. 2. 부팅 복구 유틸리티 (Boot repair utilities)
Boot-Repair는 GRUB 및 윈도우 부트로더와 관련된 빈번한 부팅 관련 문제로부터 복구하기 위한 간단한 그래픽 도구이다. 이 애플리케이션은 GNU GPL 라이선스로 제공된다. Boot-Repair는 데비안, 우분투, 민트, 페도라, openSUSE, 아치 리눅스를 포함한 여러 리눅스 배포판에서 GRUB을 복구할 수 있다.9. 3. Windows용 설치 프로그램 (Installer for Windows)
Grub2Win은 윈도우용 오픈 소스 소프트웨어 패키지다. 이를 통해 GNU GRUB을 윈도우 디렉터리에서 부팅할 수 있다. 설치 프로그램은 GNU GRUB 버전 2.12를 NTFS 파티션에 설치한다. 그런 다음 윈도우 GUI 응용 프로그램을 사용하여 GRUB 부팅 메뉴, 테마, UEFI 부팅 순서, 스크립트 등을 사용자 지정할 수 있다. 모든 GNU GRUB 스크립트와 명령은 UEFI 및 레거시 시스템 모두에서 지원된다. Grub2Win은 윈도우, 우분투, openSUSE, 페도라 및 기타 여러 리눅스 배포판의 멀티 부팅을 위해 GRUB을 구성할 수 있다. 이 프로그램은 GNU GPL 라이선스에 따라 SourceForge에서 무료로 제공된다.[48]10. 대안 부트 매니저 (Alternative boot managers)
- rEFInd - 맥킨토시 스타일의 그래픽 부트 매니저로, UEFI 기반 컴퓨터에서만 사용할 수 있다(BIOS 지원 안 함).[1]
- [https://github.com/CloverHackyColor/CloverBootloader CloverEFI] - BIOS 및 UEFI 기반 컴퓨터를 위한 맥킨토시 스타일의 그래픽 부트 매니저.[1] TianoCore 프로젝트의 [https://github.com/tianocore/tianocore.github.io/wiki/DuetPkg DUET]을 대폭 수정하여 UEFI를 에뮬레이션하며, BIOS 시스템에서도 FAT 형식 파티션이 필요하다.[1] 파티션 부트 섹터에 기본 파일 시스템 드라이버가 있어 두 번째 또는 세 번째 단계의 취약성과 악명 높은 GRUB 복구 프롬프트를 피할 수 있다는 이점이 있다.[1] 사용자 인터페이스는 rEFInd와 유사하며, 두 부트 매니저 모두 단종된 [http://refit.sourceforge.net/ rEFIt] 부트 매니저에서 파생되었다.[1]
비 그래픽 대안:[1]
11. 부팅 문제 해결 (Troubleshooting)
GRUB은 마스터 부트 레코드(MBR)에 포함된 본체와 파티션 내에 저장된 설정 파일 등으로 구성된다. 일반적으로 이러한 설정 파일은 GRUB Legacy의 stage1.5/2 로더를 설치한 Linux용 파티션 내에 저장된다. 따라서 Linux를 삭제하기 위해 Linux용 파티션을 파괴하면 부팅할 수 없게 되는 문제가 발생할 수 있다.
GRUB의 부팅 시스템은 이 외에도 BIOS에서의 하드 디스크 드라이브(HDD) 인식, 스토리지 장치 컨트롤러의 인식 상태, USB 스토리지 장치의 연결 상황 등 다양한 요인에 의해 부팅 불능 상태가 될 수 있다.
GRUB은 이러한 문제에 대해 처리 단계별로 정지(대기) 시 표시를 통해 상황을 판단할 수 있도록 설계되어 있다. GRUB 콘솔이나 GRUB rescue 콘솔이 표시되는 경우, 다른 부팅 디스크 등을 사용하지 않고도 부팅 가능한 상태로 복구할 수 있는 경우도 있다.
| 표시 예 | 호칭 | 발생 상황 |
|---|---|---|
| grub> | GRUB 콘솔 | 부팅이나 커널 설정 등에 관련된 일시적 변경을 하기 위해 수동으로 GRUB 콘솔을 호출한 경우 GRUB2의 설정 파일 등의 파티션이 읽힌 후, grub.cfg를 읽어오지 못한 경우 |
| error:invalid extent grub rescue> | GRUB rescue 콘솔 | GRUB2의 grub.cfg를 읽은 후 어떠한 문제가 발생한 경우 |
| error: no such partition. grub rescue> | GRUB rescue 콘솔 | GRUB2의 설정 파일이 저장된 파티션을 찾을 수 없는 경우 |
참조
[1]
웹사이트
Ohloh Analysis Summary – GNU GRUB
http://www.ohloh.net[...]
Ohloh
2010-05-12
[2]
웹사이트
Migrate to GNU General Public License Version 3.
https://git.savannah[...]
2007-07-21
[3]
웹사이트
GNU GRUB license
https://archive.toda[...]
[4]
Webarchive
Definition of GRand Unified Bootloader
http://searchenterpr[...]
2010-12-03
[5]
웹사이트
Western Digital's Advanced Format: The 4K Sector Transition Begins
http://www.anandtech[...]
AnandTech
2009-12-18
[6]
웹사이트
mbldr (Master Boot LoaDeR)
http://mbldr.sourcef[...]
2013-10-10
[7]
웹사이트
Booting and Boot Managers
http://www-uxsup.csx[...]
SUSE
2013-10-10
[8]
웹사이트
GNU GRUB Manual 2.04
https://www.gnu.org/[...]
2020-11-10
[9]
웹사이트
How to Configure the GRUB2 Boot Loader's Settings
http://www.howtogeek[...]
2014-09-22
[10]
웹사이트
GNU GRUB documentation
https://www.gnu.org/[...]
2014-04-16
[11]
Webarchive
GRUB Manual – 1.2 Grub History
https://www.gnu.org/[...]
2014-04-16
[12]
웹사이트
PS4 runs Orbis OS, a modified version of FreeBSD that's similar to Linux
http://www.extremete[...]
2013-06-24
[13]
Webarchive
GNU GRUB – GRUB Legacy
https://www.gnu.org/[...]
2014-04-20
[14]
웹사이트
GNU GRUB – GRUB 2
https://www.gnu.org/[...]
2014-04-18
[15]
간행물
GRUB 2.00 released
http://lists.gnu.org[...]
2012-06-28
[16]
웹사이트
GRUB 2.00 Boot-Loader Officially Released
https://www.phoronix[...]
2012-06-28
[17]
웹사이트
An Introduction to Ubuntu
https://web.archive.[...]
WebJunction
2012-01-26
[18]
웹사이트
What is Red Hat Enterprise Linux (RHEL)?
http://www.techopedi[...]
Technopedia
2012-09-21
[19]
웹사이트
SUSE chief lists progress since privatisation
http://www.itwire.co[...]
2012-09-20
[20]
웹사이트
9.10 Karmic GRUB version
http://distrowatch.c[...]
Distrowatch.com
2012-07-08
[21]
Webarchive
GRUB 2
http://fedoraproject[...]
2012-08-05
[22]
Webarchive
openSUSE:Upcoming features – openSUSE
http://en.opensuse.o[...]
2012-09-20
[23]
Webarchive
Solaris 11.1
http://www.oracle.co[...]
2018-06-19
[24]
웹사이트
You can Hack into a Linux Computer just by pressing 'Backspace' 28 times
http://thehackernews[...]
2015-12-16
[25]
웹사이트
Back to 28: Grub2 Authentication 0-Day
http://hmarco.org/bu[...]
2015-12
[26]
Webarchive
x86: Modifying Boot Behavior by Editing the GRUB Menu at Boot Time
http://dlc.sun.com/o[...]
2011-07-19
[27]
Webarchive
x86: Supported GRUB Implementations
http://docs.sun.com/[...]
2009-10-21
[28]
웹사이트
Grub4ext4
https://code.google.[...]
2017-06-13
[29]
Webarchive
2.3 Why does Syllable have its own version of GRUB?
http://web.syllable.[...]
2011-01-07
[30]
웹사이트
TrustedGRUB project
http://sourceforge.n[...]
2014-11-18
[31]
Webarchive
BIOS Implementation Test Suite
https://biosbits.org[...]
2016-10-19
[32]
웹사이트
grub4dos
https://sites.google[...]
2019-04-07
[33]
웹사이트
GRUB for DOS Introduction
http://grub4dos.sour[...]
2019-04-07
[34]
Github
https://github.com/c[...]
[35]
웹사이트
StartUp-Manager is dead : StartUp-Manager
https://launchpad.ne[...]
2011-05-06
[36]
웹사이트
GRUB2 Bootloader Editor
http://kde-apps.org/[...]
2012-12-01
[37]
웹사이트
Grub2 KCM
http://kde-apps.org/[...]
2011-01-27
[38]
웹사이트
Grub4dos tutorial
http://microsaint.na[...]
2015-04-25
[39]
문서
https://ftp.gnu.org/[...]
[40]
간행물
GRUB 2.06 released
https://lists.gnu.or[...]
2021-06-08
[41]
문서
https://alpha.gnu.or[...]
[42]
웹사이트
Ohloh Analysis Summary - GNU GRUB
http://www.ohloh.net[...]
Ohloh
2010-05-12
[43]
웹사이트
GNU GRUB
http://savannah.gnu.[...]
GNU Savannah
2011-02-03
[44]
웹사이트
What is GRUB (GRand Unified Bootloader)?
http://searchenterpr[...]
searchenterpriselinux.techtarget.com
2011-03-01
[45]
웹사이트
BigAdmin: 特集記事: GRUB および Solaris 10 1/06 OS の FAQ: x86 プラットフォーム用の新しいブートローダー
http://www.sun.com/b[...]
www.sun.com
2011-02-04
[46]
웹사이트
GNU GRUB - GNU Project
http://www.gnu.org/s[...]
www.gnu.org
2012-01-07
[47]
웹사이트
GRUB Manual - 1.2 Grub History
http://www.gnu.org/s[...]
www.gnu.org
2011-02-03
[48]
웹사이트
(root)/grub/trunk/grub : /grub-core/boot/i386/pc/boot.S
http://bzr.savannah.[...]
bzr.savannah.gnu.org
2011-10-19
[49]
웹사이트
2005-07-16 - ブートローダの作り方
http://enbug.tdiary.[...]
enbug.tdiary.net
2005-07-16
[50]
웹사이트
10 GRUB image files
http://www.gnu.org/s[...]
www.gnu.org
2012-01-07
[50]
웹사이트
3.4 BIOS installation
http://www.gnu.org/s[...]
www.gnu.org
2012-01-07
[51]
웹사이트
12.2 The simple menu interface
http://www.gnu.org/s[...]
www.gnu.org
2012-01-07
[52]
웹사이트
Kernel modules
https://wiki.archlin[...]
wiki.archlinux.org
2012-01-07
[53]
웹사이트
14 The list of available commands
http://www.gnu.org/s[...]
www.gnu.org
2012-01-07
[54]
웹사이트
12.3 Editing a menu entry
http://www.gnu.org/s[...]
www.gnu.org
2012-01-07
[55]
웹사이트
3.2 Making a GRUB bootable CD-ROM
http://www.gnu.org/s[...]
www.gnu.org
2012-01-07
[56]
웹사이트
Configuring grub v2
http://wiki.debian.o[...]
wiki.debian.org
2012-01-04
[57]
웹사이트
GNU GRUB - GRUB 2
http://www.gnu.org/s[...]
2008-06-07
[58]
웹사이트
PupaGrub - GRUB Wiki
http://grub.enbug.or[...]
grub.enbug.org
2008-05-22
[59]
웹사이트
平成14年度「未踏ソフトウェア創造事業」の公募について−トップページ
http://www.ipa.go.jp[...]
情報処理推進機構
2003-09-26
[60]
웹사이트
平成14年度未踏ソフトウェア創造事業 採択テーマ概要 2-9奥地
http://www.ipa.go.jp[...]
정보처리추진기구
2011-02-04
[61]
웹사이트
平成14年度未踏ソフトウェア創造事業 採択案件評価書 2-9奥地
http://www.ipa.go.jp[...]
정보처리추진기구
2011-02-04
[62]
웹사이트
The 'grub' textual domain
http://translationpr[...]
Translation Project
2011-02-04
[63]
뉴스
GRUB 2 by default
http://www.ubuntu.co[...]
Ubuntu
[64]
웹사이트
Boot Problems Open Source Tools Super Grub Disk, Super Grub2 Disk and Rescatux
http://www.supergrub[...]
Super Grub Disk Project
2011-02-04
[65]
웹사이트
Official GRUB4DOS Website
http://gna.org/proje[...]
2009-04-15
[66]
웹사이트
grub4dos: trunk/README_GRUB4DOS.txt
http://svn.gna.org/v[...]
svn.gna.org
2012-01-08
[67]
웹사이트
x86: Modifying Boot Behavior by Editing the GRUB Menu at Boot Time
http://dlc.sun.com/o[...]
サン・マイクロシステムズ
2012-01-08
[68]
웹사이트
x86: Supported GRUB Implementations
http://docs.sun.com/[...]
サン・マイクロシステムズ
2012-01-08
[69]
웹사이트
2.3 Why does Syllable have its own version of GRUB?
http://web.syllable.[...]
web.syllable.org Syllable Documentation , Syllable
2011-02-04
[70]
웹사이트
Grub2 KCM
http://kde-apps.org/[...]
kde-apps.org
2011-04-04
[71]
웹사이트
GRUB2 Bootloader Editor
http://kde-apps.org/[...]
kde-apps.org
2011-05-16
[72]
웹사이트
GRUB Utilities - Summary
http://gna.org/proje[...]
gna.org
2011-02-04
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
