Linuxのブートプロセスとサービス管理 - 手!(VII)

コンテンツの構造

  • ブートプロセス

  • 障害の排除を開始

  • サービスコントロールと動作レベルを切り替えます

  • 起動プロセスの最適化



(A)ブートプロセス

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

スクリーンショットマイクロチャネル_20190823153629.png

  • POST予め設定された起動順序に従ってハンドオーバ制御システムの成功した検出後のマザーボードのBIOSの設定に応じて、キーボード装置としてブートサーバホスト、CPUの初期検出(Central Processing Unit:中央処理装置、中央演算処理装置)、メモリ、グラフィックスカード、後右、ほとんどの時間は、ローカルのハードディスクに引き渡されます。 

  • MBRのブートローカルハードドライブシステムからのブートは、まず、ハードディスクのMBR(マスターブートレコード、マスターブートレコード)の最初のセクタに応じて提供されている場合、システムはオペレーティングシステムパーティションに制御を渡すには、ブートファイルが含まれています。または直接案内情報ブートメニューの呼び出し(例えばGRUB)MBRレコード。 

  • GRUBメニューのLinuxオペレーティングシステムの場合、GRUB(大統一ブートローダー、統一されたブートローダー)が最も広く使用されているマルチシステムのブートプログラムです。GRUBへの転送システム制御の後、ブートメニューは、選択したユーザーに表示され、Linuxカーネルファイル、カーネルへのシステム制御をロードするためのオプション(またはデフォルト値)に応じました。CentOSの7はGRUB2ブートローダーを使用して、あることに注意してください。 

  • 負荷のLinuxカーネルのLinuxカーネルは、さまざまなハードウェアリソースとリソースの割り当てとスケジューリングを担当するシステムプログラム、間の特別なコンパイル済みのバイナリファイルです。カーネルがシステムの制御を取った後、私たちは、Linuxオペレーティングシステムを実行しているプロセス全体を完全に制御する必要があります。CentOSのシステムでは、デフォルトのカーネルファイルは、「/boot/vmlinuz-3.10.0-514.el7.x86_64」に位置しています。 

  • init 进程初始化 为了完成进一步的系统引导过程,Linux 内核首先将系统中的“/sbin/init”程序加载到内存中运行(运行中的程序称为进程),init 进程负责完成一系列的系统初始化过程, 最后等待用户进行登录。

2,系统初始化进程及文件

init进程

  • 由Linux内核加载运行/sbin/init程序

  • 是系统中第一个进程

  • PID(进程标记)号永远为1

Systemd单元类型

スクリーンショットマイクロチャネル_20190823153629.png

运行级别所对应的systemd目标

スクリーンショットマイクロチャネル_20190823153629.png

(二)排除启动类故障(实验操作!)

1,修复MBR扇区故障

故障原因

  • 病毒等造成的破坏

  • 不正确的分区操作,磁盘读写误操作

故障现象

  • 找不到引导程序,启动中断

  • 无法加载操作系统,开机后黑屏

解决思路

  • 应提前作好备份文件

  • 以安装光盘引导进入急救模式

  • 从备份文件中恢复

1)备份mbr引导扇区到其他磁盘,先创建一个磁盘分区/dev/sdb1-格式化-挂载到/data(详细看前文章)

[root@localhost ~]# dd if=/dev/sda of=/data/sda.mbr.bak bs=512 count=1  备份
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000254623 秒,2.0 MB/秒
[root@localhost ~]# ls /data    查看备份是否成功
sda.mbr.bak

スクリーンショットマイクロチャネル_20190823162033.png

2)模拟破坏sda中第一个扇区mbr引导分区,重启

[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1  模拟破坏
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.00028556 秒,1.8 MB/秒
[root@localhost ~]# init 6  重启

スクリーンショットマイクロチャネル_20190823162230.png

スクリーンショットマイクロチャネル_20190823163536.png

3)连接centos7镜像光盘,重启系统后迅速按ESC进入启动菜单,选择cdrom-Troubleshooting-rescue centos system

スクリーンショットマイクロチャネル_20190823163536.png

スクリーンショットマイクロチャネル_20190823162033.png

スクリーンショットマイクロチャネル_20190823162230.png

