Maison  >  Article  >  Opération et maintenance  >  Qu'est-ce que Linux MBR Grub

Qu'est-ce que Linux MBR Grub

藏色散人
藏色散人original
2023-03-14 09:48:001453parcourir

linux mbr grub est le processus de démarrage de l'ensemble du système Linux. Le nom anglais complet de mbr est "Master Boot Record", ce qui signifie que l'enregistrement de démarrage principal est stocké en tête du disque et a une taille de 512 octets. ; le nom anglais complet de grub est "Grand Unified" Bootloader", qui représente un programme de démarrage multi-système.

Qu'est-ce que Linux MBR Grub

L'environnement d'exploitation de ce tutoriel : système linux5.9.8, ordinateur Dell G3.

Qu'est-ce que Linux MBR Grub ?

Explication détaillée du processus de démarrage de Linux : BIOS->MBR->GRUB, etc...

Vue d'ensemble

Linux est un système d'exploitation de type UNIX gratuit et open source. Le noyau du système d'exploitation a été publié pour la première fois par Linus Torvalds le 5 octobre 1991. Après avoir ajouté des applications en espace utilisateur, il devient le système d'exploitation Linux. Linux est l'exemple le plus célèbre de développement de logiciels libres et de logiciels open source.

Ce qui suit est un bref enregistrement de l'ensemble du processus du système Linux, du démarrage à l'utilisation, pour rappel !

Processus de démarrage LINUX

Tout d'abord, comprenons brièvement l'ensemble du processus de démarrage du système à travers une image. L'ensemble du processus peut essentiellement être divisé en POST-->BIOS-->MBR(GRUB)-->Noyau. - ->Init-->Niveau d'exécution. Le rôle de chaque processus est expliqué en détail ci-dessous.

Quest-ce que Linux MBR Grub

BIOS

BIOS (Basic Input/Output System), le système d'entrée et de sortie de base, ce système est stocké sur la puce ROM de la carte mère. Lorsque l'ordinateur est allumé, il lit d'abord le. système, puis il y aura un processus d'auto-test à la mise sous tension. Ce processus vérifie en fait le processeur et la mémoire, les composants les plus élémentaires de l'ordinateur (contrôleur, unité arithmétique et mémoire). Il vérifie également d'autres matériels. aucune anomalie, il commence à charger le programme BIOS dans la mémoire. Les fonctions détaillées du BIOS ne seront pas abordées ici. L'une des fonctions principales du BIOS est de stocker la séquence de démarrage du disque. Le BIOS recherchera les informations MBR du premier en-tête du disque en fonction de la séquence de démarrage, puis chargera et. exécutez le programme Bootloader dans le MBR, si le MBR n'existe pas sur le premier disque, il continuera à rechercher le deuxième disque (PS : la séquence de démarrage peut être définie dans l'interface du BIOS une fois le programme BootLoader détecté). et chargé dans la mémoire, le BIOS transférera le contrôle au programme BootLoader.

MBR

MBR (Master Boot Record), Master Boot Record, MBR est stocké dans la tête du disque, la taille est de 512 octets, dont 446 octets sont utilisés pour stocker le programme BootLoader, 64 octets sont utilisés pour stocker les informations de la table de partition, et les 2 derniers octets sont utilisés pour le contrôle de validité sur le MBR.

Quest-ce que Linux MBR Grub

GRUB

GRUB (Grand Unified Bootloader), un programme de démarrage multi-système, son processus d'exécution peut être divisé en trois étapes :

Étape 1 : Il s'agit en fait de MBR, sa tâche principale est de trouver et chargez la première La deuxième étape du programme Bootloader (stage2), mais lorsque le système n'est pas démarré, MBR ne peut pas du tout trouver le système de fichiers et ne peut pas trouver l'emplacement où stage2 est stocké. Par conséquent, il y a stage1_5

Stage1_5 : Cette étape. consiste à identifier le système de fichiers

Étape 2 : Le programme GRUB recherchera les informations sur le noyau en fonction du fichier /boot/grub/grub.conf, puis commencera à charger le programme du noyau lorsque le programme du noyau est détecté et chargé dans la mémoire. , GRUB transférera le contrôle au programme Kernel.

PS : En fait, /boot n'a pas été monté à cette étape. GRUB reconnaît directement le système de fichiers du disque où se trouve grub, il devrait donc s'agir du fichier /grub/grub.conf Les informations de cette configuration. Le fichier est le suivant :

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, Kernel est le programme le plus important du système Linux. En fait, le fichier du Kernel est très petit, seuls les modules les plus basiques sont conservés. , et sont stockés sur le disque dur sous forme de fichiers compressés, lorsque GRUB lit le noyau en mémoire, la mémoire commence à décompresser le fichier du noyau. Lorsqu'on parle de démarrage du noyau, nous devons d'abord parler du fichier initrd,

initrd (Initial RAM Disk), qui est copié dans la mémoire à l'étape stage2. Ce fichier est généré lors de l'installation du système et est un système de fichiers racine temporaire. . (rootfs). Étant donné que le noyau ne conserve que les modules les plus basiques afin de le simplifier, il n'y a pas de pilotes pour divers matériels sur le noyau, il ne peut donc pas reconnaître le périphérique sur lequel se trouve rootfs. Par conséquent, le fichier initrd est généré, qui charge les modules de pilote nécessaires. , lorsque le noyau démarre, le module pilote peut être chargé à partir du fichier initrd jusqu'à ce que le vrai rootfs soit monté, puis l'initrd est supprimé de la mémoire.

Le noyau montera le système de fichiers racine en mode lecture seule. Lorsque le système de fichiers racine est monté, il commencera à charger le premier processus (processus de l'espace utilisateur), exécutera /sbin/init, puis transférera le contrôle au programme d'initialisation. .

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视频教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn