728x90
리눅스 GRUB 개요
GRUB은 "Grand Unified Bootloader"의 약자로, 윈도우 운영체제와 리눅스 운영체제 등에서 모두 사용 가능한 멀티부트 로더입니다. 과거에는 LILO(Linux Loader)가 리눅스에서만 사용되던 부트로더로 널리 알려졌습니다. GRUB은 하드디스크의 첫 번째 부트 섹터인 MBR(Master Boot Record)에 저장됩니다.
GRUB의 부팅 과정
- 전원 켜기: 전원을 켜면 ROM-BIOS가 POST(하드웨어 점검)를 실행하고 MBR에서 부트로더를 로딩합니다.
- 부팅 메뉴 선택: GRUB은 부팅 메뉴를 표시하고, 선택된 커널을 로딩합니다. 이후 스와퍼(Swapper) 프로세스를 실행합니다.
- 스와퍼 초기화: 실행된 스와퍼는 각 장치의 드라이브를 초기화한 후, init 프로세스를 실행하고 종료됩니다. (스와퍼: PID 0, init: PID 1)
- init 프로세스 실행: init은 /etc/inittab 설정 파일을 읽어 부팅 레벨을 선택합니다.
- 초기화 스크립트 실행: /etc/rc.d/rc.sysinit 스크립트 파일이 실행됩니다. 이 파일은 부팅 시 반드시 한 번 실행됩니다.
- 부팅 레벨에 따른 스크립트 실행: 선택된 부팅 레벨(N)에 따라 /etc/rc.d/rcN.d/ 디렉토리의 스크립트가 순차적으로 실행됩니다.
- 시스템 설정: 시스템 매직키 설정, 전원 공급 설정, 가상 터미널과 로그인 창이 실행됩니다.
GRUB 제거 방법
GRUB 패키지 제거:
grub --version # 설치된 GRUB 버전 확인
rpm -qa | grep grub # GRUB 패키지 설치 여부 확인
rpm -e --nodeps grub-$VERSION # GRUB 패키지 삭제
grub --version # GRUB 패키지 삭제 확인
MBR 영역의 GRUB 제거:
리눅스에서 MBR 영역의 GRUB 제거 명령어는 없습니다. 다른 운영체제의 MBR을 덮어쓰는 방법이나, 윈도우 XP 시디를 사용하여 복구 콘솔로 부팅한 후 fixmbr 명령어를 이용하는 방법이 있습니다.
GRUB 설치 방법
GRUB 패키지 설치:
rpm -qa | grep grub # 설치 여부 확인
cd /media/Packages/
rpm -Uvh grub-$VERSION.rpm # GRUB 설치
grub --version # 설치 확인
rpm -qa | grep grub # 설치 확인
MBR에 GRUB 설치:
GRUB 패키지가 설치된 후, MBR에 GRUB을 설치합니다.
grub-install /dev/sda # 리눅스 운영체제 하드의 MBR에 GRUB 설치
GRUB 강제 삭제 후 복구 방법
CD를 넣고 부팅할 때 linux rescue 옵션을 사용합니다. /tftpboot/pxelinux.cfg/default 파일의 내용을 수정하여 네트워크로 rescue 모드에 진입할 수도 있습니다.
# rpm -Uvh --nodeps grub*.rpm # GRUB 패키지 설치
MBR에 GRUB을 설치합니다:
grub
> root (hd0,0) # /boot 파티션 지정
> setup (hd0) # MBR에 GRUB 설치
> reboot # 재부팅
GRUB 환경 설정 방법
GRUB의 환경 설정은 /boot/grub/grub.conf 파일을 편집하여 수행합니다.
- default: 부팅 화면에서 메뉴를 선택하지 않았을 때 선택될 메뉴 번호 (0부터 시작).
- timeout: 부팅 메뉴 선택 대기 시간을 설정합니다 (초 단위).
- splashimage: 부팅 시 배경 이미지를 설정합니다. 경로는 (hd0,0)/grub/splash.xpm.gz와 같이 지정합니다.
- password: 부팅 시 암호를 설정합니다. title 위에 삽입하여 GRUB 모드로 들어가기 위한 암호를 설정합니다.
-
password --md5 $1$MU9Q6XQ7$gxrt8d9u5d19Re1MYqDZ50
-
- title: GRUB 부팅 화면에 나타나는 제목으로, 관리자가 임의로 지정할 수 있습니다.
- root: 해당 항목의 루트 디바이스를 설정합니다. /boot 파티션이 이 역할을 한다면, /boot 파티션을 지정합니다.
-
root (hd0,0) # 첫 번째 하드디스크의 첫 번째 파티션
-
- kernel: 부팅할 때 사용할 커널 이미지 파일의 경로를 지정합니다.
- initrd: SCSI 또는 SATA 하드디스크를 사용하는 경우 반드시 지정해야 하는 항목입니다. 해당 메뉴로 부팅할 때 사용할 initrd 이미지를 지정합니다. 설정이 없으면 커널 패닉이 발생할 수 있습니다.
마무리
GRUB은 리눅스 시스템에서 중요한 부트로더로, 다양한 운영체제를 멀티부팅할 수 있도록 지원합니다. GRUB의 설치, 제거 및 환경 설정 방법을 이해하면 시스템 관리 시 큰 도움이 됩니다. 이러한 지식을 통해 리눅스 환경에서 GRUB을 효과적으로 활용하고 관리할 수 있습니다.
728x90