記事のディレクトリ
1.CentOSブートプロセス管理
システムの起動は、オペレーティングシステムの操作の始まりです。ユーザーがシステムに正常にログインする前に、Linuxの起動プロセスは一連の初期化タスクを完了し、ユーザーがログに記録する準備をするために必要なプログラムとコマンド端末をロードします。に。
1.1起動プロセス
1.1.1ブートプロセスの概要
Linuxオペレーティングシステムのブートプロセスには、通常、電源投入時のセルフチェック、MBRブート、GRUBメニュー、Linuxカーネルのロード、および初期化プロセスの初期化の段階が含まれます。
1)
サーバーの電源がオンになった後、CPU、メモリ、グラフィックカード、キーボード、およびその他のデバイスは、マザーボードBIOS(基本入力/出力システム)の設定に従って最初にテストされます。テストが成功すると、システムは次のようになります。事前設定された起動シーケンスに従ってシステム制御に転送されます。そうです、ほとんどの場合、ローカルハードディスクに転送されます。
概要:ハードディスクやCD-ROMドライブなど、システムを起動できる最初のデバイスが検出されます
。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カーネルは、さまざまなハードウェアリソースとシステムプログラムの間で事前にコンパイルされた特別なバイナリファイルであり、リソースの割り当てとスケジューリングを担当します。カーネルがシステムの制御を引き継いだ後、Linuxオペレーティングシステム全体の実行プロセスを完全に制御します。
CentOSの7のシステムでは、デフォルトのカーネルファイルは、「/boot/vmlinuz-3.10.0-514.e17.x86_64」に位置しています。
概要:メモリにカーネルとミラーファイルシステムをロードします
。5.初期化中のinitプロセス
にオーダーさらにシステムブートプロセスを完了すると、Linuxカーネルは最初にシステム内の「/ sbin / init」プログラムをメモリにロードして実行します(実行中のプログラムはプロセスと呼ばれます)。initプロセスはシステム全体の初期化を完了します。 、そして最後にユーザーがログインするのを待ちます。
概要:ハードウェアドライバーをロードすると、カーネルはinitプロセスをメモリにロードして実行します
1.1.2システム初期化プロセスのinitとSystemd
プロセス
の初期化Linuxシステムのプロセス(実行中のプログラム)には番号が付けられ、各プロセスのIDにはPIDが付けられています。Linuxシステムを起動するプロセスでは、「/ sbin / init」がカーネルによってロードされる最初のプログラムであるため、initプロセスはシステムの最初のプロセスであり、対応するPID番号は常に1です
。initプロセスが最初です。システム内のプロセス。これはすべてのプロセスの親プロセスであり、ユーザーに一緒にサービスを提供します。
Systemd
Systemdは、Linuxオペレーティングシステムの一種のinitソフトウェアです。
CentOS7は、新しいSystemd起動方法を使用して、従来のSysVinitを置き換えます
CentOS7で実行される最初のinitプロセスは/ lib / systemd / systemdです
従来のSysVinitは、シェルスクリプトのシリアル実行に依存してサービスを開始するため、効率が低下し、システムの起動が遅くなります。
systemdは、より多くのサービスプロセスを並行して開始でき、オンデマンドでサービスを開始する機能を備えているため、開始されるプロセスが少なくなり、システムの起動速度が向上します。
initプロセスは、システム内の最初のプロセスであり、全てのプロセスの親プロセスである
X
システムDユニットタイプ
ユニット型 | 拡張子名 | 説明 |
---|---|---|
サービス | 。サービス | システムサービスについて説明する |
ソケット | 。ソケット | プロセス間通信用のソケットについて説明する |
端末 | 。端末 | カーネルによって認識されるデバイスファイルを記述します |
マウント | 。マウント | ファイルシステムのマウントポイントを説明する |
自動マウント | .automount | ファイルシステムの自動マウントポイントについて説明する |
スワップ | 。スワップ | メモリスワップデバイスまたはファイルについて説明する |
道 | 。道 | ファイルシステム内のファイルまたはディレクトリを記述します |
タイマー | 。タイマー | タイマーについて説明する |
目標 | 。目標 | 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 | 再起動します。このレベルを使用すると、ホストが再起動します |
1.2起動時の障害のトラブルシューティング
1.MBRセクターの障害分析
- 1)故障の原因
ウイルス、トロイの木馬などによる損傷。
誤ったパーティション操作、ディスクの読み取りおよび書き込みエラー
- 2)故障現象
起動プログラム
が見つからず、起動が中断されます。オペレーティングシステムを読み込めず、起動後に画面が真っ暗になります。
- 3)ソリューション
事前にバックアップファイル
を作成
し、インストールCDから起動し、緊急モードに入り、バックアップファイルから復元します。
2.MBRセクターの障害をシミュレートする
MBRは、ハードディスクの最初の物理セクター(/ dev / sda)にあり、合計512バイトです。
これは実験であるため、事前に障害をシミュレートする必要があります。
新しいハードディスクを追加して、バックアップディスクとして使用します。
フォーマット
1. MBRセクターデータを他のディスク(/ dev / sdb1)にバックアップします
mkdir /backup
mount /dev/sdb1 /backup
dd if=/dev/sda of=/backup/mbr.bak bs=512 count=1
2.MBRセクターの障害をシミュレートする
dd if=/dev/zero of=/dev/sda bs=512 count=1
次に、仮想マシンを再起動してみると、現時点ではシステムに直接入ることができなくなっていることがわかります。
3.ブートインターフェイスが緊急モードに入り、バックアップファイルからMBRセクターデータを復元します
先加载好光盘镜像,重启操作系统,
当出现安装向导界面时,选择“Troubleshooting”选项,
再选择“Rescue a CentOS Linux system”选项,进入急救模式
选择“1”选择 Continue并按 Enter 键继续
再次按 Enter 键后将进入带“sh-4.2#”提示符的 Bash Shell 环境
sh-4.2# mkdir /backupdir
sh-4.2# mount /dev/sdb1 /backupdir #挂载带有备份文件的分区
sh-4.2# dd if=/backupdir/mbr.bak of=/dev/sda #恢复备份数据
sh-4.2# exit #执行exit命令退出临时Shell 环境,系统将会自动重启
backupdirパスがmbr.bakファイルにすでに存在することを確認できます。終了後
、通常どおりログインできます。
4.GRUBブートの失敗を修復します
■故障の原因
-
MBRのGRUBブートプログラムが破損しています
-
grub.confファイルが見つからない、ブート構成エラー
■症状 -
システムの起動が停止し、プロンプト「grub>」が表示されます。
■解決策 -
手動でブートコマンドを入力してみてください
-
緊急モードに入り、バックアップからgrub.confを書き換えまたは復元します
-
grubプログラムをMBRセクターの障害回復に再構築する
/boot/grub/目录下的包是用于启动菜单的背景图片及样式
/boot/grub2/grub.cfg GRUB配置文件
方法1:コピーして貼り付けることができないため、この方法はお勧めしません。すべてのコマンドは1文字ずつ手動で入力されるため、面倒でエラーが発生しやすくなります。
grub> insmod xfs 加载指定的模块到内核
grub> linux16 /vmlinuz-3.10.0-693.el7.x86_64 root=UUID=8fd74986-ae66-4ffd-b7d8-a19f2eca7b6f ro rhgb quiet LANG=zh_CN.UTF-8 内核的名字及位置等信息
grub> initrd16 /initramfs-3.10.0-693.el7.x86_64.img 镜像系统文件
grub> boot 引导boot
方法2:緊急モードに入り、GRUBブートプログラムを復元します
- MBRは最初のハードディスク(/ dev / sda)の最初の物理セクターにあり、合計512バイト、最初の446バイトはマスターブートレコードであり、パーティションテーブルはMBRの477〜510バイトに格納されます。セクターMediumなので、最初の446バイトがここにバックアップされ、前のパーティションテーブルが保持されます。
mkdir /bak
mount /dev/sdb1 /bak
dd if=/dev/sda of=/bak/grub.bak bs=446 count=1
- MBR内のGRUBブートプログラムの破棄をシミュレートしますが、パーティションテーブルは破棄しません
dd if=/dev/zero of=/dev/sda bs=446 count=1
- ブートインターフェイスが緊急モードになり、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
操作コマンドは、MBRを修復するための上記と同じです。512バイトを446バイトに変更するだけで、方法3は示されなくなり
ます。ブートインターフェイスが緊急モードになり、GRUBメニュー構成ファイルが再構築されます。
- この方法は通常、/ boot / grub2 / grub.cfgファイルが誤って削除または失われたり、ブート構成が正しくない場合に対処します。
1)失敗実験をシミュレートするには、最初に/boot/grub2/grub.cfgファイルを削除します
rm -rf /boot/grub2/grub.cfg
48.png)
grubが表示されます>正常に起動できません
2)緊急モードに入り、CDイメージをロードし、システムルート環境に
切り替え、緊急モードに入り、インターフェイスをロードするときにESCキーを押して、緊急モードに入ります。
プログレスバーが速すぎて読み取れない場合や、遅すぎてescボタンをクリックできない場合は、次の方法を使用できます。
最初にシャットダウンし
、電源を入れてファームウェアを入力します
。矢印キーをBoot±キーに移動します。 CD-ROMドライブを最初の行に移動
します。F10を押して保存し
、緊急モードに入ります。
sh-4.2# chroot /mnt/sysimage
3)GRUBブートプログラムを最初のハードディスク(/ dev / sda)のMBRセクターに再インストールします。
bash-4.2# grub2-install /dev/sda
4)GRUBメニューの構成ファイルを再構築します
bash-4.2# grub2-mkconfig -o /boot/grub2/grub.cfg
5)chroot環境を終了し、再起動します
bash-4.2# exit
sh-4.2# reboot
正常に起動できます
5.rootユーザーのパスワードを忘れる
1)障害の原因:
rootユーザーのパスワードを忘れた
。2)障害の現象
。root権限を必要とする管理操作を実行できない。
他に利用可能なアカウントがない場合、システムは実行されない。ログインできます
。3)解決策:
緊急モードに入り、パスワードをリセットします
。4)rootユーザーのパスワードを忘れて
緊急モードに入り、システムイメージをロードし、システムルート環境に切り替えます。
sh-4.2# chroot /mnt/sysimage //进入急救模式,加载系统镜像,切换到系统根环境
bash-4.1# passwd root //重设 root 用户密码
**按照步骤重设即可**
緊急モードに入る手順は↑と同じであり、デモンストレーションは行われません。
2.システムサービスの制御と起動プロセスの最適化
1.コマンドフォーマット
systemctl 控制类型 服务名称
2.一般的な制御タイプ:
- 開始:開始
- 停止:停止
- 再起動:再起動
- リロード:リロード
- ステータス:サービスステータスの表示
3.ランレベル
- 実行レベルの表示
- runlevelコマンド(切り替え前の実行レベルと現在の実行レベルを表示します。Nは前に切り替えがないことを意味します)
- systemctlツール
- systemctl get-default(システムのデフォルトの実行レベルを表示します)
- 一時的/永続的なスイッチの実行レベル
一時的なスイッチ
- initコマンド
- systemctlツールの
永続的なスイッチ
2つのコマンド:
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
或
systemctl set-default multi-user.target
systemctl get-default 查看系统默认的运行级别
4.起動プロセスを最適化します
ntsysvツール
- インタラクティブで視覚的なウィンドウを提供する
- キャラクター端末で実行可能
- 複数のサービスを一元管理するのに便利
- 起動後にサービスが自動的に開始するかどうかを制御するために使用されます
■systemctツール - インタラクティブなビジュアルウィンドウは提供されていません
- 単一のサービスをより効率的に管理する
5.システムサービスの開始と制御
■ntsysvシステムサービス管理ツール
ntsysv
ntsysv --level 级别列表
- スペースバーを押して、サービスオプションをマークします
- ↑、↓を押してサービスオプションを切り替えます
- Tabキーを押してカーソルを切り替えます
6.システムサービスの開始と制御
(1)システムサービスの起動状態を表示します
systemctl is-enabled service name
2、
servicenameシステムの起動状態を設定しますsystemctlenable service name // enable boot auto-start
systemctl disable service name // disable boot auto-開始
7.ホスト名を恒久的に変更し、ホスト名のステータスを表示します
hostnamectl set-hostname newname 永久修改主机名
hostnamectl status 查看主机名的状态
8.システム言語を中国語に設定します
localetcl set-locale LANG=zh_CN.utf8 设置系统语言为中文
localectl [status] 查看当前系统使用的语言
9.システムの起動時間を表示します
systemd-analyze