当前位置: 移动技术网 > 科技>操作系统>Linux > Linux 引导修复

Linux 引导修复

2019年08月27日  | 移动技术网科技  | 我要评论

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网