Linux操作系统中的引导过程与服务控制(利用急救工具排除常见引导故障)

    技术2022-08-11  95

    点击蓝色目录快速阅读相应内容

    前言引导过程引导过程总览Init进程 排除启动类故障修复MBR 扇区故障修复MBR 扇区故障 实验步骤: 修复GRUB引导故障修复GRUB引导故障 实验步骤 遗忘root用户密码遗忘root用户密码实验步骤 服务控制及切换运行级别系统服务控制Linux系统的运行级别优化启动过程

    前言

    操作系统运行的开始,在用户能够正常登录到系统之前,Linux的引导过程完成了一系列的初始化任务,并加载必要的程序和命令终端,为用户登录做好准备。

    引导过程

    引导过程总览

    开机自检:1、加电,运行硬件自检 2、加载驱动

    MBR引导:引导程序,加载硬盘(如是双系统,系统一定要放在不同的硬盘中)

    GRUB菜单:加载系统(引导系统的必要菜单)、安全模式,急救模式

    加载内核(kernel):(系统的心脏)确定好系统后加载系统的内核

    Init进程初始化:全部还原默认设置后系统会进行加载,然后进程启动(2种): 自动:系统必要的进程 启动延迟启动:开机自启动的程序(第三方外在组件)

    Init进程

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

    是系统中第一个进程

    PID进程号永远为1

    init运行级别所对应的Systemd目标

    运行级别Systemd的target说明0target关机状态,使用该级别时将会关闭主机1rescue.target单用户模式,不需要密码验证即可登陆系统,多用于系统维护2multi-user.target用户定义/域特定运行级别。默认等同于3(不支持访问网络)3multi-user.target字符界面的完整多用户模式,大多数服务器主机运行在此级别4multi-user.target用户定义/域特定运行级别。默认等同于35graphical.target图形界面的多用户模式,提供了图形桌面操作环境6reboot.target重新启动,使用该级别时将会重启主机

    排除启动类故障

    修复MBR 扇区故障

    故障原因:

    病毒、木马等造成的破坏 不正确的分区操作、磁盘读写误操作 故障现象:

    找不到引导程序,启动终端 无法加载操作系统,开机后黑屏 解决思路:

    应提前做好备份文件(cp -p 保留权限备份*) 以安装光盘引导进入急救模式 从备份文件中恢复

    修复MBR 扇区故障 实验步骤:

    一、备份mbr扇区数据到其他磁盘

    加一块硬盘留做备份sdb

    分区——格式化——挂载

    [root@localhost ~]# fdisk /dev/sdb //创建新磁盘 ……省略内容 Calling ioctl() to re-read partition table. 正在同步磁盘。 [root@localhost ~]# mkfs.xfs /dev/sdb1 //格式化 ……省略内容 realtime =none extsz=4096 blocks=0, rtextents=0 [root@localhost ~]# mkdir /abc //创建目录 [root@localhost ~]# mount /dev/sdb1 /abc //将/dev/sdb1挂载到/abc [root@localhost ~]# df -hT //查看挂载 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/sda2 xfs 20G 4.3G 16G 22% / ……省略部分内容 /dev/sdb1 xfs 20G 33M 20G 1% /abc

    备份:

    [root@localhost ~]# dd if=/dev/sda of=/abc/sda.mbr.bak bs=512 count=1 记录了1+0 的读入 记录了1+0 的写出 512字节(512 B)已复制,0.000145897 秒,3.5 MB/秒

    二、模拟破坏mbr引导扇区:

    [root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1 记录了1+0 的读入 记录了1+0 的写出 512字节(512 B)已复制,0.000106943 秒,4.8 MB/秒

    三、重启后,加载系统镜像文件中的急救模式: 四、恢复备份数据

    mkdir /aaa mount /dev/sdb1 /aaa dd if=/aaa/sda.mbr.bak of=/dev/sda bs=512 count=1

    修复GRUB引导故障

    故障原因:

    MBR中的GRUB引导程序遭到破坏 grub.conf文件丢失、引导配置有误 故障现象:

    系统引导停滞,显示“grub>”提示符 解决思路:

    尝试手动输入引导命令 进入急救模式,重写或者从备份中恢复grub.conf 向MBR扇区中重建grub程序

    修复GRUB引导故障 实验步骤

    一、使用系统急救模式进入命令字符界面

    二、加载镜像中的系统进入bash环境

    chroot /mnt/sysimage //加载系统镜像

    三、重新构建grub菜单系统

    grub2-install /dev/sda //重新建立加载sda分区 grub2-mkconfig -o /boot/grub2/grub.cfg //重新构建grub菜单配置文件 exit //退出bash环境 reboot //重启或init 6 重启

    遗忘root用户密码

    故障原因:

    以往root用户的密码 故障现象:

    无法进行需要root权限的管理操作 若没有其他可用账号,将无法登陆系统 解决思路:

    进入急救模式,重设密码

    遗忘root用户密码实验步骤

    一、加载镜像系统

    chroot /mnt/sysimage

    二、直接输入需要更改的用户改密码passwd root

    ​ 输入密码更改

    服务控制及切换运行级别

    系统服务控制

    常用方式 systemctl 控制类型 服务名称

    控制类型 start:启动 stop:停止*(现实中尽量不要操作)* restart:重新启动(先停止,在启动,现实中尽量不要操作) reload:直接重新加载配置文件(建议使用) status:查看服务状态 …………

    Linux系统的运行级别

    运行级别说明0使用该级别将关机1单用户模式,无需密码验证登录系统,不支持访问网络,用于系统维护2字符界面的多用户模式,不支持访问网络3字符界面多用户模式,大多数服务器运行级别4未分配使用5图形界面的多用户模式6使用该级别将重新启动

    查看运行级别

    runlevel命令 systemctl工具 临时切换运行级别

    init命令 systemctl工具 设置永久运行级别

    优化启动过程

    系统服务管理工具 ntsysv工具 提供一个交互式、可视化窗口(伪图形化界面) 可以在字符终端运行 便于几种管理多个服务 systemctl工具 不提供交互式、可视化窗口 管理单个服务效率更高 设置系统服务的启动状态

    systemctl enabled/disable 服务名称

    查看系统服务的启动状态

    systemctl is-enabled 服务名称

    检测是否是开机自启动,如果是enable 就是自启动,disable就是关闭自启动

    本次我们所操作的都是通过急救模式加载镜像修复,进入单用户模式,这种方式不需要密码即可进入系统且拥有root权限,只应在紧急状况下授权使用。

    Processed: 0.013, SQL: 9