Linuxシステムの起動プロセスとトラブルシューティング
1.Linuxオペレーティングシステムの起動プロセス
1.1。
ブートサーバーホスト後のPOSTは、CPU、メモリ、ビデオカード、キーボード、およびその他の機器の予備テストのマザーボードBIOS設定に基づきます。テストは、ほとんどの場合、事前設定された起動シーケンスに従ってシステムの制御を正常に引き渡しました。マシンのハードディスクに引き渡されます。
概要:ハードディスクやCD-ROM
2など、システムを起動できる最初のデバイスを検出します。MBRブート
ローカルハードディスクからシステムを起動するときは、最初に、ハードディスクの最初のセクターのMBR(マスターブートレコード)設定に従って、または直接に従って、オペレーティングシステムのブートファイルを含むパーティションにシステム制御権を転送します。 MBRレコードブート情報は、ブートメニュー(GRUBなど)を呼び出します。
概要:MBRセクター
3に配置されたブートGRUBブートプログラムを実行します。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.el7.x86_64」にあります。
概要:カーネルとミラーファイルシステムをメモリ
5にロードします。initプロセスの初期化
さらなるシステムブートプロセスを完了するために、Linuxカーネルは最初にシステム内の「/ sbin / init」プログラムを実行するメモリにロードし(実行中のプログラムはプロセスと呼ばれます)、initプロセスは初期化を完了する責任がありますシステム全体の、そして最後にユーザーがログインを続行するのを待ちます。
概要:ハードウェアドライバーをロードすると、カーネルはinitプロセスをメモリにロードして実行します
次に、システムの初期化プロセス
1.initプロセス
- Linuxカーネルで/ sbin / initプログラムをロードして実行します
- initプロセスは、システムの最初のプロセスであり、すべてのプロセスの親プロセスです。
- initプロセスのPID(プロセスタグ)番号は常に1です。
2.Systemd
- Systemdは、Linuxオペレーティングシステムの一種のinitソフトウェアです。
- CentOS7は、新しいSystemd起動方法を使用して、従来のSysVinitを置き換えます
- CentOS7で実行される最初のinitプロセスは/ liblsystemd / systemdです
従来のsysVinitは、シェルスクリプトのシリアル実行に依存してサービスを開始するため、効率が低下し、システムの起動速度が遅くなります。Systemdは、より多くのサービスプロセスを並行して開始でき、オンデマンドでサービスを開始できるため、開始できるプロセスが少なくなります。したがって、システムの起動速度が向上します。
3.Systemdユニットタイプ
4.実行レベルに対応するSystemdターゲット
ランレベル | Systemdのターゲット | 説明 |
---|---|---|
0 | 目標 | シャットダウン状態、このレベルを使用するとホストがシャットダウンされます |
1 | レスキュー。ターゲット | シングルユーザーモードでは、パスワードの確認なしでシステムにログインできます。主にシステムのメンテナンスに使用されます |
2 = 3 | multi-user.target | 3に相当 |
3 | multi-user.target | キャラクターインターフェースの完全なマルチユーザーモード、ほとんどのサーバーホストはこのレベルで実行されます〜 |
4 = 3 | multi-user.target | 3に相当 |
5 | Graphical.target | グラフィカルインターフェイスのマルチユーザーモードは、グラフィカルデスクトップを提供します |
6 | restart.target | 再起動し、ホストを再起動します |
3.起動時の障害を排除します
(1)MBRセクターの障害を修復する
1.失敗の原因
- ウイルス、トロイの木馬などによる被害。
- 誤ったパーティション操作、ディスクの読み取りと書き込みの誤操作
2.故障現象
- ブートプログラムが見つからないため、起動が中断されます
- オペレーティングシステムを読み込めません。起動後に黒い画面が表示されます
3.ソリューション
- バックアップファイルは事前に作成する必要があります
- インストールCDを使用して緊急モードで起動します
- バックアップファイルから復元
特定の操作1.MBR
セクターデータを他のディスクに
バックアップするcウィンドエリアを作成してフォーマットし、MBRバックアップディレクトリをマウントしてMBR512バイトのコンテンツを
バックアップします
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セクターデータを復元します
—>最初にCDイメージをロードし、オペレーティングシステムを再起動します
—>インストールウィザードインターフェイスが表示されたら、[トラブルシューティング]オプションを選択します
—>次に[ CentOS Linuxシステムをレスキューする」オプションを選択し、緊急モードに入ります
—>「1」を選択し、続行を選択してEnterキーを押して続行します
—>もう一度Enterキーを押すと、「sh-4.2#」プロンプトでBash Shell環境に入ります
— > mbr.bakコンテンツ、512バイトコンテンツをコピーします
mkdir /backupdir
mount /dev/sdb1 /backupdir 挂载带有备份文件的分区
dd if=/backupdir/mbr.bak of=/dev/sda 恢复备份数据
exit 执行exit命令退出临时shell环境,系统将会自动重启
ここに画像の説明を挿入してください)(https://img-blog.csdnimg.cn/2021020915393739.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dwXFF_center_
(2)GRUBブート障害の修復
1.失敗の原因
- MBRのGRUBブートプログラムが破損しています
- grub.confファイルがなく、ブート構成が正しくありません
2.故障現象
- システムのブートストール
- 「grub>」プロンプトを表示する
3.ソリューション
- 手動でブートコマンドを入力してみてください
- 緊急モードに入り、バックアップからgrub.confを書き換えまたは復元します
- grubプログラムをMBRセクターに再構築します
/boot/grub/ 目录下的包是用于启动菜单的背景图片及样式显示图形
/boot/grub2/grub.cfg GRUB配置文件 内核,镜像文件
方法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ブートセクターの修復と同様)1。MBR
は、最初のハードディスク(/ dev / sda)の最初の物理セクターにあり、合計512バイトです。最初の446バイトはマスターブートレコードであり、パーティションテーブルはMBRセクターのバイト447〜510に格納されます。
mkdir /bak
mount /dev/sdb1 /bak
dd if=/dev/sda of=/bak/grub.bak bs=446 count=1
2. MRBでGRUBブートプログラムの破棄をシミュレートしますが、パーティションテーブル
ddを破棄しませんif = / dev / zero of = / dev / sda bs = 446 count = 1
3.ブートインターフェイスが緊急モードに入り、バックアップファイルから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
方法3:インターフェイスを緊急モードで起動し、GRUBメニュー構成ファイルを再構築します
1.rm -rf /boot/grub2/grub.cfg
2.緊急モードに入り、CDイメージをロードして、システムルート環境に切り替えます。
sh-4.2# chroot /mnt/sysimage
3. GRUBブートプログラムを最初のハードディスク(/ dev / sda)のMRBセクターに再インストールします。
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
CD-ROMドライブの場所を復元する
(4)rootユーザーのパスワードを忘れる
1.緊急モードに入り、システムイメージをロードして、システムルート環境に切り替えます。
sh-4.2# chroot /mnt/sysimage
2.rootユーザーのパスワードをリセットします
bash-4.2# passwd root
3.ルートシステム環境を終了して再起動します