Linux オペレーティング システムのブート プロセスとシステム サービスの制御

目次

1. Linux オペレーティング システムの起動プロセス

1. ブートプロセスの概要

2. ブートプロセスの詳細説明

2.1 電源投入時セルフテスト

2.2 MBRブート

2.3 GRUBメニュー

2.4 Linux カーネルのロード

2.5 initプロセスの初期化

3. システムの初期化プロセス

3.1 init処理(シリアル起動)

3.2 Systemd はサービス監視を置き換えることができます (並列開始)

4.Systemdユニットの種類

5. 実行レベルに対応する Systemd ターゲット

2.MBRセクター障害を修復する

1. 故障の原因

2. 故障現象

3. 解決策のアイデア

4. MBR セクターを修復するための具体的な手順

4.1 ハードディスクとパーティションの追加

4.2 MBR セクターデータを他のディスク (/dev/sdb1) にバックアップする (同一ハードディスク上にはバックアップできません)

 4.3 MBR ブート セクターの破壊をシミュレートする

 4.4 インターフェイスを緊急モードで起動し、バックアップ ファイルから MBR セクター データを復元し、最初にディスク イメージをロードします。

 4.5 シェル インターフェイスに入り、バックアップのあるパーティションをマウントし、破損したハード ディスクに静的バックアップ データを復元して、再起動します。

3. GRUB ブート障害を修復する

1. 故障の原因

2. 故障現象

3. 解決策のアイデア

4. GRUB ブート障害を修復するための具体的な手順 (特定の操作とコマンドを使用)

4.1 手動修復

4.2 緊急モードに入る

4.3 インターフェースを緊急モードで起動する

5. GRUB メニュー構成ファイルを再構築します。

5.1 ブートファイルの削除をシミュレートする

4. root ユーザーのパスワードを忘れた場合

1. 故障の原因

2. 故障現象

3. 解決策のアイデア

4.CDでパスワードを変更する

4.1 クライアントを再起動し、ESC キーを押してレスキュー モードに入り、CD-ROM ドライブをクリックして光学ドライブ モードに入ります。

4.2 トラブルシューティングの選択

4.3 CentOS システムのレスキューを選択します

4.4 1 を入力して光学ドライブ システムを入力します。

4.5 パスワードの変更 

5. シングルユーザーモードでパスワードを変更する

5.1 起動中にいずれかのキーを押して起動を一時停止し、e キーを押して編集モードに入ります。

5.2 linux で始まる行にカーソルを移動し、カーネル パラメータ rd.break を追加します。 

5. システムサービス制御

1. サービス ユニット ファイルは通常、次の 3 つの部分で構成されます。

2. ユニットセグメント共通オプション 

3. サービスセグメントの共通オプション

6. Linux システムの動作レベル

1. 走行レベルを確認する

2. runlevel コマンドは、切り替え実行レベルと現在の実行レベルのみを表示できます。

 3. systemctl ツールはデフォルトの実行レベルを表示できます。 


1. Linux オペレーティング システムの起動プロセス

1. ブートプロセスの概要

 

2. ブートプロセスの詳細説明

2.1 電源投入時セルフテスト

ハードウェア設定のチェック、システム制御の転送
サーバー ホストの電源を入れた後、CPU、メモリ、グラフィック カード、キーボード、およびその他のデバイスの予備テストが、次の基準に基づいて実行されます。マザーボード BIOS の設定に基づいてテストが成功すると、事前に設定された起動シーケンスに従ってシステム制御が転送されます。オペレーティング システムは通常、ハード ディスクにインストールされているため、ほとんどの場合、ローカル ハード ディスクに転送されます。ディスク

概要: ハードディスクや光学ドライブなど、システムを起動できる最初のデバイスを検出します。

2.2 MBRブート

MBR セクターに配置されたスタートアップ GRUB ブート プログラムを実行します。
システムがローカル ハードディスクから起動されると、最初のセクタの MBR (マスター ブート レコード) の設定に従って、システム制御がまずオペレーティング システムのブート ファイルを含むパーティションに転送されます。 ; または、MBR レコードのブート情報に基づいてブート メニューを直接呼び出します。例: GRUB など

概要: MBR セクターに配置されたスタートアップ GRUB ブート プログラムを実行します。

2.3 GRUBメニュー

GRUB ブート プログラムは、GRUB 構成ファイル /boot/grub2/grub.cfg を読み取ることで、カーネルお​​よびイメージ ファイル システムの設定とパスの場所を取得します。
Linux オペレーティング システムの場合、GRUB (Unified Boot Loader) は最も広く使用されているマルチシステム ブート プログラムです。システム制御が FRUB に渡されると、ユーザーが選択できるブート メニューが表示されます。 . 、選択されたオプションに従って Linux カーネル ファイルをロードし (またはデフォルト値を採用し)、システム制御をカーネルに転送します。

GRUB の起動フェーズ

プライマリ ブート ローダー:
          第 1 段階。…MBR の最初の 446 バイトは、ハードウェアを起動してカーネルを見つけます。

          5 ステージ:.. MBR の後のセクターにより、ステージ 1 のブートローダーがステージ 2 が配置されているパーティション上のファイル システムを識別できるようになります。

セカンダリ ブート ローダー: 第 2 ステージ、パーティション ファイル/boot/grub2/grub.cfg
(CentOS 7 は GRUB2 ブート ローダーを使用します)

概要: GRUB ブート プログラムは、GRUB 構成ファイル /boot/grub2/grub.cfg を読み取ることで、カーネルお​​よびイメージ ファイル システムの設定とパスの場所を取得します。

2.4 Linux カーネルのロード

カーネルとイメージ ファイル システムをメモリにロードします。
 Linux カーネルは、事前にコンパイルされた特殊なバイナリ ファイルであり、それぞれのハードウェア リソースとシステム プログラムの間にあり、リソースの割り当てとスケジューリングを複製します。カーネルがシステムの制御を引き継いだ後、システム全体、つまり Linux オペレーティング システムの実行プロセスを完全に制御します。

(CentOS システムでは、デフォルトのカーネル ファイルは「/boot/vmlinuz-3.10.0-514.e17.x86_64」にあります)

概要: カーネルとイメージ ファイルをメモリにロードする 

2.5 initプロセスの初期化

はハードウェア ドライバーをロードし、カーネルは init プロセスをメモリにロードして実行します。
その後のシステム起動プロセスを完了するために、Linux カーネルはまずシステムの「/sbin/init」プログラムをメモリにロードして実行します (実行中のプログラムはプロセスと呼ばれます)。 、init プロセスはシステム全体の初期化を完了し、最後にユーザーのログインを待ちます。

概要: ハードウェア ドライバーをロードすると、カーネルが init プロセスをメモリにロードして実行します。

3. システムの初期化プロセス

3.1 init処理(シリアル起動)

/sbin/init プログラムは Linux カーネルによってロードされ、実行されます。
init プロセスはシステム内の最初のプロセスであり、すべてのプロセスの親プロセスです。 a>
初期プロセスの PID (プロセス ID) 番号は常に 1 です。

3.2 Systemd はサービス監視を置き換えることができます (並列開始)

Systemd は、Linux オペレーティング システム用の init ソフトウェアです。(centos7 の最初のプロセスは systemd、centos6 以前の最初のプロセスは init)
CentOS 7 で使用されます。 (サービス プロセスの並列起動) 起動方法は、従来の SysVinit (サービスを起動するためのシェル スクリプトのシリアル実行) を置き換えます。
CentOS 7 で実行される最初の init プロセスは /lib/systemd /systemd です。 a> systemd は、より多くのサービス プロセスの起動を並列化でき、次の機能を備えています。オンデマンドの起動サービスを提供し、開始するプロセスを減らし、システムの起動速度を向上させます。
従来の sysVinit は、シェル スクリプトのシリアル実行に依存してサービスを開始するため、効率が低く、システムの起動速度が遅くなります。


