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
    
  • 相关阅读:
    jquery flot详解
    AngularJS例子 ng-repeat遍历输出
    JS正则表达式
    jQuery Validate验证框架详解
    解决IE6下png图片不透明
    IT经理,你在这个位置吗
    如何做一个好的前端重构工程师
    noi1816 画家问题(技巧搜索Dfs)
    codevs1380 没有丧尸的舞会
    2016年春季大学先修课考试
  • 原文地址:https://www.cnblogs.com/llife/p/11419071.html
Copyright © 2011-2022 走看看