728x90

GNU 프로젝트에서 만든 부트로더/boot/grub/grub.conf 를 환경설정 파일로 사용한다.
 
grub.conf의 주요 설정 변수 
boot : 부팅 디스크를 설정한다. 디스크가 하나인 경우 주석 표시되어 있다.
default : 사용자가 아무런 선택을 하지 않을 때 기본으로 부팅할 운영체제의 순서를 설정한다. 0번은 grub.conf 상의 첫번째 운영체제이고 1번은 grub.conf 상의 두 번째 운영체제를 뜻한다. (0번부터 시작하네)
timeout : 설정된 시간(초 단위)동안 선택하지 않으면 default 에 설정된 운영체제가 로드된다. timeout을 설정하지 않으면 사용자가 선택할 때까지 대기한다.
splashimage : GRUB 화면의 배경 이미지를 설정하며 형식은 xpm.gz 압축파일을 사용한다.
title : GRUB 부팅 메뉴에 표시되는 이름이다.
root : 루트 디바이스를 설정한다. (x, y) 형식이며 x는 하드 디스크 파일명이고, y는 부트 파티션 번호이다.
kernel : 부팅에 사용할 커널 이미지 파일 경로를 지정하고 커널 매개변수를 설정할 수 있다. 또한 root 파티션의 위치도 설정할 수 있다.
initrd : 리눅스가 부팅하기 위해 필요한 프로그램 및 실행 스크립트가 포함된 이미지를 설정한다.
rootnoverify : root와 유사하나 해당 파티션을 마운트 하지 않는다. NTFS 파티션과 같이 GRUB이 인식할 수 없는 파티션을 root 디바이스로 지정할 때 사용한다.
chainloader+1 : 지정한 파티션의 첫번째 섹터를 읽어 들여 부팅하라는 의미.


==GRUB -> 부트로더(부트매니저)
부트매니저는 보조기억장치에 위치한 운영체제를 주기억장치로 ‘로드‘하기 위한 프로그램이며 '부트로더'라고도한다.

부트로더 동작원리 :
lilo(linux loader)
grub(grand unified bootloader)
grub2(centos7 ubuntu9이상의 디폴트)

시스템이 켜지면 BIOS(UEFI)는 디스크의 첫번째 섹터(0번 섹터)인 부트섹터에서

512바이트의 MBR(Master Boot Record)을 읽는다. (리누스 토르발스가 처음 리눅스 커널을 만들 때 부트블록에 해당하는 첫 512Byte는 어셈블리어로 코딩했다.

FPGA로 DSP(Digital Signal Processing)를 제작하는 사람은 그 칩의 프로토타입 초기형까지는 테스트 프로그램의 코딩을 기계어로 한다.) 2**10(1024) 2**9(512)

어셈블러(극단적으로 말해서 문자열 치환 로직과 변환표만 있으면 만들수 있다.) - 이광근 교수님의 컴퓨터과학이 여는 세계. SNU OPEN COURSE.

MBR은 크기가 제한되기에 IPL(Initial Program Loader)이라 불리는 부트로더의 일부가 먼저 실행된다.

IPL(Initial Program Loader)은 ‘파티션 테이블’을 검사하여 부트로더의 나머지 코드의 위치를 알아내 실행한다. inital에서 테이블을 테이블, 지도 테이블을 조작한다.

'Linux' 카테고리의 다른 글

[Linux] /etc/fstab 파일  (0) 2023.05.31
[Linux] 커널 컴파일 (Kernel compile)  (0) 2023.05.31
[Linux] SAMBA 서비스  (0) 2023.05.29
[Linux] Shell 쉘 정리  (0) 2023.04.29
[Linux] rpm, dnf  (0) 2023.04.07

+ Recent posts