linux系统故障排错(含linux系统启动步骤)

文章目录

  • 1.linux系统启动步骤
    • (1)POST加电自检
    • (2)BIOS启动引导阶段
    • (3)GRUB启动引导阶段
    • (4)kerenl内核阶段
    • (5)init初始化阶段
  • 2.linux系统故障排错
    • (1) BIOS硬盘引导阶段
    • (2)grub文件引导阶段
      • 1)引导文件丢失
      • 2)内核文件丢失
      • 3)初始化镜像文件丢失
      • 4)/boot分区丢失
    • (3)开机启动级别被篡改

1.linux系统启动步骤

(1)POST加电自检

Linux系统在接通电源之后,会自动启动POST加电自检程序来对内部的各个配件进行自检;自检出现错误系统无法启动,重则停机

(2)BIOS启动引导阶段

  • BOIS 基本输入输出系统

加电自检后,系统会静入BIOS阶段,在该阶段系统会启动Boot Sequence来查找引导设备,当找到有引导程序的设备时,系统会读取该引导设备的磁道一扇区mbr主引导程序,mbr会告诉系统下一步该干什么,进行下一阶段的启动

(3)GRUB启动引导阶段

  • GRUB 多重操作系统启动管理器

在该阶段系统会读取/etc/grub/grub.conf 系统配置文件,该文件为系统提供了菜单及加载的kernel位置,当kerenl被成功加载到内存重时,系统将进入下一阶段

(4)kerenl内核阶段

  • kerenl为系统的核心程序

进入内核阶段,系统会先探测可识别的所有硬件设备;随后系统会加载硬件驱动程序

(5)init初始化阶段

初始化阶段,系统开始完成启动前的初始化操作,根据文件执行脚本

2.linux系统故障排错

(1) BIOS硬盘引导阶段

  • 查看根所在的硬盘
    fdisk -l * 所在的硬盘即为根所在的硬盘
    linux系统故障排错(含linux系统启动步骤)_第1张图片
  • 模拟问题
    dd if=/dev/zero of=/dev/vda bs=446 count=1 mbr 主引导程序丢失
  • 解决方法:
    1)为系统添加光盘,使用光盘启动系统,进入rescue援救模式
    2)chroot /mnt/sysimage 切换到主机真实环境
    grub2-install /dev/vda 启动分区所在的硬盘
    exit 退出主机环境
    exit 退出援救模式
    3)重新设置用硬盘启动系统,系统恢复正常
  • 实验现象
    问题出现后,reboot系统,将停留在下面这个画面:
    linux系统故障排错(含linux系统启动步骤)_第2张图片
    为系统添加镜像:
    linux系统故障排错(含linux系统启动步骤)_第3张图片
    linux系统故障排错(含linux系统启动步骤)_第4张图片
    linux系统故障排错(含linux系统启动步骤)_第5张图片
    linux系统故障排错(含linux系统启动步骤)_第6张图片
    重置选项,让系统用镜像安装:
    linux系统故障排错(含linux系统启动步骤)_第7张图片

linux系统故障排错(含linux系统启动步骤)_第8张图片
援救系统:
linux系统故障排错(含linux系统启动步骤)_第9张图片
linux系统故障排错(含linux系统启动步骤)_第10张图片
linux系统故障排错(含linux系统启动步骤)_第11张图片
linux系统故障排错(含linux系统启动步骤)_第12张图片
linux系统故障排错(含linux系统启动步骤)_第13张图片
linux系统故障排错(含linux系统启动步骤)_第14张图片
linux系统故障排错(含linux系统启动步骤)_第15张图片
linux系统故障排错(含linux系统启动步骤)_第16张图片

linux系统故障排错(含linux系统启动步骤)_第17张图片

(2)grub文件引导阶段

1)引导文件丢失

  • 模拟问题rm -fr /boot/grub2/grub.cfg
  • 解决方法
    umane -r 查看内核版本号
    linux系统故障排错(含linux系统启动步骤)_第18张图片
    未重启系统时

grub2-mkconfig > /boot/grub2/grub.cfg 重新建立引导文件
   重启系统时

 grub > set  root='hd0,msdos1'   给系统引导  
    grub > linux16  /root/vmlinuz-[内核版本号]  ro root=/dev/vda1
    grub > initrd16  /boot/initramfs-[内核版本号].img
    grub > boot
  
grub2-mkconfig > /boot/grub2/grub.cfg    重新建立引导文件
  • 实验现象
    删除引导文件后,重启系统,系统不知道下一步该干嘛,会停留在如下界面:
    linux系统故障排错(含linux系统启动步骤)_第19张图片
    给系统引导:
    linux系统故障排错(含linux系统启动步骤)_第20张图片
    linux系统故障排错(含linux系统启动步骤)_第21张图片
    引导系统成功后,系统中依然缺少引导文件,建立引导文件,让系统下次开机自动引导:
    linux系统故障排错(含linux系统启动步骤)_第22张图片

