>  기사  >  운영 및 유지보수  >  리눅스 MBR GRUB이란 무엇입니까?

리눅스 MBR GRUB이란 무엇입니까?

藏色散人
藏色散人원래의
2023-03-14 09:48:001455검색

linux mbr grub은 전체 Linux 시스템의 시작 프로세스입니다. mbr의 전체 영어 이름은 "Master Boot Record"이며, 이는 마스터 부트 레코드가 디스크 헤드에 저장되며 크기가 512바이트라는 의미입니다. ; grub의 전체 영어 이름은 "Grand Unified" Bootloader"이며 다중 시스템 시작 프로그램을 나타냅니다.

리눅스 MBR GRUB이란 무엇입니까?

이 튜토리얼의 운영 환경: linux5.9.8 시스템, Dell G3 컴퓨터.

리눅스 MBR GRUB이 무엇인가요?

Linux 부팅 프로세스에 대한 자세한 설명: BIOS->MBR->GRUB 등...

개요

Linux는 UNIX와 유사한 무료 오픈 소스 운영 체제입니다. 운영 체제의 커널은 1991년 10월 5일 Linus Torvalds에 의해 처음 출시되었습니다. 사용자 공간 애플리케이션을 추가하면 Linux 운영 체제가 됩니다. Linux는 무료 소프트웨어 및 오픈 소스 소프트웨어 개발의 가장 유명한 예입니다.

다음은 리눅스 시스템의 부팅부터 사용 가능까지의 전 과정을 간략하게 기록한 것입니다!

LINUX 시작 프로세스

먼저 전체 시스템 시작 프로세스를 그림을 통해 간략하게 이해해 보겠습니다. 전체 프로세스는 기본적으로 POST-->BIOS-->MBR(GRUB)-->Kernel로 나눌 수 있습니다. - ->초기화-->런레벨. 각 프로세스의 역할은 아래에 자세히 설명되어 있습니다.

리눅스 MBR GRUB이란 무엇입니까?

BIOS

기본 입출력 시스템인 BIOS(기본 입출력 시스템)는 마더보드의 ROM 칩에 저장되어 있습니다. 이 프로세스는 실제로 컴퓨터의 가장 기본적인 구성 요소인 CPU와 메모리(컨트롤러, 연산 장치 및 메모리)를 검사합니다. 이상이 없으면 BIOS 프로그램을 메모리에 로드하기 시작합니다. BIOS의 주요 기능 중 하나는 디스크의 시작 순서를 저장하는 것입니다. BIOS는 시작 순서에 따라 첫 번째 디스크 헤더의 MBR 정보를 검색하고 로드합니다. MBR에서 Bootloader 프로그램을 실행합니다. 첫 번째 디스크에 MBR이 없으면 계속해서 두 번째 디스크를 검색합니다. (PS: BootLoader 프로그램이 감지되면 시작 순서를 BIOS 인터페이스에서 설정할 수 있습니다.) 메모리에 로드되면 BIOS는 제어권을 BootLoader 프로그램으로 넘깁니다.

MBR

MBR(Master Boot Record), Master Boot Record, MBR은 디스크의 헤드에 저장되며, 크기는 512바이트이며, 그 중 446바이트는 BootLoader 프로그램을 저장하는 데 사용되며, 64바이트는 사용됩니다. 파티션 테이블 정보를 저장하기 위해 사용되며 마지막 2바이트는 MBR에 대한 유효성 검사에 사용됩니다.

리눅스 MBR GRUB이란 무엇입니까?

GRUB

GRUB(Grand Unified Bootloader)는 다중 시스템 시작 프로그램이며 실행 프로세스는 세 단계로 나눌 수 있습니다.

Stage1: 이것은 실제로 MBR이며 주요 작업은 첫 번째 단계의 Bootloader 프로그램(stage2)을 로드하지만 시스템이 시작되지 않으면 MBR은 파일 시스템을 전혀 찾을 수 없으며 stage2가 저장된 위치를 찾을 수 없습니다. 따라서 stage1_5

Stage1_5: 이 단계가 있습니다. 파일 시스템을 식별하는 것입니다.

Stage2: GRUB 프로그램은 /boot/grub/grub.conf 파일을 기반으로 커널 정보를 검색한 다음 커널 프로그램이 감지되어 메모리에 로드되면 커널 프로그램 로드를 시작합니다. , GRUB는 제어권을 커널 프로그램으로 이전합니다.

