系统恢复
实验环境:
利用前面所学知识创建一个以镜像文件创建一个新的虚拟机(虚拟机下操作,防止出错后带来不必要的后果)
1.不小心忘记了root的密码----->恢复密码
忘记密码时,
重启系统,启动时在选择方式的那一页按e
linux16那一栏删除到ro,改成 rw rd.break
ctrl+x启动
switch_root:/#chroot /sysroot/
sh-4.2# echo heihei(新密码) | passwd --stdin root
touch /.autorelabel
exit
exit
这时使用新密码即可进行登陆
2.硬盘引导阶段 mbr主引导记录的恢复(利用快照)
模拟问题:dd if=/dev/zero of=/dev/sda bs=446 count=1
##此处的of后面的目录为启动分区所在硬盘目录(fdisk -l查看有*号的哪一个目录,如果文件由数字,也把数字一并消去)
开机时会出现如下问题
开机时选择读取iso镜像文件(主机上用virt-manager操作)
注意在每次更改开机读取文件时,需要将虚拟机关闭
选择恢复模式Troubleshooting
键盘输入1
可以用df查看启动分区所在硬盘
chroot /mnt/sysimage/(系统为删除的硬盘自动挂载的路径)
grub2-install +/dev/sda(启动分区所在硬盘)
两次exit退出
然后在主机上virt-manager操作,开机读取硬盘文件
这时便可开机
3.文件引导阶段----->引导文件丢失(/boot/grub2/grub.cfg)
模拟问题:rm -fr /boot/grub2/grub.cfg
(1)未重启前,利用命令直接恢复
grub2-mkconfig > /boot/grub2/grub.cfg
(2)如果重启了,则要用grub> 命令恢复
需要知道的:df 查看根目录所挂载的硬盘和boot所在分区
(如果重启后忘记的话,可以用镜像文件进入到恢复模式按1进行查看)
/dev/sda2 9533440 3750328 5783112 40% /
/dev/sda1 201380 150888 50492 75% /boot
uname -r查看内核版本
重启工作:grub > set root=‘hd0,msdos1’
grub > linux16 /vmlinuz-3.10.0-514.el7.x86_64(内核版本) ro root=/dev/sda2 ##根目录所在分区(df查看)
grub > initrd16 /initramfs-3.10.0-514.el7.x86_64.img
grub >boot
以上操作可以使系统正常启动,但是是为临时操作,开机后还需要恢复引导文件
grub2-mkconfig > /boot/grub2/grub.cfg
4.开机时,内核文件丢失
模拟问题:rm -fr /boot/vmlinuz-3.10.0-514.el7.x86_64
进入挽救模式
chroot /mnt/sysimage
mkdir /rhel7
mount /dev/sr0 /rhel7
cd /rhel7/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
cd boot
cp vmlinuz-3.10.0.123.e17.x86_64 /boot
exit
exit
这时再切换会硬盘引导开机,便可正常启动
5.系统初始化镜像文件丢失
模拟问题
rm -fr /boot/initramfs-3.10.0.123.e17.x86_64.img
(1)系统没有重启时
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
(2)系统重启后
进入挽救模式
chroot /mnt/sysimage
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
exit
exit
这时切换成硬盘引导开机便可正常开机
6.当/boot分区被删掉后
模拟问题 rm -fr /boot
进入挽救模式
chroot /mnt/sysimage
mkdir /boot
grub2-install /dev/sda(根目录文件,可以用fdisk -l查询)
mount /dev/cdrom /mnt
rpm -ivh /mnt/Packages/kernel-3.10.0-123.el7.x86_64.rpm --force
grub2-mkconfig > /boot/grub2/grub.cfg
exit
exit
这时再切换回硬盘开机引导便可正常开机
7.linux系统启动级别被篡改的恢复方式
cd /etc/systemd/system/multi-user.target.wants/
ls ##查看服务的链接
systemctl disable sshd ##将sshd服务设为开机不启动(删除了sshd.server的链接)
systemctl enable sshd ##将sshd服务设为开机启动(添加了sshd.server的链接)
cd .. ----->ls ##查看文件链接
ls -l default.target##查看default.target的链接--->对应的图形界面的链接graphical.target
ll /lib/systemd/system/multi-user.target ##文本模式的链接
ll /lib/systemd/system/reboot.target ##重启的链接
ll /lib/systemd/system/shutdown.target ##关闭的链接
模拟问题:
rm -fr /etc/systemd/system/default.target ##删除原有的链接
ln -s /lib/systemd/system/reboot.target /etc/systemd/system/default.target
##修改默认链接为重启命令
ll /etc/systemd/system/default.target ##查看是否修改成功
重启后,系统陷入无限重启的状态
选择启动方式时,按e进行编辑,在linux16开头的末尾加上5,设表示以图形启动
ctrl+x开始启动,启动后用超级用户登陆,修改默认链接即可
rm -fr default.target ##删除原有的默认链接
ln -s /lib/systemd/system/graphical.target /etc/systemd/system/default.target
##设置默认链接为图形界面
ll default.target ##查看是否修改成功
重启后便可正常登陆,不会出现无限重启的状态