Linux-ブートプロセスとサービス制御

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

1.起動プロセスの概要

電源投入時セルフテスト(BIOS)→MBRブート→GRUBメニュー→カーネルのロード(カーネル)→プロセスの初期化の初期化

  1. 電源投入時セルフテスト(BIOS)
    サーバーホストの電源を入れた後、CPU、メモリ、グラフィックカード、キーボード、およびその他のデバイスは、マザーボードBIOSの設定に従って事前にテストされます。テストが成功すると、システムは事前設定された起動シーケンスに従って制御が転送されます。ローカルハードディスクを提供します。
    概要:ハードディスクやオプティカルドライブなど、システムを起動できる最初のデバイスが検出されました
  2. MBRブート
    ローカルハードディスクからシステムをブートする場合、最初にハードディスクの最初のセクターのMBR(マスターブートレコード)設定に従って、システム制御権をオペレーティングシステムブートファイルを含むパーティションに転送します。または直接それに従います。 MBRレコードへブート情報はブートメニュー(GRUBなど)を呼び出します。
    概要:MBRセクターに配置されたブートGRUBブートプログラムを実行します
  3. GRUBメニュー
    Linuxオペレーティングシステムの場合、GRUB(Unified Boot Loader)は最も広く使用されているマルチシステムブートローダープログラムです。システム制御がGRUBに渡された後、ユーザーが選択できるブートメニューが表示され、選択したオプション(またはデフォルト値)に従ってLinuxカーネルファイルがロードされ、システム制御がに転送されます。カーネル。
    CentOS7はGRUB2ブートローダーを使用します。
    概要:GRUBブートプログラムはGRUB構成ファイル/boot/grub2/grub.cfgを読み取り、カーネルとミラーファイルシステムの設定とパスの場所を取得します
  4. カーネルのロード(カーネル)
    Linuxカーネルは、さまざまなハードウェアリソースとシステムプログラムの間で事前にコンパイルされた特別なバイナリファイルであり、リソースの割り当てとスケジューリングを担当します。カーネルがシステムの制御を引き継いだ後、Linuxオペレーティングシステム全体の実行プロセスを完全に制御します。
    CentOS 7システムでは、デフォルトのカーネルファイルは「/boot/vmlinuz-3.10.0-514.e17.x86_64」にあります。
    概要:カーネルとミラーファイルシステムをメモリにロードします
  5. initプロセスの初期化
    さらなるシステムブートプロセスを完了するために、Linuxカーネルは最初にシステム内の「/ sbin / init」プログラムを実行するメモリにロードし(実行中のプログラムはプロセスと呼ばれます)、initプロセスが責任を負います。システム全体の初期化を完了し、最後にユーザーがログインするのを待ちます。
    概要:ハードウェアドライバーをロードすると、カーネルはinitプロセスをメモリにロードして実行します

2.システム初期化プロセス

  • initプロセス
    は、Linuxカーネル/ sbin / initプログラムによってロードおよび実行され
    ます。initプロセスは、システムの最初のプロセスであり、すべてのプロセスの親プロセスです
    。initプロセスのPID(プロセスタグ)番号は常に1です。
  • Systemd
  1. Systemdは、Linuxオペレーティングシステムの一種のinitソフトウェアです。
  2. CentOS7は、新しいSystemd起動方法を使用して、従来のSysVinitを置き換えます
  3. CentOS7で実行される最初のinitプロセスは/ liblsystemd / systemdです
  4. 従来のsysVinitは、シェルスクリプトのシリアル実行に依存してサービスを開始するため、効率が低下し、システムの起動が遅くなります。
  5. systemdは、より多くのサービスプロセスを並行して開始でき、オンデマンドでサービスを開始する機能を備えているため、開始されるプロセスが少なくなり、システムの起動速度が向上します。
  • Systemdユニットタイプ
ユニット型 拡張子名 説明
サービス 。サービス システムサービスについて説明する
ソケット 。ソケット 説明-プロセス間通信用のソケット
端末 。端末 カーネルによって認識されるデバイスファイルを記述します
マウント 。マウント ファイルシステムのマウントポイントを説明する
自動マウント .automount ファイルシステムの自動マウントポイントについて説明する
スワップ 。スワップ メモリスワップデバイスまたはスワップファイルについて説明する
。道 ファイルシステム内のファイルまたはディレクトリを記述します
タイマー 。タイマー タイマーについて説明します(cronのようなスケジューリングタスクを実装するために使用されます)
スナップショット .snapshot systemdの状態を保存するために使用されます
範囲 。範囲 systemdのバスインターフェースを使用して、プログラムで外部プロセスを作成します
スライス 。スライス Cgroupの階層別に編成されたマネジメントシステムプロセスのグループを説明する
目標 。目標 systemdユニットのセットを説明する
  • 実行レベルに対応するsystemdターゲット
