zoukankan      html  css  js  c++  java
  • Linux 引导修复

    CentOS-Logo

    系统引导是一个操作系统运行的开始,若是引导出现问题,系统便无法正常使用,那有没有方法修复呢?答案是有的。


    CentOS7 引导过程

    1.开机自检BIOS
    2.MBR引导
    3.GRUB菜单
    4.加载内核kernel与内存文件系统initramfs
    5.加载硬件驱动及初始化进程


    MBR 扇区故障修复

    MBR引导记录位于物理硬盘的第一个扇区(512B),又称为主引导扇区,除了包含系统引导程序的部分数据外,还包含整个硬盘的分区表记录。

    备份 MBR 扇区数据

    1.准备另一块硬盘用于MBR扇区备份数据

    [root@localhost ~]# fdisk /dev/sdb
    
    [root@localhost ~]# mkfs.xfs /dev/sdb1
    meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1310656 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0, sparse=0
    data     =                       bsize=4096   blocks=5242624, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal log           bsize=4096   blocks=2560, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    

    2.挂载/dev/sdb1分区

    [root@localhost ~]# mkdir /bak
    [root@localhost ~]# mount /dev/sdb1 /bak/
    [root@localhost ~]# df -hT
    文件系统       类型      容量  已用  可用 已用% 挂载点
    /dev/sda2      xfs        20G  3.4G   17G   17% /
    devtmpfs       devtmpfs  1.9G     0  1.9G    0% /dev
    tmpfs          tmpfs     1.9G     0  1.9G    0% /dev/shm
    tmpfs          tmpfs     1.9G  9.1M  1.9G    1% /run
    tmpfs          tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
    /dev/sda5      xfs        10G   37M   10G    1% /home
    /dev/sda1      xfs       2.0G  174M  1.9G    9% /boot
    tmpfs          tmpfs     378M  8.0K  378M    1% /run/user/42
    tmpfs          tmpfs     378M     0  378M    0% /run/user/0
    /dev/sdb1      xfs        20G   33M   20G    1% /bak
    

    3.备份MBR扇区数据

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

    模拟 MBR 扇区故障

    1.人为覆盖MBR扇区记录

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

    2.重启

    [root@localhost ~]# init 6
    

    3.无法启动

    无法启动

    恢复 MBR 扇区数据

    1.使用光盘或U盘启动盘进行操作系统引导

    启动菜单

    2.进入Troubleshooting疑难解答模式

    疑难解答

    3.进入Rescue a CentOS system系统急救模式

    急救模式

    4.进入shell环境,进行恢复

    shell

    mkdir /bak
    mount /dev/sdb1 /bak
    ls /bak
    dd if=/bak/sda.mbr.bak of=/dev/sda
    reboot
    

    5.恢复成功

    恢复成功


    GRUB 引导故障修复

    GRUB是大多数Linux系统默认的引导程序,可以通过启动菜单的方式选择进入不同的操作系统。若是配置文件丢失,或者关键配置出现错误,就无法完成启动过程。

    模拟 GRUB 故障

    1.删除配置文件

    [root@localhost ~]# cp -p /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
    [root@localhost ~]# rm -f /boot/grub2/grub.cfg
    [root@localhost ~]# init 6
    

    2.无法启动

    无法启动

    修复 GRUB 故障

    前面部分和上面一样,同样进入系统急救模式进行修复。

    shell

    1.加载系统镜像,切换到待修复的Linux系统根环境

    chroot /mnt/sysimage/
    

    2.在sdaMBR扇区重新安装grub引导程序

    grub2-install /dev/sda
    

    3.重新构建grub菜单配置文件

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

    4.退出并重启,等待系统启动

    exit
    reboot
    

    遗忘 ROOT 密码

    当忘记root密码时,将无法在Linux系统上执行管理、维护等任务。又无法通过其他用户修改密码时,同样可以使用急救模式修改root密码。

    shell

    很简单,操作如下:

    chroot /mnt/sysimage/
    echo "000000" | passwd --stdin root 或 passwd root
    exit
    reboot
    
  • 相关阅读:
    如何在iTerm2中配置oh my zsh?
    sublime中格式化jsx文件
    ES6 new syntax of Literal
    ES6 new syntax of Rest and Spread Operators
    How to preview html file in our browser at sublime text?
    ES6 new syntax of Default Function Parameters
    ES6 new syntax of Arrow Function
    七牛云2018春招笔试题
    Spring-使用注解开发(十二)
    Spring-声明式事物(十一)
  • 原文地址:https://www.cnblogs.com/llife/p/11419071.html
Copyright © 2011-2022 走看看