系统恢复
系统因为引导问题无法正常启动的一些修复方法
环境:redhat7虚拟机
修复方法:
1、通过光盘
通过光盘修复:在虚拟系统管理器中点击“小灯泡”,选择" Boot Options",然后选择光盘启动至第一个。如果没有需要自己添加,选择添加硬件->Stirage->磁盘设备->CDROM设备->选择镜像文件(没有下载一个和自己系统匹配的)。
2、通过网卡
##### 一、grub引导(两个阶段)
1. 磁盘引导阶段,mbr(主引导记录)主引导记录在硬盘的0磁道,1扇区,占446字节
2. 文件引导阶段,找到boot分区,读取/boot/grub2/grub.cfg
#### 1.grub磁盘引导阶段
丢失mbr前446个字节
通过光盘修复:在虚拟系统管理器中点击“小灯泡”,选择" Boot Options",然后选择光盘启动至第一个。如果没有需要自己添加,选择添加硬件->Stirage->磁盘设备->CDROM设备->选择镜像文件(没有下载一个和自己系统匹配的)目录。
chroot /mnt/sysimage
grub2-install /dev/vda
#### 2.grub文件引导阶段
丢失/boot/grub2/grub.cfg引导文件,从硬盘启动
1.指定/boot分区位置,ls 可查看
set root='hd0,msdos1'
2.加载内核
linux16 /boot/vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1
3.启动系统初始化进程
initrd16 /boot/initramfs-3.10.0-123.el7.x86_64.img
4.启动系统
boot
5.进入系统恢复文件:
grub2-mkconfig >/boot/grub2/grub.cfg
#### 二、内核引导
丢失 /boot/vmlinuz-3.10.0-123.el7.x86_64文件:
重启报错:
error: file '/boot/vmlinuz-3.10.0-123.el7.x86_64' not found
error: you need to load the kernel first
使用光盘进入挽救模式:
sh-4.2# chroot /mnt/sysimage/
bash-4.2# mount /dev/cdrom /opt
bash-4.2# cp /opt/Packges/kernel-3.10.0-123.el7.x86_64.rpm /mnt
bash-4.2# rpm2cpio /mnt/kernel-3.10.0-123.el7.x86_64.rpm | cpio -id
bash-4.2# cp /mnt/boot/vmlinuz-3.10.0-123.el7.x86_64 /boot/
bash-4.2# exit
sh-4.2# exit
然后强制关机,从硬盘启动,恢复正常
#### 三、系统初始化
1.开启 selinux 和systemd-tools
2.加载内核参数
3.加载系统时钟,键盘,主机名称
4.读写挂载 / 文件系统
5.激活 raid , lvm 设备
6.激活系统配额
7.启动 multi-user.target.wants 中的所有服务脚本
8.启用虚拟控台
9.启动图形
丢失initramfs-3.10.0-123.el7.x86_64.img
重启报错:
error: file '/boot/initramfs-3.10.0-123.el7.x86_64.img' not found
使用光盘进入挽救模式:
sh-4.2# chroot /mnt/sysimage/
bash-4.2# mkinittrd initramfs-$(uname -r).img $(uname -r)
cat: write error: Broken pipe
bash-4.2# exit
sh-4.2# exit
然后强制关机,从硬盘启动,恢复正常
#### 删除目录/boot/
重启后出现报错:
erro: file'/boot/grub2/i386-pc/normal.mod' not found
Entering rescue mode...
使用光盘进入挽救模式:
sh-4.2# chroot /mnt/sysimage
bash-4.2# mount /dev/cdrom /opt
bash-4.2# cp /opt/Packges/kernel-3.10.0-123.el7.x86_64.rpm /mnt
bash-4.2# rpm2cpio /mnt/kernel-3.10.0-123.el7.x86_64.rpm | cpio -id
bash-4.2# rpm -ivh /mnt/boot/vmlinuz-3.10.0-123.el7.x86_64
然后缺上述哪个文件就按其操作进行
#### 启动级别被更改
原因:
rm -fr /etc/systemd/system/default.target
ln -s /usr/lib/systemd/system/reboot.target/etc/systemd/system/default.target
reboot
重启后无法进入系统,而是会不断重启
修复方法:
1、重启时在系统选择界面按 上下键,选中第一个标题然后按'e'
2、将有 '...ro...'这一行,删除到 'ro',将 'ro'改为 'rw',后面加上'rd.break'(打断初始化进程)。
swich_root:/# chroot /sysroot/
sh-4.2# rm -fr /etc/systemd/system/default.target
sh-4.2# ln -s /usr/lib/systemd/system/graphical.target/etc/systemd/system/default.target
sh-4.2# exit
swich_root:/# logout
##### 删除/bin/bash
原因:
rm -fr /bin/bash
reboot
重启时出现大量红色的'FAILED',然后卡住不动
修复方法:
1、重启时在系统选择界面按 上下键,选中第一个标题然后按'e'
2、将有 '...ro...'这一行,删除到 'ro',将 'ro'改为 'rw',后面加上'rd.break'(打断初始化进程)。
swich_root:/# chroot /sysroot/
swich_root:/# cp /bin/bash /sysroot/bin/bash
swich_root:/# chroot /sysroot/
sh-4.2# touch /.autorelabel ##必须写,不然进不了图形界面
sh-4.2# exit
swich_root:/# logout
##### 双系统
menuentry 'windows'{
}
grub2-set-default 0 #进入第一个标题下的系统
grub2-set-default 1 #进入第二个标题下的系统
grub2-set-default 2 #进入第三个标题下的系统
##### 忘记root密码
进入选择界面按 e ,修改 "..... ro ...."这一行为 "..... ro rd.break"
。然后ctrl+x
swich_root:/# chroot /sysroot/
sh-4.2# passwd
重新设置密码
sh-4.2# touch /.autorelabel ##必须写,不然进不了图形界面
sh-4.2# exit
swich_root:/# logout