2)内核文件丢失

  • 模拟问题rm -fr /boot/vmlinuz-3.10.0-123.el7.x86_64

  • 解决方法
    未重启系统时:(系统中需要有镜像)
    步骤与重启系统时类似,到镜像中找到我们丢失的内核引导文件,重新复制一份到/boot分区
    重启系统时
    1)选择镜像启动系统
    2)进入rescue模式:
    chroot /mnt/sysimage 切根
    mkdir /rhel7 建立一个新目录
    mount /dev/sr0 /rhel7 将镜像虚拟设备挂载到新建目录下
    cd /rhel7/Packages 镜像中有几千条安装包,为了方便起见,进入到镜像中将需要的内核安装包单令存放出来

    cp kernel-3.10.0-123.el7.x86_64.rpm /mnt
    cd /mnt
    rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id

    类似于将此内核安装包安装
    cd boot 我们丢失的内核引导文件包在该包的boot目录下
    cp vmlinuz-3.10.0-123.el7.x86_64 /boot 将我们丢失的内核引导文件重移回/boot分区
    3)

    exit 切根
    exit 退出援救模式
    4) 用硬盘启动系统

  • 实验现象
    linux系统故障排错(含linux系统启动步骤)_第23张图片
    linux系统故障排错(含linux系统启动步骤)_第24张图片
    linux系统故障排错(含linux系统启动步骤)_第25张图片
    选择以硬盘启动系统:
    linux系统故障排错(含linux系统启动步骤)_第26张图片

3)初始化镜像文件丢失

  • 模拟问题rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img

  • 解决方法
    未重启系统时mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) 重新建立镜像文件
    注: $ (umane -r) 表示引用uame -r 这条命令的输出结果
    重启系统时
    1)选择镜像启动系统
    2)进入援救模式
    chroot /mnt/sysimage 切根

    mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

exit 切根
exit 退出援救模式
3)选择硬盘启动系统 重新启动

  • 实验现象
    linux系统故障排错(含linux系统启动步骤)_第27张图片

重启系统出现如下停留
linux系统故障排错(含linux系统启动步骤)_第28张图片
linux系统故障排错(含linux系统启动步骤)_第29张图片
设置以硬盘启动系统:
linux系统故障排错(含linux系统启动步骤)_第30张图片

4)/boot分区丢失

  • 模拟问题rm -fr /boot

  • 解决方法
    1)设置以镜像启动系统
    2)进入resue模式

    chroot /mnt/sysimage
    mkdir /boot
    grub2-install /dev/vda 重新安装mbr程序
    mount /dev/sr0 /mnt
    rpm -ivh /mnt/kernel-3.10.0-123.el7.x86_64.rpm --force 强制重新安装内核的安装包
    grub2-mkconfig > /boot/grub2/grub.cfg
    exit 切根
    exit 退出援救模式

    3)设置系统以硬盘模式启动,恢复系统

  • 实验现象
    linux系统故障排错(含linux系统启动步骤)_第31张图片
    重启系统后:
    linux系统故障排错(含linux系统启动步骤)_第32张图片 援救系统:linux系统故障排错(含linux系统启动步骤)_第33张图片
    linux系统故障排错(含linux系统启动步骤)_第34张图片

(3)开机启动级别被篡改

  • 模拟问题
    systemctl set-defaults reboot.target 将系统启动级别设置为不断重启状态
  • 解决方法
    1)reboot系统 让系统在读秒界面停止读秒
    按【e】停止读秒进入如下界面:
    linux系统故障排错(含linux系统启动步骤)_第35张图片
    2)找到linux16这一行 将linux16 …ro…更改为 linux16…rw rd.break…
    linux系统故障排错(含linux系统启动步骤)_第36张图片
    3)按【ctrl+x】进入虚拟用户界面
    chroot /sysroot 切根
    ll /etc/systemd/system/default.target 可以看到默认启动模式为一个软链接
    rm -fr /etc/systemd/system/default.target 删除之前的默认系统启动模式
    ln -s /lib/systemd/system/graphical.target/etc/systemd/system/default.target 为系统重新创建一个图形化的默认启动模式的软链接
    reboot 重新启动系统,系统恢复正常开机图形模式
    linux系统故障排错(含linux系统启动步骤)_第37张图片
    linux系统故障排错(含linux系统启动步骤)_第38张图片
    linux系统故障排错(含linux系统启动步骤)_第39张图片

你可能感兴趣的:(Linux,linux,系统启动阶段,linux系统排错,引导文件排错,内核文件丢失的恢复,初始化镜像文件丢失的恢复,系统启动级别被篡改)