[Linux] 부트로더(Bootloader) / 런레벨(Runlevel)
🐧 부트로더(BootLloader)
-
= 부트스트랩 로더(Bootstrap Loader) = 부트 매니저(Boot Manager)
-
컴퓨터를 처음 시작했을 때 가장 먼저 실행되어 부팅을 도와주는 역할을 하는 소프트웨어 프로그램
-
운영체제가 시동되기 이전에 커널이 올바르게 시동되기 위해 필요한 모든 관련 작업을 마무리하고 최종적으로 운영체제를 시동시키기 위한 프로그램 (시스템에 여러 운영체제가 설치되어 있으면 선택하여 부팅할 수 있도록 함)
-
운영체제 실행에 필요한 환경을 설정하고 운영체제 이미지를 메모리에 복사
-
하드디스크의 첫 번째 섹터인 MBR(Master Boot Record)에 위치하며, MBR은 부트 매니저 프로그램과 파티션 정보를 저장
-
주 파티션마다 부트 섹터(boot sector, 디스크의 다른 부분에 저장되는 부팅 프로그램을 담을 수 있는 기억 장치의 섹터)가 할당됨
-
리눅스 운영체제에 한정되어 사용되는 LILO(LInux LOader)와 리눅스 운영체제 외 다른 운영체제에서도 사용 가능한 GRUB(GRand Unified Bootloader)
🐧 GRUB(GRand Unified Bootloader)
-
리눅스 부팅 시 처음 나오는 선택 화면
-
LILO에 비해 사용 및 설정 편리
-
부트 정보를 사용자가 임의로 변경해 부팅할 수 있기 때문에 부트 정보가 올바르지 않더라도 부팅 시 바로 수정하여 부팅할 수 있음
-
다른 운영체제와 멀티부팅 가능
-
대화형 설정 → 커널의 경로와 파일 이름만 알면 부팅 가능
-
ROM-BIOS에서 사용하는 정보를 사용하며, IDE, SCSI 장치명을 별도로 구분 짓지 않고 시스템에 정착된 순서대로 hd0, hd1로 표기
-
디스크와 파티션 번호는 모두 0부터 시작하며, (디스크장치명,파티션명) 형식으로 표기
🐧 런레벨(Run Level)
-
런레벨에 따라 리눅스 부팅 시 작동하는 서비스들을 조정할 수 있음
-
리눅스 부팅의 마지막 단계에서 모든 프로세스의 부모 프로세스인 init이 생성됨 > init은 런레벨을 참조하며, 런레벨은 프로세스 init이 수행해야 할 일련의 처리 방법
-
0부터 6까지 총 7가지의 런레벨이 있으며, 리눅스 가동 시 특정 모드의 레벨을 디폴트로 할 경우 파일
/etc/inittab
에 설정됨 -
-
런레벨 0 : 시스템 종료(shutdown), = 명령어 halt = init 0
-
런레벨 1
-
단일 사용자 모드, root만 로그인 가능
-
네트워크, 서버, 파일공유 서비스 제공 X
-
root 패스퉈드 분실, 파일 시스템 점검 및 복구, 시스템 점검 시 접근
-
-
런레벨 2 : 네트워크가 없는 다중 사용자 모드
-
런레벨 3 : 텍스트 모드(CUI)에 의한 다중 사용자 모드
-
런레벨 4 : 미사용
-
런레벨 5 : 그래픽 모드(GUI)에 의한 다중 사용자 모드
-
런레벨 6 : 시스탬 재시작(재부팅), = 명령어 reboot = init 6
-