系统恢复
实验环境:
利用前面所学知识创建一个以镜像文件创建一个新的虚拟机(虚拟机下操作,防止出错后带来不必要的后果)
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 ##查看是否修改成功

重启后便可正常登陆,不会出现无限重启的状态
本文档详细介绍了Linux系统启动时可能遇到的各种问题及解决方法,包括忘记root密码、MBR恢复、引导文件丢失、内核文件丢失、初始化镜像文件丢失、/boot分区被删除以及启动级别被篡改等场景,提供了详细的恢复步骤和命令操作。
967

被折叠的 条评论
为什么被折叠?



