Linux 系统恢复
系统恢复
一、系统引导
系统的引导过程,由biso引导,在开机时按F12,即进入启动列表,可以进入biso设定用硬件的工作方式。
二、grub2磁盘引导阶段
1.dd if=/dev/zero of=/dev/vda bs=446count=1 #截取0磁道1扇区446字节
2.reboot #硬盘分区不能正常启动,因为分区表被截取
3.添加光驱启动(系统在启动时可以进入排错、挽救界面),过程如下:
[[email protected]~]# virt-manager
添加光驱启动,并使光驱启动先起作用
注意:光驱的选择应与内核版本号相同,本实验所用主机和光驱版本均为7.2
4.再启动,先选择排错、挽救
(1)第三行Troubleshooting #进入排错
(2)第二行进入挽救界面
(3)选择1)Continue #继续
(4)[enter]
(5)系统提示原系统的根在 /mnt/sysimage,执行chroot /mnt/sysimage进入根目录
(6)系统真实的根目录是/dev/vda,可以用df命令查看。
重新安装该目录,完成启动引导。命令如下:
grub2-install /dev/vda
(7)exit #退出到启动界面
(8)使硬盘启动先起作用,再重启系统
三、grub2文件引导阶段
开机文件保存在/boot/grub2/grub.cfg中
1.删除开机文件,系统将不能正常启动,命令如下:
rm-fr /boot/grub2/grub.cfg
2.手动引导,输入命令如下
(1)setroot='dh0,msdos1'
(2)linux16/boot/vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1 #手动引导,系统启动后根分区在/dev/vda1
(3)initrd16/boot/initramfs-3.10.0-123.el7.x86_64.img
(4)boot #直接启动系统
3.手动引导启动后,启动字符命令未生成文件,则在下次reboot时仍需手动引导,为避免这种麻烦,现生成开机文件,命令如下:
grub2-mkconfig > /boot/grub2/grub.cfg #开机文件生成
四、内核文件的恢复
1.内核文件丢失后,必须进入挽救界面,因此需使光驱启动先起作用,光驱的添加见(一)中的操作,但应注意,内核文件恢复必须使用与主机内核版本对应的光驱,uname-r命令可以查看主机的内核版本号。
##3.10.0-123.el7.x86_64 表示内核版本为7.0
##3.10.0-327.el7.x86_64 表示内核版本为7.2
2.内核文件:/boot/vmliuz-3.10.0-123.el7.x86_64
(1)若内核文件丢失,系统将无法正常启动
(2)选择光驱设备再重启,进入急救模式。应注意:内核文件恢复一定要是用与内核版本号相同的光驱,已知本系统内核版本是7.0,所以所使用的光驱设备也是7.0版本。
(3)重启系统进入急救模式,对系统内核文件进行恢复。
[enter]
[enter]
[enter]
(3)根据显示内容中提示信息可知:系统家目录在/mnt/sysimage
chroot /mnt/sysimage #进入系统家目录
mount /dev/cdrom /mnt #将光驱设备挂载至/mnt后,才可以使用光驱设备
cp/mnt/Package/kernel-3.10.0-123.el7.x86_64 /opt #复制内核文件至/opt
rpm2cpio /opt/kernel-3.10.0-123.el7.x86_64.rpm | cpio -id #拆分软件包,将会得到/opt/boot/目录
ls/opt/boot #查看新生成的目录内容
cp/opt/boot/vmlinuz-3.10.0-123.el7.x86_64 /boot/ #复制内核文件至/boot/
(4)注意:一定要置selinux为disabled状态
vim/etc/sysconfig/selinux
SELINUX=disabled
否则重启系统会出现下面情况,系统仍无法正常启动:
(5)exit
(6)使用硬盘设备重启系统
3.系统内核文件:/boot/inittramfs-3.10.0-123.el7.x86_64.img
(1)若该内核文件丢失,系统将同样不能正常启动
(2)选择光驱设备启动系统进入急救模式进行系统恢复
步骤见上文内容
(3)由上文操作过程中的命令可知系统内核版本号较长,为了避免输入错误,可以使用以下命令来完成内核文件的恢复:
mkinitrd /boot/initramfs-$(uname -r).img$(uname -r) #恢复内核文件
其中:$(uname-r) #$(...) 表示先执行库括弧中内容,即先执行unmae -r这条命令
uname -r #查看系统版本号
(4)exit ,再使用硬盘设备重启系统。
五、systemd初始化
1.自动开启服务脚本:/etc/systemd/system/multi-user.target.wants
如:查看vsftpd服务在开机时是否可以自动启动
命令运行结果无内容显示,表示开机时该服务不会自动启动。
(2) systemctlenable vsftpd #使vsftpd在开机时自动启动
(3) 删除vsftpd自动启动的脚本后,vsftpd运行状态仍是enable,但在开机时并未启动。
所以,服务器运行状态enable/disabled仅仅是表示服务器有/无开机时自动启动脚本。
2.图形界面引导
(1)开机时有图形服务启动脚本
[[email protected] ~]# cd /etc/systemd/system/
[[email protected] system]# ls -ldefault.target
lrwxrwxrwx. 1 root root 40 Jul 10 2014 default.target ->/usr/lib/systemd/system/graphical.target
#开机时自动启动图形界面
(2)删除图形显示服务,并在开机时启动“自动关闭图形界面”功能。
/etc/systemd/system/default.target #默认启动模式
3.reboot
4.出现开机界面后,按e,进入编辑
(1)修改后的内容显示如下图:
(2)ctrl+x
(3)输入命令:
chroot /sysroot #进入根目录
ls /etc/systemd/system/default.target -l #查看默认启动模式
#内容显示默认启动目录链接到自动关机目录中,因此系统不能正常启动
(4)删除默认启动目录,并将图形自动启动目录链接到默认启动目录,再exit退出将正常启动。
六、登录密码修改
1.忘记用户登录密码时,重启主机并按e进入编辑模式
2.修改开机文件(见“五”中4步骤),ctrl+x
3.输入命令如下:
chroot /sysroot #进入根目录
echo 密码 | passwd --stdin 用户名 #更改密码
touch /.autorelable #使新密码生效
4.exit #退出编辑模式启动主机,使用新密码登录