IT보안 학습

리눅스 부팅 총정리

김구티2 2023. 12. 28. 15:23

1. 리눅스 부트 마스터의 개념

컴퓨터 전원 버튼을 클릭했을 때, 가장 처음으로 시작되는 일은 보조 메모리에 있는 운영체제의 커널을 메인 메모리로 올리는 작업이다. 이렇게 보조 메모리에 있는 커널을 메인 메모리로 올리는 것은 '로더'라는 프로그램이 수행한다.

리눅스에서 이러한 로더의 역할을 수행하는 것이 있는데, 이것이 바로 LILO(Linux Loader)이다. 즉, LILO가 리눅스의 부트 로더인 것이다. LILO는 실행 시 /etc/lilo.conf라는 파일을 읽어 들여서 실행된다.

그런데 요즘에는 리눅스 부팅에 LILO 보다는 GRUB라는 부트 로드를 사용한다. GRUB는 로더의 역할을 수행하는 것으로, /boot/grub/grub.conf라는 설정 파일을 읽어서 가동된다.

 

2. 리눅스 부팅 프로세스 단계

1단계 - 리눅스 서버의 전원을 켜면 ROM BIOS(Basic Input/Output System)를 읽고, 디스크의 MBR(Master Boot Record)에 있는 부트 로더를 실행한다.

2단계 - 부트 로더(LILO 혹은 GRUB)는 보조 메모리에서 커널 이미지를 찾아 리눅스 커널을 실행한다.

3단계 - 커널은 하드웨어를 확인하여 장치와 해당 드라이버를 초기화한다.

4단계 - 커널은 root의 읽기 전용으로 기본 파일 시스템을 마운트한다. 그리고 디스크를 검사하여 root의 쓰기 전용으로 다시 마운트를 수행한다.

5단계 - 커널은 매서드 ID가 0인 init 프로세스를 실행하고, PID 1번을 할당한다.

6단계 - init은 나머지 시스템 프로세스를 작동하도록 설정한다.

7단계 - init은 일반적으로 부팅 시퀀스의 상단 또는 그 근처에서 로그인할 수 있는 방법을 시작한다.

 

여기서 init 프로세스의 작업 수행은 리눅스의 Run 레벨에 따라 다르게 부팅한다.

 

※ Run Level

사실 이 런 레벨이라는 것은 Systemd가 도입되고 나서 Targets라는 용어로 다뤄지고 있다. 

#init [Run level]  이라는 명령어를 통해 아래의 표의 목적을 달성할 수 있을 것이다. 그런데 꼭 이렇게 해야만 하는 건 아니고, 재부팅의 경우만 하더라도 reboot 명령어를 사용하여 재부팅할 수도 있다.

런 레벨 목적 Systemd-targets
0 시스템 종료 poweroff.target
1 싱글 유저 모드 rescue.target
2 네트워크 없는 멀티 유저 모드 multi-user.target
3 네트워크 있는 멀티 유저 모드 multi-user.target
4 사용자가 지정 가능(사용되지 않음) multi-user.target
5 런 레벨 3 이후 X-Windows를 실행 graphical.target
6 시스템 재부팅 reboot.target

 

※ 몇 가지 부트 로더의 비교

GRUB(Grand Unified Boot Loader)의 가장 중요한 기능 중 하나는 간단한 커널 이미지와 구성 선택을 가능케 하는 파일 시스템 탐색이다. 부팅 코드를 찾으면 BIOS가 이를 수백 개 실행하게 된다. 현재로는 리눅스 시스템의 거의 보편적인 표준이라고 할 수 있다.

LILO는 리눅스 용으로 개발된 최초의 부트 로더였다. 여전히 일부 사용자들은 이를 쓰고 있을 것이다. 본래 사람이 오랜 관성에서 벗어나는 게 참 힘드니 말이다. 여하튼 그렇다고 무조건 구식이고, 안 좋은 것은 아니다. GRUB과 대조하면 매우 간단한 매력을 갖고 있다. 

SYSLINUX는 다른 부트로터 중에서 제일 가벼운 편에 속한다. CD나 USB 드라이버와 같은 이동식 미디어에서 부팅을 수행할 수 있다. 주요 특징은 다양한 파일 시스템, 명령줄 인터페이스 및 여러 장치에서 부팅하는 기능을 지원한다는 것이다.

728x90

'IT보안 학습' 카테고리의 다른 글

FIDO2 총정리  (0) 2023.12.29
커버로스(Kerberos) 인증 총정리  (1) 2023.12.28
리눅스 총정리  (0) 2023.12.28
RAID 총정리  (1) 2023.12.27
FAT, NTFS, EXT 총정리  (1) 2023.12.27