웹사이트 검색

Linux 부팅 프로세스의 다양한 단계에 대한 기본 가이드


Linux PC의 전원을 켤 때마다 일련의 단계를 거쳐 최종적으로 사용자 이름이나 비밀번호를 묻는 로그인 화면이 표시됩니다. 모든 Linux 배포판은 일반적인 부팅 프로세스에서 거치는 4가지 개별 단계가 있습니다.

이 가이드에서는 Linux OS의 전원을 켤 때부터 로그인할 때까지 Linux OS가 수행하는 다양한 단계를 중점적으로 설명합니다. 이 가이드에서는 GRUB2 부트로더 및 < Strong>systemd init는 현재 대부분의 최신 Linux 배포판에서 사용되고 있습니다.

부팅 프로세스는 다음 4단계로 진행되며 이에 대해 자세히 설명합니다.

  • BIOS 무결성 검사(POST)
  • 부트 로더 로드(GRUB2)
  • 커널 초기화
  • 모든 프로세스의 상위 프로세스인 systemd 시작

1. BIOS 무결성 검사(POST)

부팅 프로세스는 일반적으로 사용자가 전원 켜기 버튼을 누를 때(PC가 이미 종료된 경우) 초기화되거나 GUI 또는 명령줄을 사용하여 시스템을 재부팅할 때 초기화됩니다.

Linux 시스템의 전원이 켜지면 BIOS(기본 입출력 시스템)가 시작되어 전원 켜기 자체 테스트(POST)를 수행합니다. ). 이는 다양한 진단 검사를 수행하는 무결성 검사입니다.

POSTHDD 또는 SSD, 키보드, RAM<과 같은 구성요소의 하드웨어 작동성을 조사합니다., USB 포트 및 기타 하드웨어. 일부 하드웨어 장치가 감지되지 않거나 손상된 HDD 또는 SSD와 같은 장치에 오작동이 있는 경우 화면에 오류 메시지가 표시되어 개입을 요청합니다.

어떤 경우에는 특히 RAM 모듈이 누락된 경우 경고음이 울리는 경우가 있습니다. 그러나 예상한 하드웨어가 있고 예상대로 작동하는 경우 부팅 프로세스는 다음 단계로 진행됩니다.

2. 부트로더(GRUB2)

POST가 완료되고 해안이 깨끗해지면 BIOSMBR(마스터 부트 레코드)를 조사하여 부트로더 및 디스크 파티셔닝 정보.

MBR은 일반적으로 /dev/sda 또는 /dev/hda 인 하드 드라이브의 첫 번째 섹터에 있는 512바이트 코드입니다. 하드 드라이브 아키텍처에 따라 다릅니다. 그러나 때때로 MBR이 Linux의 Live USB 또는 DVD 설치에 있을 수 있습니다.

Linux에는 LILO, GRUB, GRUB2의 세 가지 주요 유형의 부트로더가 있습니다. GRUB2 부트로더는 최신 Linux 배포판의 최신 기본 부트로더이며 시간이 지남에 따라 구식이 된 나머지 두 가지를 제외하기로 한 결정을 알려줍니다.

GRUB2GRand Unified Bootloader 버전 2를 나타냅니다. BIOS가 grub2 부트로더를 찾으면 이를 실행하여 기본 메모리에 로드합니다( >RAM).

grub2 메뉴를 사용하면 몇 가지 작업을 수행할 수 있습니다. 사용하려는 Linux 커널 버전을 선택할 수 있습니다. 시스템을 몇 번 업그레이드한 경우 다른 커널 버전이 나열되는 것을 볼 수 있습니다. 또한 키보드 키 조합을 눌러 일부 커널 매개변수를 편집할 수 있는 기능도 제공합니다.

또한 여러 OS가 설치된 이중 부팅 설정에서는 grub 메뉴를 사용하여 부팅할 OS를 선택할 수 있습니다. grub2 구성 파일은 /boot/grub2/grub2.cfg 파일입니다. GRUB의 주요 목표는 Linux 커널을 주 메모리에 로드하는 것입니다.

3. 커널 초기화

커널은 모든 Linux 시스템의 핵심입니다. 이는 PC의 하드웨어를 기본 프로세스와 인터페이스합니다. 커널은 Linux 시스템의 모든 프로세스를 제어합니다. 선택한 Linux 커널이 부트로더에 의해 로드되면 작업을 수행하기 전에 압축된 버전에서 자체 압축을 풀어야 합니다. 자동 압축 풀기 시 선택한 커널은 루트 파일 시스템을 마운트하고 일반적으로 init라고 하는 /sbin/init 프로그램을 초기화합니다.

Init은 항상 실행되는 첫 번째 프로그램이며 프로세스 ID 또는 PID 1이 할당됩니다. 다양한 데몬을 생성하고 /etc/에 지정된 모든 파티션을 마운트하는 init 프로세스입니다. fstab 파일.

그런 다음 커널은 실제 루트 파일 시스템이 마운트될 때까지 임시 루트 파일 시스템인 초기 RAM 디스크(initrd)를 마운트합니다. 모든 커널은 초기 RAM 디스크 이미지와 함께 /boot 디렉토리에 있습니다.

4.시스템 시작

커널은 마침내 이전 SysV init를 대체하는 Systemd를 로드합니다. Systemd는 모든 Linux 프로세스의 어머니이며 무엇보다도 파일 시스템 마운트, 서비스 시작 및 중지 등을 관리합니다.

Systemd는 /etc/systemd/system/default.target 파일을 사용하여 Linux 시스템이 부팅해야 하는 상태나 대상을 결정합니다.

  • 데스크탑 워크스테이션(GUI 포함)의 경우 기본 대상 값은 5이며 이는 이전 SystemV init의 실행 레벨 5에 해당합니다.
  • 서버의 경우 기본 대상은 SysV init의 실행 레벨 3에 해당하는 multi-user.target입니다.

다음은 시스템 대상에 대한 분석입니다.

  • poweroff.target(런레벨 0): 시스템 전원을 끄거나 종료합니다.
  • rescue.target(런레벨 1): 복구 셸 세션을 시작합니다.
  • multi-user.target (runlevel 2,3,4): 시스템을 비그래픽(콘솔) 다중 사용자 시스템으로 구성합니다.
  • graphical.target(런레벨 5): 네트워크 서비스와 함께 그래픽 다중 사용자 인터페이스를 사용하도록 시스템을 설정합니다.
  • reboot.target(런레벨 6): 시스템을 재부팅합니다.

시스템의 현재 대상을 확인하려면 다음 명령을 실행하십시오.

systemctl get-default

터미널에서 다음 명령을 실행하여 한 대상에서 다른 대상으로 전환할 수 있습니다.

init runlevel-value

예를 들어, init 3은 시스템을 비그래픽 상태로 구성합니다.

init 6 명령은 시스템을 재부팅하고 init 0 시스템 전원을 끕니다. 이 두 대상으로 전환하려면 sudo 명령을 호출해야 합니다.

systemd가 모든 데몬을 로드하고 대상 또는 실행 수준 값을 설정하면 부팅 프로세스가 종료됩니다. 이 시점에서 Linux 시스템에 들어갈 수 있는 사용자 이름과 비밀번호를 입력하라는 메시지가 표시됩니다.