ホームページ > 運用・保守 > CentOS > CentOS システムの起動プロセスとは何ですか?

CentOS システムの起動プロセスとは何ですか?

WJ
リリース: 2020-06-03 15:29:49
オリジナル
1913 人が閲覧しました

CentOS システムの起動プロセスとは何ですか?

#CentOS システムの起動プロセスとは何ですか?

電源ボタンを押すと、システムの背後にある秘密が理解できるでしょうか?ここでは、Linux システムの起動の背後にある秘密を探っていきます。

CentOS システムの起動プロセスとは何ですか?

1. 電源投入時の自己テスト

マザーボードの電源が投入されると、システムはまず POST プログラムを使用して、内部の各種デバイスをチェックします セルフチェックで異常が見つかった場合は、重大な障害(致命的障害)の場合はシャットダウンします この時点では、各種初期化動作が行われていないため、重大な障害が発生した場合は、プロンプトまたは音声アラーム信号が発せられ、ユーザーが対処するのを待ちます。

2. BIOS 起動ブート フェーズ

セルフテストに合格した後、各ブート デバイスが順番に検索され、ブート プログラムを持つ最初のデバイスがブート デバイスとなります。対象の使用機材通常、コンピューターは「F2」または「Del」キーを押すと BIOS に入り、ハードディスクの起動シーケンスを調整できます。

ブート プログラムを持つ最初のデバイスを見つけた後、BIOS はデバイス内の MBR を見つけて、ブートローダーを読み取ります。

3.GRUP ブート フェーズ

この時点で、 Centos システムが表示されますが、通常は何も操作する必要はなく、システムは自動的に起動します。実際、システムを自分で手動で起動することもできます。

3.1 grub コマンド ライン インターフェイスを使用してシステムを手動で起動します:

    grub> root (hd#,#)
  grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE 
  grub> initrd /initramfs-VERSION-RELEASE.img
   grub> boot
ログイン後にコピー

3.2 grub コマンド ライン インターフェイス:

  e: 编辑模式,用于编辑菜单;
 c: 命令模式,交互式接口;
help: 获取帮助列表
help KEYWORD: 详细帮助信息
find (hd#,#)/PATH/TO/SOMEFILE:
root (hd#,#) 设定grup的根设备
kernel /PATH/TO/KERNEL_FILE: 设定本次启动时用到的内核文件;额外还可以添加许多内核支持使用的cmdline参数;
例如:init=/path/to/init, selinux=0
initrd /PATH/TO/INITRAMFS_FILE: 设定为选定的内核提供额外文件的ramdisk;
boot: 引导启动选定的内核;
ログイン後にコピー

3.3設定ファイル: /boot/grub/grub.conf

設定項目:

default=#: 设定默认启动的菜单项;落单项(title)编号从0开始;
timeout=#:指定菜单项等待选项选择的时长;
splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:指明菜单背景图片文件路径;
hiddenmenu:隐藏菜单;
password [--md5] STRING: 菜单编辑认证;
title TITLE:定义菜单项“标题”, 可出现多次;用来引导多个内核或者操作系统
    root (hd#,#):grub查找stage2及kernel文件所在设备分区;为grub的“根”; 
kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:启动的内核
initrd /PATH/TO/INITRAMFS_FILE: 内核匹配的ramfs文件;
password [--md5] STRING: 启动选定的内核或操作系统时进行认证
ログイン後にコピー

4. カーネルのロードフェーズ

カーネル自体が初期化を行います:

すべての識別可能なハードウェア デバイスを検出します;

ハードウェア ドライバーをロードします; (ドライバーは RAM ディスクの助けを借りてロードされる場合があります)

読み取りでマウントします-only モード ルート ファイル システム;

ユーザー空間で最初のアプリケーションを実行します: /sbin/init

5.init 初期化フェーズ

カーネルisloaded , init プログラムを実行します. init プロセスが起動すると、システム起動の制御は init プロセスに転送されます

/sbin/init プロセスはすべてのプロセスの親プロセスです. init が起動すると、まず構成ファイル /etc/inittab を読み取り、次の作業を実行します:

1.执行系统初始化脚本(/etc/rc.d/rc.sysinit),对系统进行基本的配置,以读写方式挂载根文件系统及其它文件系统,到此系统基本算运行起来了,后面需要进行运行级别的确定及相应服务的启动;
2.确定启动后进入的运行级别;
3.执行/etc/rc.d/rc,该文件定义了服务启动的顺序是先K后S,而具体的每个运行级别的服务状态是放在/etc/rc.d/rcn.d(n=0~6)目录下,所有的文件均链接至/etc/init.d下的相应文件。
4.有关key sequence的设置
5.有关UPS的脚本定义
6.启动虚拟终端/sbin/mingetty 
7.在运行级别5上运行X
ログイン後にコピー

構成ファイル: /etc/inittab

各行はアクションを定義し、対応するプロセス

id:runlevels:action:process 
id:一个任务的标识符;
runlevels:在哪些级别启动此任务;#,###,可以为空,表示所有级别;
action:在什么条件下启动此任务;
process:任务;(脚本或程序)
ログイン後にコピー
action:
wait:等待切换至此任务所在的级别时执行一次;
respawn:一旦此任务终止,就自动重新启动之;
initdefault:设定默认运行级别;此时,process省略;
sysinit:设定系统初始化方式,此处一般为指定/etc/rc.d/rc.sysinit脚本;
ログイン後にコピー

K*: 停止するサービス、K##*、優先度、数値が小さいほど優先度がシャットダウンされます。依存するサービスが最初にシャットダウンされ、次に依存するサービスがシャットダウンされます。シャットダウンするもの;

#S*: 開始するサービス; S##*、優先度、数値が小さいほど開始する優先度; 依存サービスが最初に開始され、依存サービスが開始されますlast;

chkconfig コマンド: control /etc/init .d/各レベルの各サービス スクリプトの起動またはシャットダウン ステータス;

查看:chkconfig  --list   [name]
添加:chkconfig  --add  name
删除:chkconfig  --del  name
ログイン後にコピー

指定されたリンク タイプを変更します:

chkconfig  [--level  LEVELS]  name  <on|off|reset>
--level LEVELS:指定要控制的级别;默认为2345;
init命令:
级别切换:init #
级别查看:who -r
ログイン後にコピー
関連参照:

centOS チュートリアル

以上がCentOS システムの起動プロセスとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート