Boot Loader (Bootstrap Loader) 란?
디스크나 플래시에 저장된 OS 를 읽어 주기억장치에 적재시켜주는 프로그램으로, 커널의 올바른 동작을 위한 작업들을 마무리한 후에, 운영체제를 가동시키는 프로그램이다. Boot Manager 라고도 하며 512Bytes 로서 하드디스크의 첫번째 섹터 MBR (Master Boot Record) 에 위치한다. 시스템이 켜지면 크기 제한으로 인해 MBR 의 일부인 IPL (Initial Program Loader) 가 먼저 실행되며 , IPL이 파티션 테이블을 검사한 후 부트로더의 나머지 코드 위치를 찾아 실행한다.
GRUB (GRand Unified Boot loader)
기존에 사용하던 LILO 의 단점을 보완한 부트로더이다. CentOS 6 에서는 /boot/grub/grub.conf 파일을 사용하며, CentOS 7 부터는 /boot/grub2/grub.conf 파일을 사용한다. e 키를 사용하여 boot menu 의 명령어를 직접 편집하며, 변경된 사항은 ctrl + x 를 통해 재실행 할 수 있다.
해당 내용은 /boot/grub2/grub.cfg 파일과 동일하다. 단, 해당 과정은 영구 적용이 아닌 임시 수정이다.
/boot/grub2/grub.cfg 파일
GRUB2 의 환경설정 파일로, /etc/grub2.cfg 파일이 해당 파일로 심볼릭 링크되어있다. grub-mkconfig 명령어를 통해 생성하며, /etc/grub.d 이하의 스크립트로 작성된 템플릿 파일과 /etc/default/grub 파일에 정의된 GRUB2 설정값을 통해 /boot/grub2/grub.cfg 파일을 생성한다.
위의 사진은 /etc/default/grub 파일의 내용이며, 해당 파일이 수정되면 grub2-mkconfig 명령을 사용하여 grub.cfg 파일을 갱신해야한다.
Run-level
리눅스 부팅 시, 런레벨 (0 ~ 6)에 따라 작동하는 서비스들을 조정할 수 있다. 리눅스 부팅 마지막 과정에서 모든 프로세스의 부모 프로세스가 되는 init 가 생성되고, run-level 을 참조한다.
디폴트 값을 설정하고자 하는 경우, /etc/inittab 파일을 수정하면 된다. init 0 은 shutdown -h now 명령어와 halt 명령어, init 6 은 shutdown -r now 명령어와 reboot 명령어로 대체 사용 가능하다.
systemctl get-default 명령어: 현재 설정되어있는 default target 을 확인한다.
systemctl set-default [타겟] 명령어 : default target 을 변경한다. (multi.target == TUI, graphic.target == GUI)
Systemd (CentOS 7)
unit 단위로 시스템 및 서비스를 제어하는 관리자로, 기존의 System V 가 아닌 /sbin/init 에 심볼릭 링크가 걸려 있는 /usr/lib/system/systemd 로 대체되었다. INIT 프로세스에 대응하는 Target unit 레벨에 따라 부팅 시 제공될 서비스를 조정한다. (default.target 유닛에 심볼릭 링크된 Target unit 실행)

1) 서비스 관리 명령어
- 서비스 시작 : systemctl start name.service
- 서비스 중지 : systemctl stop name.service
- 서비스 재시작 : systemctl restart name.service
- 서비스 상태 확인 : systemctl status name.service
- 서비스 설정 갱신 : systemctl reload name.service
2) 타켓 유닛 명령어
- 기본 타켓 확인 : systemctl get-default
- 복구 모드 : systemctl rescue
- 응급 모드 : systemctl emergency
3) 전원 관리 명령어
- 시스템 OFF : systemctl halt
- 시스템 전원 OFF : systemctl poweroff
- 시스템 재시작 : systemctl reboot
공부하면서 정리한 내용을 글로 작성하였습니다.
혹시나 잘못된 내용이 있다면 댓글로 알려주시면 감사하겠습니다. :)