Linux系统恢复

编程知识 更新时间:2023-04-18 08:32:03

一、系统启动过程介绍


1、系统启动过程

通电
bios初始化
grub2磁盘引导阶段
grub2文件引导阶段
指定boot所在分区
启动内核,只读挂载/设备
启动init程序进入初始化阶段
启动systemd初始化进程
读取/etc/systemd/中的文件
启动程序
启动登录环境

2、启动阶段介绍

(1)grub文件引导阶段

由文件/boot/grub2/grub.cfg控制流程
指定/boot分区位置——>加载内核——>启动系统初始化进程——>grub2-mkconfig

(2)内核引导阶段

检测硬件设备——>设备驱动初始化——>将/只读挂载——> 载入初始化进程systemd——>内核文件丢失请重新安装内核

(3)systemd初始化

开启selinux和systemd-tools——>加载内核参数——>加载系统时钟,键盘,主机名称——>读写挂载/文件系统——>激活raid,lvm设备——>激活系统配额——>启动multi-user.target.wants中的所有服务脚本——>启用虚拟控制台——>启动图形

二、win7引导配置


 vim /boot/grub2/grub.cfg
 86 ### BEGIN /etc/grub.d/10_linux ###
 87 menuentry 'Miscrosoft Windows 7 Install from dream_ya' {
 88         set root='hd0,msdos1'
 89         chainloader +1
 90 }

三、挽救模式进入方法


1、在真机(打开虚拟机管理器):

 virt-manager

2、插入光驱

3、把光驱启动设置为第一个,然后启动

4、选择Troubleshooting(系统修复)

5、进入Rescue a Res Hat Enterprise Linux system(挽救模式)

6、挽救模式用完之后,关闭虚拟机,改变启动顺序,系统便启动成功

四、系统启动出错恢复


1、引导程序boot损坏

(1)我们可以破坏/dev/vda前446字节引导前446个字节引导来做实验
 dd if=/dev/zero of=/dev/vda bs=446 count=1
 reboot
(2)报错:

(3)关闭虚拟机,从光盘启动进入挽救模式
 chroot /mnt/sysimage
 grub2-install /dev/vda
 执行两次exit,从硬盘启动成功即可

2、引导文件/boot/grub2/grub.cfg丢失

(1)我们删除文件来做实验
 rm -f /boot/grub2/grub.cfg
(2)电脑是否关闭

1)电脑未关

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

2)电脑重启

<1> 报错:

<2> 下面为手动启动过程(/boot/grub2/grub.cfg里面的配置文件):

 set root='hd0,msdos1'		                 ###根据自己的boot分区
 linux16 /boot/vmlinuz-3.10.0-327.el7.x86_64 ro root=/dev/vda1
 initrd16 /boot/initramfs-3.10.0-327.el7.x64_64.img
 boot

<3> 启动成功后:

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

3、内核丢失

(1)我们把内核删除来做实验:
 rm -f /boot/vmlinuz-3.10.0-123.el7.x86_64
 reboot
(2)报错:

(3)关闭虚拟机,从光盘启动进入挽救模式
 chroot /mnt/sysimage
 mkdir /rhel7
 df                                                              ###查看光驱的名称
 mount /dev/sr0 /rhel7
 cd /rhel/Packages
 cp kernel-3.10.0-123.e17.x86_64.rpm /mnt
 cd /mnt
 rpm2cpio kernel-3.10.0-123.e17.x86_64.rpm | cpio -id            ###拆分,可直接用yum安装,但是慢
 cd boot/
 cp vmlinuz-3.10.0-123.el7.x86_64 /boot
 执行两次exit,从硬盘启动成功即可

4、初始化文件丢失

(1)删除文件来做实验
 rm -f /boot/initramfs-3.10.0-123.el7.x86_64.img
 reboot
(2)报错:

(3)关闭虚拟机,从光盘启动进入挽救模式
 chroot /mnt/sysimage
 mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
 执行两次exit,从硬盘启动成功即可

5、boot分区丢失

(1)删除/boot
 rm -rf /boot
 reboot
(2)报错:

(3)关闭虚拟机,从光盘启动进入挽救模式
 mkdir /boot
 mkdir /rhel7
 grub2-install /dev/vda                                 ###生成/dev/vda前446字节引导
 mount /dev/sr0 /rhel7
 rpm -ivh /rhel7/Packages/kernel-3.10.0-123.e17.x86_64.rpm --force
 grub2-mkconifg > /boot/grub2/grub.cfg
 执行两次exit,从硬盘启动成功即可

6、闪退

关闭虚拟机,从光盘启动进入挽救模式
 cp /bin/bash /mnt/sysimage/bin/bash
 exit退出即可

7、开机启动级别被篡改

(1)我们以不断重启为例,把启动模式改为重启
 systemctl set-default reboot.target
 reboot
(2)报错:

(3)解决方法
  1. 重新启动系统
  2. 在系统启动阶段按上下健停止系统系统引导
  3. 选择启动引导标题,按“E”进行编辑
  4. 找到linux16引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项
  5. ctrl+x启动设定过后的系统引导条目
  6. 进入系统后执行chroot /sysroot切换到真实的系统环境
  7. rm -rf /etc/systemd/system/default.target
  8. ln -s /lib/systemd/system/graphical.target /etc/systemd/system/default.target
  9. exit两次使系统自动重新启动

8、root密码忘记

(1)重新启动系统
(2)在系统启动阶段按上下健停止系统系统引导
(3)选择启动引导标题,按“E”进行编辑
(4)找到linux16引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项
(5)ctrl+x启动设定过后的系统引导条目
(6)进入系统后执行chroot /sysroot切换到真实的系统环境
(7)passwd root修改超级用户密码
(8)touch /.autorelabel让系统从新扫描所有文件,不然可能修改失败,密码有问题
(9)exit两次使系统自动重新启动

更多推荐

Linux系统恢复

本文发布于:2023-04-14 10:45:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/9c944b793ce4748cb71121c60d9e8206.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:系统   Linux

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 75746文章数
  • 14阅读数
  • 0评论数