OS/Linux

[리눅스] 부트 매니저 ( 부트로더, 런레벨, GRUB, LILO )

SE.NE.CE 2020. 11. 3. 23:15
728x90
728x90

리눅스 부팅 과정

 - 전원 On --> ROM-BIOS 실행 -> 부트로더 실행 --> 스와퍼 프로세스 수행 --> init 프로세스 실행
    --> 부팅레벨 결정 --> rc.sysinit 스크립트 실행 --> rcX.d 스크립트 실행 --> X윈도우 실행

부트로더

 - 부트스트랩 로더 (bootstrap loader)의 준말로 컴퓨터를 사용자가 사용할 수 있도록 디스크나 플래시에 저장된 운영체제를 읽어 주기억 장치에 적재해주는 프로그램이다.
 - 부트로더는 운영체제가 시동되기 이전에 미리 실행되면서 커널이 올바르게 시동되기 위해 필요한 모든 관련 작업을 마무리하고 최종적으로 운영 체제를 시동시키기 위한 프로그램이다.
 - 임베디드 시스템 부트로더란, PC의 BIOS와 OS 로더의 기능을 수행하는 프로그램으로 시스템이 부팅할 때 가장 먼저 수행된다.
 - 운영체제 실행에 필요한 환경을 설정하고 운영체제 이미지를 메모리에 복사한다.
 - 부트 매니저라고도 부르며 크기가 512byte로 하드디스크의 첫 번째 섹터인 MBR(Mster Boot Record)에 위치한다.
 - MBR은 하드디스크 첫 번재 섹터로 부트매니저 프로그램과 파티션 정보를 저장한다.
 - 주 파티션마다 부트 섹터가 할당된다.
 - 부트 섹터는 디스크의 다른 부분에 저장되는 부팅 프로그램을 담을 수 있는 하드디스크, 플로피 디스크 또는 비슷한 기억 장치의 섹터를 말한다.
 - 분할된 주 파티션들은 자신의 부트 레코드를 MBR에 기록하여 실행된다.
 - 한 컴퓨터에 다수의 운영체제가 실행되어 있을 경우 작업 운영체제를 선택하여 부팅할 수 있게 한다.
 - x86 아키텍처에서 많이 사용되는 부트로더는 LILO(Linux Loader) 와 GRUB (Grand Unified Boot loader)이다.

MBR 부트섹터 주 파티션 확장 파티션
(안에 논리 파티션)
부트섹터 주 파티션

GRUB

 - LILO는 리눅스 운영체제에 한정되어 사용되는 반면 GRUB은 리눅스 외에 다른 운영체제에서도 사용 가능하다.
 - Erich Stefan Boleny에 의해 개발된 부트로더이다.
 - LILO의 단점을 보완한 것으로 설정 및 사용이 편리하다.
 - GRUB과 LILO 모두 시스템 전원이 공급되면 가장 먼저 ROM-BIOS에서 시스템 제어권을 가지고 장착된 하드웨어에 대한 기본적인 점검과 인식을 한다.

 

 

런레벨 (run level)

 - 리눅스 부팅 시 작동하는 서비스들이 있다. 런레벨에 따라 작동하는 서비스를 조정 가능하다.
   a. 리눅스 부팅의 마지막 단계에서 모든 프로세스의 부모 프로세스인 init이 생성된다.
   b. 프로세스 init이 참조하는 것이 런레벨이다.
   c. 런레벨은 프로세스 init이 수행해야 할 일련의 처리 방법이다.
   d. 런 레벨은 0에서부터 6까지 총 7가지이다. 일반적으로 3이나 5를 사용한다.
      0 : 시스템 종료, 명령어 halt 또는 init 0과 동일
      1 : 단일 사용자 모드 (root만 로그인할 수 있는 모드) , root 패스워드 분실 시, 파일시스템 점검 및 복구 시 접근
      2 : 네트워크가 없는 다중 사용자 모드
      3 : 텍스트 모드(CUI)에 의한 다중 사용자 모드
      4 : 미사용
      5 : 그래픽 모드(GUI)에 의한 다중 사용자 모드
      6 : 시스템 재시작(재부팅), 명령어 reboot 또는 init 6과 동일

 

로그인과 로그아웃

 -로그인
   a. 리눅스는 X윈도우 상에서의 로그인/로그아웃과 콘솔상에서의 로그인/로그아웃이 있다.
   b. 로그인 과정: 입력한 패스워드와 파일 /etc/passwd를 비교 --> 셸 설정파일 실행 --> 로그인 셸 실행
     *셸 설정파일이 수행하는 일 : 검색 경로 설정, 터미널 종류 설정 및 다양한 터미널 설정, 환경 변수 설정, 로그인 시 실행 명령어 실행, 로그인 메시지 출력

     *메시지 파일
       /etc/issue (상태: 로그인 전) : 콘솔(로컬) 접속 시 보여줄 메시지 파일
       /etc/issue.net (상태: 로그인 전) : 원격지에서 접속 시 보여줄 메시지 파일
       /etc/motd (상태 : 로그인 후) : 로컬 접속, 원격 접속 모두에 해당하며 로그인 성공 후 보여줄 메시지 파일

 -로그아웃
   a. 로그아웃은 logout, exit 또는 [Ctrl]+[D] 를 사용한다
   b. 관리자는 일정 시간동안 작업을 수행하지 않는 모든 사용자들을 강제로 로그아웃할 수 있다.
     -강제 로그아웃은 /etc/profile 에 TMOUT 변수에 값을 지정하여 해당 작업을 수행한다.

728x90
728x90