4.Systemdユニットの種類


 

5. 実行レベルに対応する Systemd ターゲット

 

  

2.MBRセクター障害を修復する

MBR は最初のハードディスク (/dev/sda) の最初の物理セクターにあり、合計 512 バイトで、最初の 446 バイトが GRUB プログラム、次の 64 バイトがパーティション テーブルです。

1. 故障の原因

ウイルス、トロイの木馬などによる損傷
不正なパーティション操作、ディスクの読み取りおよび書き込みエラー

2. 故障現象

ブートローダーが見つからず、起動が中断される
オペレーティング システムをロードできず、起動後に画面が真っ暗になる

3. 解決策のアイデア

バックアップとして別のハードディスクを追加する準備をします。
事前にバックアップ ファイルを作成します。
インストール CD を使用してレスキュー モードで起動します。
バックアップ ファイルから復元します。

4. MBR セクターを修復するための具体的な手順

4.1 ハードディスクとパーティションの追加
 

 

 

4.2 MBR セクターデータを他のディスク (/dev/sdb1) にバックアップする (同一ハードディスク上にはバックアップできません)

  1. dd if=/dev/sda of=/mnt/mdr.bak bs=512 count=1

  2. (コピーして上書きします。dev の下の sda を mnt にコピーし、mbr.bak という名前を付けます。一度に 512 バイトずつ、1 回コピーします)

 

 4.3 MBR ブート セクターの破壊をシミュレートする

  1. dd if=/dev/zero of=/dev/sda bs=512 count=1

  2. (512バイトの空間を一度sdaに書き込む)

  3. hexdump -C -n 512 /dev/sda
  4. SDA ハードディスクの最初の 512 バイトを確認すると、破損していることがわかります。この時点で、再起動して緊急モードに入る必要があります。このとき、光学式ドライブのシステムが読み取られます。

 

 4.4 インターフェイスを緊急モードで起動し、バックアップ ファイルから MBR セクター データを復元し、最初にディスク イメージをロードします。

1. インストール ウィザード インターフェイスが表示されたら、[トラブルシューティング] オプションを選択します。


2.「CentOS Linux システムをレスキュー」オプションを選択してレスキュー モードに入ります。


3. 「1」を選択し、「続行」を選択して Enter キーを押して続行します。


4. Enter キーをもう一度押すと、「sh-4.2#」プロンプトで Bash シェル環境に入ります。

 

 

 

 4.5 シェル インターフェイスに入り、バックアップのあるパーティションをマウントし、破損したハード ディスクに静的バックアップ データを復元して、再起動します。


sh-4.2# mkdir bak
sh-4.2# mount /dev/sdb1 /bak
#バックアップ ファイルのあるパーティションをマウントします  sh-4.2# 再起動 sda ハードディスクの最初の 512 バイトをチェックすると、修復されていることがわかります。 sh -4.2 # hexdump -C -n 512 /dev/sda #バックアップ データの復元
sh-4.2# dd if=/bak/mdr.bak of=/dev/ sda



 

 

3. GRUB ブート障害を修復する

1. 故障の原因

MBR の GRUB ブート プログラム (1 ~ 446 バイト) が破損しています
grub.cfg ファイルが見つからず、ブート構成が正しくありません。ファイルの場所は /boot/ です。 grub2/grup.cfg

2. 故障現象

システムのブートが停止し、grub > プロンプトが表示される

3. 解決策のアイデア

ブート コマンドを手動で入力して修復してみます (推奨されません)
レスキュー モードに入り、バックアップから grub.cfg を書き換えるか復元します
レスキューを開始しますMBR セクターで grub プログラムを再構築するモード

4. GRUB ブート障害を修復するための具体的な手順 (特定の操作とコマンドを使用)

4.1 手動修復

