linux引导过程与服务控制
1、操作系统引导过程
1.1 引导概念
系统引导是指操作系统运行的开始,在用户能够正常登录到系统之前,Linux 操作系统的引导过程将完成一系列的初始化任务,并加载必要的程序和命令终端,为用户登录做好准备。
1.2 开机自检
服务器主机开机以后,将根据主板 BIOS 中的设置对 CPU(Central Processing Unit,中央处理器)、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘。
1.3 MBR 引导
当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(Master Boot Record,主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR 记录中的引导信息调用启动菜单(如GRUB)
1.4 GRUB 菜单
对于 Linux 操作系统来说,GRUB(GRand Unified Bootloader,统一启动加载器)是使用最为广泛的多系统引导器程序。
1.5 加载 Linux 内核
Linux 内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。
1.6 init 进程初始化
为了完成进一步的系统引导过程,Linux 内核首先将系统中的“/sbin/init”程序加载到内存中运行(运行中的程序称为进程)。
2、系统备份
2.1 系统备份概念
2.2 备份类型
- 数据备份
- 磁盘备份
2.3 备份方式
- 完整备份:备份所有选定的数据,包括系统和用户数据。
- 增量备份:只备份自上次备份以来发生变化的数据。
- 差异备份:备份自上次完整备份以来发生变化的数据。
2.4 备份方法
- 使用 tar 命令进行文件级备份,dd命令进行磁盘级备份
- 使用 工具进行磁盘镜像备份如 Clonezilla,Timeshift等
2.4.1 安装 Clonezilla以及操作步骤
-
下载并创建 Clonezilla 启动 USB/DVD访问 Clonezilla 官方网站 下载 Clonezilla ISO 文件。使用 Rufus 或 Etcher 创建 Clonezilla 启动USB/DVD。
-
启动到 Clonezilla,插入 Clonezilla 启动介质并重启计算机。在启动时进入 BIOS 设置并将启动顺序调整为首先从USB/DVD 启动。保存设置并退出 BIOS。计算机将从 Clonezilla 启动并显示 Clonezilla 主界面。
-
选择语言和地区选择语言和地区,然后点击 "OK"。
-
选择模式选择 "Start_Clonezilla" 并点击 "Enter"。
-
选择磁盘到磁盘克隆选择 "device-device" 模式进行磁盘到磁盘克隆,或者选择 "disk-to-image" 模式进行磁盘到映像文件的克隆。
-
选择源磁盘和目标磁盘如果选择 "device-device" 模式,选择源磁盘和目标磁盘.如果选择 "disk-to-image" 模式,选择源磁盘和目标位置(通常是外部存储设备上的某个分区)。
-
开始克隆,按照提示完成克隆过程。
-
完成备份,克隆完成后,关闭 Clonezilla 并移除启动介质。重启系统以恢复正常操作。
3、服务控制
3.1 服务控制的概念
systemd 是一种用于 Linux 操作系统的系统和服务管理器,被设计为 init 系统的替代品。它负责在系统启动时启动系统组件,以及在系统运行期间管理系统进程。
3.2 单元
systemd 以单元为基本管理对象,每个单元代表系统中的一个资源或服务。定义单元的行为和配置,通常位于/lib/systemd/system/ 或 /etc/systemd/system/ 目录下。
文件类型:
- .mount(定义挂载点,配置what,where,type三个数据项)
- .service(定义了一个服务,分为[Unit],[Service],[Install]三个小节)
- .target(定义了一些基础的组件,供.service文件调用)
- .wants(定义了要执行的文件集合)
3.3 服务
- 系统服务
- 应用服务
3.4 systemctl命令
格式:
-
systemctl 控制类型 服务名称
类型:
-
start(启动):运行指定的系统服务程序,实现服务功能。
-
stop(停止):终止指定的系统服务程序,关闭相应的功能。
-
restart(重启):先退出,再重新运行指定的系统服务程序。
-
reload(重载):不退出服务程序,只是刷新配置。在某些服务中与restart 的操作相同。
-
status(查看状态):查看指定的系统服务的运行状态及相关信息。
-
enable(开机自启动)
-
disable(取消开机自启动)
-
is-enable(是否开机自启动)
看系统所有已启动的服务和单元
- systemctl list-units
查看所有可用的单元
- systemctl list-unit-files
查看启动失败的服务
- systemctl --failed
4、运行级别
4.1 运行级别概念
运行级别(Runlevel)是Linux系统中用于定义系统启动和运行状态的一种机制。系统根据不同的运行级别启动不同的服务和程序,以满足不同的使用需求。
4.2 运行级别的定义和用途(以及Target概念)
- 运行级别0:所有进程被终止,机器将有序地停止,通常用于关机。
- 运行级别1:单用户模式,仅启动必要的系统服务,用于系统维护和修复。
- 运行级别2:多用户模式,但不启动图形界面。
- 运行级别3:完全多用户模式,启动图形界面,但不启动图形化管理器。
- 运行级别4:系统未使用,保留级别。
- 运行级别5:启动图形界面,用户可以登录并进行操作。
- 运行级别6:系统正常关闭并重启
target表
4.3 查看运行级别
- runlevel命令
- systemctl工具
4.4 修改运行级别
-
init 0 //关闭当前系统,init 6 //重启当前系统(init 加级别号)
-
运行级别 0、6 又分别对应着 systemd 的“poweroff.target”和“reboot.target”目标,因此执行“systemctl poweroff”与“systemctl reboot”命令也可以实现相应的关机、重启操作,systemctl poweroff //关闭当前系统 systemctl reboot //重启当前系统
- 永久切换运行级别(ln命令)——ln -sf /lib/systemd/system/级别名.target
/etc/systemd/system/default.target