zoukankan      html  css  js  c++  java
  • Linux系统引导过程和故障排错

    一.引导过程

    1.开机自检:BIOS(基本输入输出系统)

    控制CUP虚拟化开关,系统的引导顺序,主机硬件时间。

    BIOS需要BIOS电池来维持供电,保证数据的存放。

    BIOS 电池放电会恢复出厂设置。

    特点:

    (1.)加电自检   失败:通过屏幕或蜂鸣报警

    (2.)硬件初始化

    (3.)引导操作系统(BOOT)

    2.MBR引导

    主机开机后,首先根据硬盘第一个扇区中的MBR(主引导程序)将系统控制权传递给含操作系统引导文件的分区,读取主引导记录表的512字节,得以调用启动菜单(GRUB)

    3.GRUB菜单

    系统控制权传递给GRUB后,将会显示启动菜单给用户选择,进而加载Linux内核

    4.加载Linux内核

    介于各种硬件资源和系统进程之间,负责资源分配 和调度内核接到控制权后掌控整个Linux运行过程

    5.init进程初始化

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

    系统中的第一个进程,控制Linux运行级别

    6.Linux运行级别(censot7以上版本会以systemd替换掉init)

    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       重新启动,使用该级别会重启主机

    7.系统服务控制

    格式:systemctl 控制类型 服务名称 [.service]

    控制类型:start   启动类型

    stop    停止类型

    restart   重启类型

    reload   重新加载配置

    8.查看系统运行级别(target

    runlevel命令:

    前级别(N表示无,S表示单用户)   当前级别

    9.查看系统默认运行级别(图形界面)

    格式:systemctl  get-default

    ln -sf   -s:创建软连接  -f:强制覆盖

    10.开机优化工具

    格式:ntsysv --level 级别   按空格键进行修改

    systemctl   1.enable:启用

         2.disable:禁用

    systemctl list-units --type=service :查看开机自启所有启动项

    chkconfig --list 某个启动项   :查看该启动项

    二、故障排错

    1.MBR扇区故障(黑屏)

    原因:1.分区不规范 2.病毒攻击

    解决:备份分区表数据,存放在别的磁盘中。进急救模式进行数据还原

    步骤:

    1.在另外的磁盘中创建大小约1G的分区,格式化并将/devsdb1/挂载到文件/back下  

     [root@localhost ~]# mount /dev/sdb5 /back/

    2.将主引导记录表的512字节拷贝到新分区的目录下的文件   /back/sda.mbr.bak

    dd if=/dev/sda of=/back/sda.mbr.bak bs=512 count=1

    3.模拟破坏主引导记录表

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

    4.重启进入急救模式

    reboot

    5.创建文件夹,将/dev/sdb5挂载到该目录下

    6.将/back/sda.mbr.bak/中的主引导记录前512字节还原到/dev/sda中

    dd if=/back/ of=/dev/sda

    7.重启 :reboot

    2.RGUB引导故障(停留在grub>界面

     grub.cfg文件损坏:

    1.进行备份,将文件拷贝到/tmp下

    cp /boot/grub2>grub.cfg   /tmp

    2.模拟文件丢失,并重启

    rm  /boot/grub2/grub.cfg

    reboot(会显示故障界面)

     3.关机重启进入BIOS设置,设置boot选项为光驱第一启动盘

    4.进入急救模式,切换到硬盘目录下

    chroot /mnt/sysimage

    5.将事先备份好的grub文件还原到原目录下

    6.进入BIOS设置将硬盘改为第一启动盘后重启即可

    MBR引导程序损坏导致的GRUB引导故障:

     1.在根目录下创建文件/beifen,将/dev/sdb1挂载到该目录下

    [root@localhost ~]# mkdir /beifen

    [root@localhost ~]# mount /dev/sdb1 /beifen

    2.将/dev/sda中的前446字节备份到文件夹/beifen中

    3.模拟MBR引导程序损坏

    4.重启 

    reboot

    5.进入急救模式,切换到硬盘目录下

    6.将/beifen中的引导数据还原到/dev/sda中

    7.退出重启

    exit    reboot

    若没有grub备份,则需要重建grub引导程序

    1.在没有备份的前提下清空grub前446字节数据

    2.重启,调整光驱启动顺序后进入急救模式切换到硬盘目录

    3.重建grub引导程序

    grub2-install /dev/sda

     

    4.sync确认后退出重启

    sync

    exit

    reboot

    3.修改root用户密码

    (1.)进入急救模式,切换到硬盘模式

    chroot /mnt/sysimage

    输入  root  passwd   更改root密码

    (2.)在急救模式中使用文本编辑器

    vim /etc/shadow   将第一行的root密码删除即可

    4./boot 误删除修复

    1.进入急救模式切换到硬盘目录下

    chroot /mnt/sysimage

    2.在/media下创建子目录cdrom

    mkdir /media/cdrom

    3.将硬盘下的cdrom挂载到子目录下

    mount /dev/cdrom /media/cdrom

    4.强制安装boot内核

    rpm -ivh /media/cdrom/Pachages/kernel-3.10…………--force(强制条件)

    5.查看/boot后会恢复大部分内容

    ls /boot

    6.创建grub2文件

    grub2-install /dev/sda

    7.创建grub.cfg文件

    grub2-mkconfig

    5.修复文件系统

    xfs_repair /dev/...     针对xfs系统

    fsck -y -t ext4 /dev/...    针对ext4系统

    6.磁盘资源耗尽故障

    原因:固定的inode数量被用户创建的文件占用完,剩余容量空间不可用

    (1.)查看文件是否重要,若重要需拷贝后进行格式化,调整inode数量后再进行文件恢复

    (2.)若文件不重要则直接清理进行格式化,再调整inode数量(一般情况)

    7.磁盘坏道损坏修复

    使用badblocks -sv /dev/...  命令进行坏道扫描

  • 相关阅读:
    verilog中timescale
    [shell] if语句用法
    makefile编写
    linux下压缩解压缩命令
    python获取文件所在目录
    gvim 技巧
    vcs编译verilog/sysverilog并执行
    verilog中signed的使用
    [leetcode]_String to Integer (atoi)
    [leetcode]_Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/990114-jhc/p/11315288.html
Copyright © 2011-2022 走看看