ページ上の grub > の後に次のブート コマンドを手動で入力するだけです (入力でコピーすることはできず、失敗する前にカーネル情報を保存する必要があります。この方法は時間がかかり、不器用で扱いにくいため、お勧めできません)。

グラブ> insmod xfs
grub> linux16 /vmlinuz-0-rescue-73d7ede256a74b0e975e69f22d862090 root=UUID=d069b243-6623-4983-8d61-3ec6956a4f2b ro rhgb Quiet
grub> initrd16 /initramfs-0-rescue-73d7ede256a74b0e975e69f22d862090.img
grub>ブーツ

4.2 緊急モードに入る

GRUB ブート プログラムを復元し、バックアップから grub.conf を書き換えるか復元します (この方法は MBR セクターを修復するのと同じです。唯一の違いは bs=446 です) MBR は最初のハードディスクの最初の物理セクターにあり、合計512 バイトのうち、最初の 446 バイトはマスター ブート レコードです

#バックアップ ディスクをマウントし、GRUB ブート プログラムをバックアップするための新しいディレクトリを作成します
mkdir /bak
mount /dev/sdb1 /bak/
dd if=/dev/sda of=/bak/grup.bak bs=446 count=1
 
#GRUB ブート プログラムの破棄をシミュレートします。 MBR、ただしパーティション テーブルは破棄しないでください。
 dd if=/dev/zero of=/dev/sda bs=446 count=1
 
#インターフェイスを起動しますバックアップ ファイルから GRUB ブート プログラムを復元する
sh-4.2# mkdir /data
sh-4.2# mount /dev/sdb1 /data から緊急モードに移行します。 /
sh-4.2# dd if=/data/grup.bak of=/dev/sda bs=446 count=1
sh-4.2# exit< /span>

4.3 インターフェースを緊急モードで起動する

GRUBメニュー設定ファイルを再構築する

#設定ファイルを削除し、GRUB 障害をシミュレートします
rm -rf /boot/grub2/grub.cfg    
 
#レスキュー モードに入り、 CD イメージ、システム ルート環境に切り替えます                   
sh-4.2# chroot /mnt/sysimage                    
 
#最初のハードディスク (dev/) に GRUB ブート プログラムを再インストールしますsda) MBR セクター。複数のパーティションがある場合は省略できます。
bash-4.2# grub2-install /dev/sda /span>                 sh -4.2# 再起動 bash-4.2# exit #chroot 環境を終了し、再起動します       bash-4.2# grub2-mkconfig -o /boot/grub2/grub.cfg 
 


 


5. GRUB メニュー構成ファイルを再構築します。

5.1 ブートファイルの削除をシミュレートする

5.2 再起動後、0.5 秒以内に ESC を押して緊急モードに入ります。

 

5.3 CD-ROM ドライブを選択してクリックし、CD-ROM ドライブ モードに入ります。

 

 5.4 トラブルシューティングの選択

 

5.5 「CentOS システムのレスキュー」を選択します

 

5.6 光学ドライブシステムを入力するには、「1」を入力します。

 

5.7 grub プログラムの再構築

 

4. root ユーザーのパスワードを忘れた場合

1. 故障の原因

root ユーザーのパスワードを忘れた場合

2. 故障現象

root 権限を必要とする管理操作を実行できない
他に利用可能なアカウントがない場合、システムにログインできません

3. 解決策のアイデア

緊急モードに入り、パスワードをリセットする

4.CDでパスワードを変更する


4.1 クライアントを再起動し、ESC キーを押してレスキュー モードに入り、CD-ROM ドライブをクリックして光学ドライブ モードに入ります。
 

4.2 トラブルシューティング

 

4.3 CentOS システムをレスキューする

 

4.4 1 を入力します。光学ドライブ システムを入力します

 

4.5 パスワードの変更 

 

5. シングルユーザーモードでパスワードを変更する

5.1 起動中にいずれかのキーを押して起動を一時停止し、e キーを押して編集モードに入ります。

 

 

5.2 linux で始まる行にカーソルを移動し、カーネル パラメータ rd.break を追加します。 

