• 引导过程与服务控制


    一、引导流程

    1、BIOS:BIOS是进本输入输出系统。服务器主机开机后,将根据主办BIOS只用的设置对CPU内存显卡,键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,检测失败会(1)通过显示器屏幕或(2)蜂鸣器报警,多时候会移交给本机硬盘。可存储硬件配置信息,独立电池供电。BIOS电池放电可以恢复出厂设置。

    BIOS的功能:(1)加电自检(2)硬件初始化(3)引导操作系统(BOOT)

    2、MBR引导:当从本机硬盘中启动程序时,首先根据硬盘第一个扇区MBR的设置,将系统控制权传递给包含操作系统引导文件的分区(/boot);或者直接根据MBR记录中的音带信息调用启动菜单。(GRUB)

    3、GRUB菜单:对于Linux操作系统来说。GRUB是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB后,将会显示启动菜单给用户选择,并根据所选项加载Linux内核文件,然后将系统控制权转交给内核。需要注意的是,CentOS7采用的是GRUB2启动引导器。

    4、加载Linux内核:Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌握整个Linux操作系统的运行过程。在CentOS系统中,默认的内核文件位于“/boot/VMLinuz-3.10.0.el7.x86_64”

    5、init进程初始化:它是系统中的第一个进程,所有进程的父进程,PID永远为1。为了完成系统进一步的系统引导过程,Linux内核首先将系统先中的/sbin/init程序加载到内存中运行(运行中的程序称为进程),init进程负责完成系列的系统初始化进程,最后等待用户进行登录。

    二、系统引导级别的查看及级别

    1、runlevels:查看运行级别

    0:poweroff.target:关机状态,使用该级别时会即将关闭主机

    1:rescue.target:单用户模式,必须要密码验证即可登录系统。多用于系统维护

    2:multi-user.target:用户定义域特定运行级别。默认等同于3,但不支持网络

    3:multi-user.target:字符界面的完整多用户模式,大多数服务器知己运行在此级别

    4:multi-user.target:用户定义域特定运行级别。默认等同于3

    5:graphical.target:图形界面的多用户模式,听哦那个了图形桌面操作环境

    6:reboot.target :重新启动,使用该级别的即将会重启主机

    2、切换级别:init 0/1/2/3/4/5/6

    查看系统的默认运行级别:systemctl get-default

    三、服务控制及优化启动

    1、系统服务控制

    sysytemctl+控制类型+服务名称

    常用控制类型:start     启动

                             stop      停止

                             restart   重启

                             reload   先退出再重新运行,只是刷新配置文件,再重新加载配置

                             status   查看状态及相关信息

    优化启动过程

    2、ntsysv:提供一个交互式可视化窗口,可以再字符终端运行,便于集体管理多个服务

    ntsysv --level 35(指定级别)

    3、查看当前系统中已启用的所有系统服务

    systemctl list-units --type=service

    4、chkconfig:不提供交互式可视化窗口,管理单个服务效率更高

    格式:chkconfig --list(全部服务)

               chkconfig --list+服务名称(某一个服务)

               chkconfig --level+级别列表+服务名 on|off (设置开机启用或禁用,不指定级别,默认2345)

    四、修复MBR扇区故障

    1、故障原因:病毒、木马等造成的破坏或者不正当分区操作、磁盘读写误操作

    2、故障现象:找不到引导程序,启动中断或者无法加载操作系统,开机后黑屏

    3、解决思路:应提前做好备份文件(因为MBR中保存了分区表信息等,必须把MBR备份到别的硬盘上,因为它无法读取当前的硬盘);以安装光盘引导进入急救模式;然后从备份文件中恢复。

    操作:

    硬盘分区:fdisk /dev/sdb

    格式化:mkfs.ext4 /dev/sdb1

    创建文件:mkdir /bakup

    挂载:mount /dev/sdb1 /bakup

    dd备份:dd if /dev/sda of=/bakup/sda.mbr.bak bs=512 count=1

    覆盖:dd if=/dev/zero of=/dev/sda bs=512 count=1

    重启:reboot

    进入急救模式

    创建文件:mkdir /lty

    把之前的bakup挂载到创建的文件下:mount /dev/sdb1 /lty

    dd复原:dd if=/lty/sda.mbr.bak of=/dev/sda

    重新开机进入后先选第三项,之后选择第四项进入虚拟机。

    五、修复GRUB引导故障

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

    (1)模拟文件丢失,有备份

    cp /boot/grub2/grub.cfg /tmp      //备份到tmp下

    rm -rf /boot/grub2/grub.cfg         //模拟文件丢失

    关机重启虚拟机进入固件模式,移到boot选项,把CD移动到第一行,按Fn+f10,保存退出

    重新开机点击第三个选项后再点击第二个选项

    输入命令:chroot /mnt/systimage                   //切换到硬盘目录下

                      cp /tmp/grub.cfg /boot/grub2      //把文件还原到boot下

                      exit(Ctrl+d)两次退出

    重新开机进入后先选第三项,之后选择第四项进入虚拟机。

     (2)文件丢失没有备份

    cp /boot/grub2/grub.conf /tmp      //备份到tmp下

    rm -rf /boot/grub2/grub.conf         //模拟文件丢失

    关机重启虚拟机进入固件模式,移到boot选项,把CD移动到第一行,按Fn+f10,保存退出

    重新开机点击第三个选项后再点击第二个选项

    输入命令:chroot /mnt/systimage                   //切换到硬盘目录下

                      grub2-mkconfig > /boot/grub2/grub.cfg

                      exit(Ctrl+d)两次退出

    重新开机进入后先选第三项,之后选择第四项进入虚拟机。

    2、MBR中GRUB引导程序遭到破坏

    dd if=/dev/zero of=/dev/sda bs=200 count=1        //模拟引导程序遭到破坏

    重新开机点击第三个选项后再点击第二个选项

    输入命令:chroot /mnt/systimage                   //切换到硬盘目录下

                      grub2-install /dev/sda

                      sync

                      sync

                      exit退出

    六、/boot文件误删除

    rm -rf /boot     //模拟/boot文件误删除

    重新开机点击第三个选项后再点击第二个选项

    输入命令:chroot /mnt/systimage                                                                       //切换到硬盘目录下

                      mkdir /media/cdrom                                                                           //在media下创建一个新的文件

                      mount /dev/cdrom /media/cdrom                                                       //将/dev下的cdrom挂载到/media下

                      rpm -ivh /media/cdrom/Packages/kernel-3.10.0-229.e17...--force    //加载内核,还原/boot里的大部分文件

                      grub2-install /dev/sda                                                                        //将grub2安装到/sda下

                      grub2-mkconfig > /boot/grub2/grub.cfg                                             //将grub2这个文件重定向到/boot/下

    七、root密码修复

    重启:reboot

    进入急救模式

    输入命令:chroot /mnt/systimage                   //切换到硬盘目录下

                      root passwd                                   //直接改密码

                       输入新的密码即可

    或者:vi /etc/shadown 把root:后面清空即可

    八、文件系统修复

    xfs_repair | fsck   //扫盘

    两个命令:xfs_repair /dev/sdb1

                      fsck -y -t ext4 /dev/sdb1

    九、空间耗尽故障(可能是文件数量过多)

    比如在/data下创建了{1..65525}个文件

    mkdir /lty                                           //创建一个新的文件

    mv /data/* /lty                                    //将/data下的文件先转移到新创建的文件下

    umount /data                                    //推出挂载

    mkfs.ext4 -N 600000 /dev/sdb1       //重新格式化并指定文件数量

    mount /dev/sdb1 /data                     //重新挂载

    mv /lty/* /data                                   //把之前的文件重新移回来

    十、磁盘坏道故障

    磁盘坏道分为:物理坏道和逻辑坏道

    物理坏道:只能换硬盘

    逻辑坏道:badblocks -sv /dev/sdb       //扫描看看有没有坏道

  • 相关阅读:
    js中属性节点的应用
    改变属性的值的方法
    获取所有节点的一些方法的属性(有待改善)
    JS中修改属性
    获取节点的几种小案例
    在页面上点击按钮,出现弹出框
    SelectionSort,选择排序
    BubbleSort冒泡排序
    混合app
    使用(Unicode字符)让inline水平元素换行
  • 原文地址:https://www.cnblogs.com/990624lty-jhc/p/11313072.html
Copyright © 2020-2023  润新知