ランレベル Systemdのターゲット 説明
0 目標 シャットダウン状態。このレベルを使用すると、ホストがシャットダウンされます。
1 レスキュー。ターゲット シングルユーザーモードでは、パスワードの確認なしでシステムにログインできます。主にシステムのメンテナンスに使用されます
2 multi-user.target ユーザー定義/ドメイン固有の実行レベル。デフォルトは3に相当します
3 multi-user.target 文字インターフェースを備えた完全なマルチユーザーモード、ほとんどのサーバーホストはこのレベルで実行されます
4 multi-user.target ユーザー定義/ドメイン固有の実行レベル。デフォルトは3に相当します
5 Graphical.target グラフィカルインターフェイスのマルチユーザーモードは、グラフィカルデスクトップオペレーティング環境を提供します
6 restart.target 再起動します。このレベルを使用すると、ホストが再起動します

2.起動時の障害を排除します

1.MBRセクターの障害を修復します


  • 障害の原因ウイルス、トロイの木馬などによる損傷。
    誤ったパーティション操作、ディスクの読み取りおよび書き込みエラー
  • トラブル現象
    起動プログラムが見つから
    ない、中断を開始するオペレーティングシステムをロードできない、起動後に黒い画面
  • 解決策:
    事前にバックアップファイル
    作成
    し、インストールCDから起動て緊急モードに入り、バックアップファイルから復元します

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

MBRは、最初のハードディスク(/ dev / sda)の最初の物理セクターにあり、合計512バイトです。

  1. 仮想マシンは10Gハードディスクを作成します
    ここに画像の説明を挿入
  2. 新しいハードディスクパーティションを作成し、
    fdisk-lをフォーマットします-ハードディスクが作成されているかどうかを確認しますfdisk
    / dev / sdb-ハードディスクを作成します
    mkfs.xfs / dev / sdb1-format
    ここに画像の説明を挿入
    ここに画像の説明を挿入
  3. MBRセクターデータを他のディスクに
    バックアップします(dev / sdb1)mkdir backup-baukupディレクトリを作成します
    mount / dev / sdb1 / backup-mount
    dd if = / dev / sda of = / backup / mbr.bak bs = 512 count = 1 -バックアップ
    ここに画像の説明を挿入
  4. MBRブートセクターの破壊をシミュレートするddif
    = / dev / zero of = / dev / sda bs = 512 count = 1——破壊をシミュレートする
    ここに画像の説明を挿入
  5. ブートインターフェイスが緊急モードになり、MBRセクターデータがバックアップファイルから復元されます。
    最初にCDイメージをロードし、オペレーティングシステムを再起動し
    、インストールウィザードインターフェイスが表示されたら、[トラブルシューティング]オプション
    を選択してから、[レスキュー]を選択します。緊急モードに入る「centosLinuxシステム」オプション
    「1」を選択し、「続行」を選択し、Enterキーを押して続行します。
    もう一度Enterキーを押すと、「sh-4.24プロンプト」を使用してBashシェル環境に入ります
    。mkdir/ backupdir
    mount / dev / sdb1 / backupdir#バックアップファイルを使用してパーティションをマウントします
    dd if = / backupdir / mbr.bak of = / dev / sda#Restore backup data
    exitメインはexitコマンドを実行して一時シェル環境を終了し、システムは自動的に再起動します
    ここに画像の説明を挿入
    ここに画像の説明を挿入
    ここに画像の説明を挿入

3.例:GRUBブート障害の修復

