ホームページ  >  記事  >  運用・保守  >  Linux MBR GRUBとは何ですか

Linux MBR GRUBとは何ですか

藏色散人
藏色散人オリジナル
2023-03-14 09:48:001475ブラウズ

linux mbr grub は、Linux システム全体を起動するプロセスです。mbr の正式な英語名は「Master Boot Record」で、マスター ブート レコードを意味します。mbr はディスクの先頭に格納され、サイズは 512 バイトで、grub の正式な英語名は「Grand Unified Bootloader」で、マルチシステム ブートローダーを意味します。

Linux MBR GRUBとは何ですか

#このチュートリアルの動作環境: linux5.9.8 システム、Dell G3 コンピューター。

Linux mbr grub とは何ですか?

Linux ブート プロセスの詳細な説明: BIOS->MBR->GRUB など...

概要

Linux は、無料のオープンソースの UNIX に似たオペレーティング システムです。このオペレーティング システムのカーネルは、1991 年 10 月 5 日に Linus Torvalds によって初めてリリースされました。ユーザー空間アプリケーションを追加すると、Linux オペレーティング システムになります。 Linux は、フリー ソフトウェアおよびオープン ソース ソフトウェア開発の最も有名な例です。

備忘録として、Linux システムの起動から使用可能になるまでの全プロセスを簡単に記録してみましょう。

LINUX の起動プロセス

まず、システムの起動プロセス全体を図で簡単に理解しましょう。プロセス全体は基本的に POST-->BIOS-- に分けることができます。 >MBR(GRUB)-->カーネル-->初期化-->実行レベル。各プロセスの役割については、以下で詳しく説明します。

Linux MBR GRUBとは何ですか

BIOS

BIOS (Basic Input/Output System)、基本的な入出力システム。このシステムは、マザーボードの ROM チップ コンピューターの電源がオンになると、最初にシステムが読み取られ、次に電源投入時セルフテスト プロセスが実行されます。このプロセスは、実際には、コンピューターの最も基本的なコンポーネントである CPU とメモリをチェックするためのものです。コンピュータ(コントローラ、演算装置、メモリ)の他のハードウェアもチェックし、異常がなければBIOSプログラムのメモリへのロードを開始します。 BIOS の詳細な機能についてはここでは説明しません。BIOS の主な機能の 1 つは、ディスクの起動シーケンスを保存することです。BIOS は、起動シーケンスに従って最初のディスク ヘッダーの MBR 情報を検索し、ロードします。 MBR でブートローダー プログラムを実行します。MBR が最初のディスクに存在しない場合、2 番目のディスクの検索が続行されます (PS: 起動シーケンスは BIOS インターフェイスで設定できます)。ブートローダー プログラムが検出されると、そしてメモリにロードされると、BIOS は制御を BootLoader プログラムに移します。

MBR

MBR (マスター ブート レコード)、マスター ブート レコード、MBR はディスクの先頭に格納され、サイズは 512 バイトで、そのうち 446 バイトはバイトはブートローダー プログラムの保存に使用され、64 バイトはパーティション テーブル情報の保存に使用され、最後の 2 バイトは MBR 有効性チェックに使用されます。

Linux MBR GRUBとは何ですか

GRUB

GRUB (Grand Unified Bootloader) はマルチシステム起動プログラムであり、その実行プロセスは 3 つに分けられます。ステップ:

ステージ 1: これは実際には MBR です。その主な仕事は 2 番目のブートローダー プログラム (ステージ 2) を見つけてロードすることです。ただし、システムが起動していない場合、MBR はファイル システムをまったく見つけることができません。 stage2 が保存されている場所は、stage1_5

Stage1_5: このステップは、ファイル システムを識別することです

Stage2: GRUB プログラムは、 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

カーネル、カーネル、カーネルは最も重要なプログラムです。 Linux システム. 実際、カーネル ファイルは非常に小さく、最も基本的なモジュールのみが圧縮ファイルの形式でハードディスクに保持され、保存されます。GRUB がカーネルをメモリに読み取ると、メモリはカーネル ファイルの解凍を開始します。 。カーネルの起動について話すときは、まず、ステージ 2 のステップでメモリにコピーされる initrd ファイル

initrd (Initial RAM Disk) について話す必要があります。このファイルは、システムのインストール時に生成され、一時的なルート ファイル システム (rootfs)。カーネルは簡素化するために最も基本的なモジュールのみを保持しているため、カーネルにはさまざまなハードウェア用のドライバーが存在せず、rootfs が配置されているデバイスを認識できません。そのため、必要なドライバー モジュールをロードする initrd ファイルが生成されます。 . カーネルの起動時に、実際の 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视频教程

以上がLinux MBR GRUBとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。