PS: 사실 이 단계에서는 /boot가 마운트되지 않았습니다. GRUB는 grub이 있는 디스크의 파일 시스템을 직접 인식하므로 실제로는 이 구성의 정보가 /grub/grub.conf 파일이어야 합니다.

grub.conf:

#boot=/dev/sda
default=0 #设定默认启动的title的编号,从0开始
timeout=5 #等待用户选择的超时时间
splashimage=(hd0,0)/boot/grub/splash.xpm.gz #GRUB的背景图片
hiddenmenu #隐藏菜单
title CentOS (2.6.18-194.el5PAE) #内核标题
root (hd0,0) #内核文件所在的设备
kernel /vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/ #内核文件路径以及传递给内核的参数
initrd /initrd-2.6.18-194.el5PAE.img #ramdisk文件路径

Kernel

Kernel, kernel은 Linux 시스템에서 가장 중요한 프로그램입니다. 실제로 Kernel의 파일은 매우 작으며 가장 기본적인 모듈만 유지됩니다. , 압축 파일 형태로 하드 디스크에 저장됩니다. GRUB가 커널을 메모리로 읽어들이면 메모리는 커널 파일의 압축을 풀기 시작합니다. 커널 시작에 관해 이야기할 때 먼저 2단계에서 메모리에 복사되는 initrd 파일인

initrd(초기 RAM 디스크)에 대해 이야기해야 합니다. 이 파일은 시스템 설치 시 생성되며 임시 루트 파일입니다. 시스템.(rootfs). 커널은 단순화를 위해 가장 기본적인 모듈만 유지하고 있기 때문에 커널에는 다양한 하드웨어에 대한 드라이버가 없기 때문에 rootfs가 위치한 장치를 인식할 수 없으므로 필요한 드라이버를 로드하는 initrd 파일이 생성됩니다. module., 커널이 시작되면 실제 rootfs가 마운트될 때까지 initrd 파일에서 드라이버 모듈을 로드할 수 있으며 그런 다음 initrd가 메모리에서 제거됩니다.

커널은 루트 파일 시스템을 읽기 전용 모드로 마운트합니다. 루트 파일 시스템이 마운트되면 첫 번째 프로세스(사용자 공간 프로세스)를 로드하고 /sbin/init를 실행한 다음 init 프로그램으로 제어를 전송합니다. .

초기화

init,初始化,顾名思义,该程序就是进行OS初始化操作,实际上是根据/etc/inittab(定义了系统默认运行级别)设定的动作进行脚本的执行,第一个被执行的脚本为/etc/rc.d/rc.sysinit,这个是真正的OS初始化脚本,简单讲下这个脚本的任务(可以去看看实际脚本,看看都做了什么):

  • 激活udev和selinux;

  • 根据/etc/sysctl.conf文件,来设定内核参数;

  • 设定系统时钟;

  • 装载硬盘映射;

  • 启用交换分区;

  • 设置主机名;

  • 根文件系统检测,并以读写方式重新挂载根文件系统;

  • 激活RAID和LVM设备;

  • 启用磁盘配额;

  • 根据/etc/fstab,检查并挂载其他文件系统;

  • 清理过期的锁和PID文件

执行完后,根据配置的启动级别,执行对应目录底下的脚本,最后执行/etc/rc.d/rc.local这个脚本,至此,系统启动完成。

Runlevel

runlevel,运行级别,不同的级别会启动的服务不一样,init会根据定义的级别去执行相应目录下的脚本,Linux的启动级别分为以下几种

0:关机模式

1:单一用户模式(直接以管理员身份进入)

2:多用户模式(无网络)

3:多用户模式(命令行)

4:保留

5:多用户模式(图形界面)

6:重启

在不同的运行级别下,/etc/rc.d/rc这个脚本会分别执行不同目录下的脚本

Run level 0 – /etc/rc.d/rc0.d/
Run level 1 – /etc/rc.d/rc1.d/
Run level 2 – /etc/rc.d/rc2.d/
Run level 3 – /etc/rc.d/rc3.d/
Run level 4 – /etc/rc.d/rc4.d/
Run level 5 – /etc/rc.d/rc5.d/
Run level 6 – /etc/rc.d/rc6.d/

这些目录下的脚本只有K*和S*开头的文件,K开头的文件为开机需要执行关闭的服务,S开头的文件为开机需要执行开启的服务。

相关推荐:《Linux视频教程

위 내용은 리눅스 MBR GRUB이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.