4)按1进入shell,创建挂载点/bak-将/dev/sdb1挂载到/bak-将备份的mbr复制到/dev/sda中,重启完成修复

スクリーンショットマイクロチャネル_20190823163536.png

スクリーンショットマイクロチャネル_20190823171347.png

スクリーンショットマイクロチャネル_20190823173043.png

スクリーンショットマイクロチャネル_20190823173242.png

2,恢复GRUB引导故障

故障原因

  • MBR中的GRUB引导程序遭到破坏

  • grub.conf文件丢失,引导配置有误

故障现象

  • 系统引导停滞,显示“grub>”提示符

解决思路

  • 尝试手动输入引导命令

  • 进入急救模式,重写或者备份中恢复grub.conf

  • 向MBR扇区中重建grub程序

1)模拟破坏GRUB引导配置文件,删除grub配置文件

スクリーンショットマイクロチャネル_20190823162033.png

スクリーンショットマイクロチャネル_20190823162230.png

スクリーンショットマイクロチャネル_20190823163536.png

2)连接centos7镜像光盘,重启系统后迅速按ESC进入启动菜单,选择cdrom-Troubleshooting-rescue centos system-按1进入shell

スクリーンショットマイクロチャネル_20190823163536.png

スクリーンショットマイクロチャネル_20190823162033.png

スクリーンショットマイクロチャネル_20190823162230.png

スクリーンショットマイクロチャネル_20190823163536.png

スクリーンショットマイクロチャネル_20190823171347.png

3)切换bash环境-建立加载sda分区-构建grub菜单配置文件-退出bash环境-重启

スクリーンショットマイクロチャネル_20190823171347.pngスクリーンショットマイクロチャネル_20190823173242.png

3,遗忘root用户密码

故障原因

  • 遗忘root用户的密码

故障现象

  • 无法进行需要root权限管理操作

  • 若没有其他可用账号,将无法登录系统

解决思路

  • 进入急救模式,重设密码

1)重启你的Linux系统

スクリーンショットマイクロチャネル_20190823193646.png

2,进入急救模式,切换bash环境-修改密码-退出bash环境-重启即可

スクリーンショットマイクロチャネル_20190823194204.png

(三)服务控制及切换运行级别

系统服务类型

常用方式

  • systemctl 控制类型 服务名称

控制类型

  • start:启动

  • stop:停止

  • restart:重新启动(停止加启动,现实慎用)

  • reload:重新加载(刷新配置文件)

  • status:查看服务状态

スクリーンショットマイクロチャネル_20190823233018.png

Linux系统的运行级别

查看运行级别

  • runlevel命令

  • systemctl工具

スクリーンショットマイクロチャネル_20190823222017.png

临时切换运行级别

  • init命令

  • systemctl工具


命令含义 命令行界面 图形界面 关机 重启
init命令 init3 init5 init0 init6
systemctl命令 systemctl isolate multi-usr.target systemctl isolate graphical.target systemctl isolate poweroff.target systemctl isolate reboot.target
[root@localhost ~]# init 3 切换为命令行界面
[root@localhost ~]# runlevel 
5 3
或者
[root@localhost ~]# systemctl isolate multi-user.target  切换为命令行界面

更改默认的运行级别模式

[root@localhost ~]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target   利用软连接修改
[root@localhost ~]# systemctl get-default
graphical.target

スクリーンショットマイクロチャネル_20190823224605.png

(四)优化启动过程

系统服务管理工具

netstat -ntap查看正在进行的服务及端口

  • n:数字显示

  • t:tcp协议

  • a:所有

  • p:协议

微信截图_20190823230106.png

ntsysv工具

  • 提供一个交互式,可视化窗口

  • 可以在字符终端运行

  • 便于集中管理多个服务

[root@localhost ~]# ntsysv  交换可视化服务管理

微信截图_20190823230435.png

systemctl工具

  • 不提供交互式,可视化窗口

  • 管理单个服务效率更高

システムサービス開始の状況を見ます

systemctlは、対応のサービス名

微信截图_20190823231234.png

システム状態のサービスを開始設定

/無効にサービス名を有効systemctl

微信截图_20190823232200.png



読んでくれてありがとう!

おすすめ

転載: blog.51cto.com/14080162/2432161