SELinux が有効な場合、終了操作を実行する前に touch /.autorelabel を実行する必要がありますが、起動されていない場合は touch /.autorelabel を実行する必要はありません

 

5. システムサービス制御

形式: systemctl コントロールタイプのサービス名

システムのバックグラウンドで実行されているプログラムがあります。

systemctl disable --now サービス名 すぐに開始し、起動後に自動的に開始しません
systemctl disable --now サービス名 サービスをすぐに閉じ、起動後に自動的に開始しません a>
systemctl Enable サービス名が起動時に自動的に開始されません
systemctl disable サービス名が起動時に自動的に開始されません

システムサービス制御タイプ
制御タイプ 効果
始める 起動する
停止 停止
再起動 再起動
リロード リロード
状態 サービスステータスを確認する
有効になっています

サービスが開始されているか確認する

 

1. サービス ユニット ファイルは通常、次の 3 つの部分で構成されます。

[Unit]: ユニットのタイプに関係なく共通のオプションを定義します。ユニットの説明情報、ユニットの動作、および依存関係を提供するために使用されます。
[サービス]: 特定のタイプに関連する特別なオプション。サービス タイプは次のとおりです。
[インストール]: 「systemctl enable」および「systemctl disable」によって定義されます。コマンド サーバーの起動時または無効化時に使用されるオプション

2. ユニットセグメント共通オプション 

説明: 説明情報
後: ユニットの起動シーケンスを定義し、現在のユニットを後で起動する必要があるユニットを示します。その機能は前とは逆です。
要求: 他のユニットに依存、依存性が強い、依存しているユニットが起動できない場合、現在のユニットは起動できない
希望: 他のユニットに依存、依存性が弱い< a i= 4> conficts: ユニット間の競合関係を定義

3. サービスセグメントの共通オプション

タイプ: ExecStart および関連パラメータの機能に影響を与えるユニット プロセスのスタートアップ タイプを定義します。

 - EnvironmentFile: 環境設定ファイル
- ExecStart: ユニットを起動するコマンドまたはスクリプトを実行する絶対パスを指定します
- ExecStartPre: Run ExecStart 前
- ExecStartPost: ExecStart の後に実行
- ExecStop: ユニットを停止するために実行するコマンドまたはスクリプトを指定します
- Restart: 設定した場合 Restart=1 の場合、デーモン サービスが予期せず終了すると、サービスは自動的に再度開始されます
- RestartSec: サービスを再起動するまでの一時停止時間を設定します (Restart=)。デフォルト値は 100 ミリ秒 (100ms) です。いいえ
- 時間単位が指定されている場合は、秒単位とみなされます。たとえば、「20」に設定すると、「20s」に設定するのと同じになります。
- PrivateTmp: yes に設定すると、/tmp/systemd-private-UUID-NAME.service-XXXXX/tmp/ ディレクトリが生成されます

6. Linux システムの動作レベル

1. 走行レベルを確認する

runlevel コマンドは、切り替え実行レベルと現在の実行レベルのみを表示できます
systemctl ツールはデフォルトの実行レベルを表示できます

2. runlevel コマンドは、切り替え実行レベルと現在の実行レベルのみを表示できます。


 

 ターミナルで init コマンドを使用してレベルを切り替えます

 3. systemctl ツールはデフォルトの実行レベルを表示できます。 

拡張子: etc/rc.d/rc#.d は、ローディング システムにある実行レベル (# は 0 ~ 6) に応じて、対応する /etc/rc.d/rc#.d ディレクトリでサービスを開始します。ブートプロセス中間のサービスステップ

拡張機能: 自分で作成し、コンパイルしてインストールしたサービスは etc/rc.d/rc#.d にロードされず、systemd を使用してオンまたはオフにすることはできません。

拡張子:curl IPアドレス:Webページが閲覧可能

おすすめ

転載: blog.csdn.net/weixin_52269501/article/details/128306961