/ boot / grub /ディレクトリ内のパッケージは、ブートメニュー
/boot/grub2/grub.cfg#GRUB構成ファイルの背景画像とスタイルに使用されます。

  • 方法1:手動でブートコマンドを入力します(不器用で面倒、非推奨)
    grub> insmod xfs#指定したモジュールをカーネルにロードします
    grub> linux16 /vmlinuz-3.10.0-693.e17.x86_64 root = UOIDm8fd74986-aeb6-4ffd -b7d8 -a19f2eca7b6f ro rhgb quiet LANG = zh_CN.UTF-8
    ここに画像の説明を挿入
    カーネルの名前と場所およびその他の情報
    grub> initrd16 /initramfs-3.10.0-693.el7.x86_64.img#Mirrorシステムファイル
    grub> boot#ブートブート
    ここに画像の説明を挿入
    ここに画像の説明を挿入
  • 方法2:緊急モードに入り、GRUBブートプログラムを復元します
  1. 仮想マシンで10Gハードディスクを作成する
    ここに画像の説明を挿入
  2. 新しいハードディスクパーティションを作成し、
    fdisk-lをフォーマットします-ハードディスクが作成されているかどうかを確認しますfdisk
    / dev / sdb-ハードディスクを作成します
    mkfs.xfs / dev / sdb1-format
    ここに画像の説明を挿入
    ここに画像の説明を挿入
  3. 新しいディレクトリを作成し、マウントしてバックアップします
    mkdir / bak-ディレクトリ
    マウントを作成します/ dev / sdb1 / bak-mount
    dd if = / dev / sda of = / bak / grub.bak bs = 446 count = 1-backup
    ここに画像の説明を挿入
  4. パーティションテーブルを破棄せずに、MRBでGRUBブートプログラムの破棄をシミュレートします。ddを再起動します
    if = / dev / zero of = / dev / sda bs = 446 count = 1——破棄をシミュレートします
    ここに画像の説明を挿入
  5. ブートインターフェイスが緊急モードに入り、GRUBブートプログラムがバックアップファイルから復元されます
    。sh-4.2#mkdir / backupdir
    sh-4.2#mount / dev / sdb1 / backupdir#バックアップファイル
    sh-4.2#ddでパーティションをマウントします。if = / backupdir /grub.bak of = / dev / sda#バックアップデータの復元
    sh-4.2#exitメインがexitコマンドを実行して一時シェル環境を終了すると、システムが自動的に再起動します。
    ここに画像の説明を挿入
    ここに画像の説明を挿入
    ここに画像の説明を挿入
  • 方法3:インターフェイスを緊急モードで起動し、GRUBメニュー構成ファイルを再構築します
  1. ファイルを削除して再起動します
    rm
    - rf /boot/grub2/grub.cfg-delete init6-再起動
    ここに画像の説明を挿入
  2. ブートインターフェイスが緊急モードになります(入力方法は上記で説明されています)
    chroot / mnt / sysimage-CDイメージをロードし、システムルート環境に
    切り替えますgrub2-install / dev / sda-​​GRUBブートプログラムを最初のハードディスクに再インストールします( / dev / sda)MRBセクター
    grub2-mkconfig -o / boot / grub2 / grub.cfg-GRUBメニュー構成ファイルを再構築します
    exit-
    exitreboot_restart
    ここに画像の説明を挿入

4.rootユーザーのパスワードを忘れる

  • 失敗の原因
    rootユーザーのパスワードを忘れた
  • トラブル現象
    root権限が必要な管理操作ができない
    他に利用可能なアカウントがない場合、システムにログインできません
  • 解決策:
    緊急モードに入り、パスワードをリセットします
  • 例:rootユーザーのパスワードを忘れた場合、
    ブートインターフェイスは緊急モードに入ります(入力方法は上記で説明されています)
    sh-4.2#chroot / mnt / sysimage-システムイメージをロードし、システムルート環境に切り替えます
    bash-4.2# passwd root-reset rootユーザーパスワード
    bash-4.2#exit——exit
    bash-4.2#reboot——保存
    ここに画像の説明を挿入

3、システムサービス制御

  • システムサービス制御
    systemctl制御タイプサービス名
- - - -
init 0 systemctl分離poweroff.target systemct1の電源オフ 今すぐシャットダウン-h
init 1 syatemctlisolaterescue.target
init 3 systemctl分離multi-user.target
init 5 systemctl分離graphical.target
init 6 systemctl分離reboot.target systemct1の再起動 今すぐシャットダウン-r
  • コントロールタイプ
    開始:開始
    停止:停止
    再起動:再起動
    リロード:リロード
    ステータス:サービスステータスの表示

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

  • View
    runlevel runlevelコマンド(スイッチの実行レベルと
    Danggangの実行レベルのみを表示)systemctlツール(デフォルトの実行レベルを表示できます)
  • 実行レベルの
    initコマンドを一時的に切り替えます
    systemctltool
    永続的な実行レベルを設定します
    ln-sf /1ib/systemd/system/multi-user.target/etc/systemd/system/default.target。
    またはsystemctlset-default multi-user.target
    systemctl get -default

2.起動プロセスを最適化します

  • ntsysvツール
    は、
    キャラクター端末で実行できるインタラクティブで視覚的なウィンドウを
    提供します。これは、複数のサービスの集中管理に便利です。
    サービスの起動時にサービスを自動的に開始するかどうかを制御するために使用されます。
  • systemctlツール
    は、インタラクティブで視覚的なウィンドウを提供しません。
    単一のサービスを管理する方が効率的です。

3.システムサービスの開始と制御

  • ntsysvのシステムサービス管理ツール
    のntsysv
    ntsysvの--levelリスト
  1. スペースバーを押して、サービスオプションをマークします
  2. ↑、↓を押してサービスオプションを切り替えます
  3. Tabキーを押してカーソルを切り替えます
  • システムサービスの起動ステータスを表示する
    systemctlis-enabledサービス名
  • システムサービスの起動ステータスを設定します
    systemctlenableサービス名-自動起動をオンにします
    systemctldisableサービス名-自動起動をオフにします
  • ホスト名を恒久的に変更する
    hostnamectlset-hostname newname
  • ホスト名のステータスを表示する
    hostnamectlstatus
  • システム言語を中国語に
    設定しますlocalectlset-locale LANG = zh_CN .utf8
  • 現在のシステムで使用されている言語
    localectlを表示する[ステータス]
  • システムの起動時間
    -消費するayatemd-analyze

おすすめ

転載: blog.csdn.net/s15212790607/article/details/113483125