1 . root密码忘记
- 重新启动系统
- 在系统启动阶段按上下健停止系统系统引导
- 选择启动引导标题,按“E”进行编辑
- 找到linux16引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项
- ctrl+x启动设定过后的系统引导条目
- 进入系统后执行chroot /sysroot切换到真实的系统环境
- passwd root修改超级用户密码
- 建立文件/.autorelabel让系统从新扫描所有文件
- exit两次使系统自动重新启动
2 . 系统恢复
(一) 硬盘引导阶段 mbr主引导记录的恢复
- 模拟问题:dd if=/dev/zero of=/dev/vda bs=446 (主分区文件的446个字节)count=1
- reboot
- 进入挽救模式:poweroff后,导入镜像 ,将IDE CDROM 调到最上边,这是光盘启动,因为要从镜像里面安装东西
- 开机后 troubleshooting 后, 选择第二个linux system,直接continue ok ok
- chroot /mnt/sysimage 将主引导记录目录移到根下
- df 查看一下
- grub2-install /dev/vda 启动分区所在硬盘
- 两次exit
- poweroff后将IDE CDROM 移下去,改成硬盘启动 开机就可
(二) 引导文件的丢失 恢复 (系统初始化手动引导)
/boot/ grub2 下的是引导文件
- 假设不小心把引导文件删除 rm -rf /boot/grub2/grub.cfg
- 两种恢复方法:
(1)不用开机重启 : grub2-mkcofig > /boot/grup2/grup.cfg
(2)开机重启:(先df查看位置)
1)grup > set root=‘hd0,msdos1’ ##设置跟目录为第几个硬盘的第几个分区。
这里的位置是/boot所在的位置,如果/boot单独分区,假如是/dev/vda5 则是msdos5 ;如果 /boot没有单独分区,那位置就是/的所在分区
因为/boot没有单独分区,所以指向根分区
2)grub > linux16 /boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/vda1 ## 将内核文件只读挂载到跟分区
其中:vmlinuz-3.10.0-123.e17.x86_64是内核文件;vda1 是跟分区的设备名称,无论什么时候,这里指向的是跟分区;如果/boot没有单独列出,那么路径就是linux16/boot/vmlinuz-3.10.0-123.e17.x86_64 ; 如果/boot单独列出,则路径是linux16/vmlinuz-3.10.0-123.e17.x86_64
3)grub > initrd16 /boot/initramfs-3.10.0-123.e17.x86_64.img(系统初始化镜像)
4)grub > boot ##启动
5)因为以上的操作可以使系统正常启动,但是是临时的,所以进入系统后还需要执行:grub2-mkcofig > /boot/grub2/grub.cfg
(三) 内核文件的丢失
- 假设删除了: rm -rf /boot/vmlinuz-3.10.0-123.e17.x86_64 ##假设删除了内核文件
- 进入到挽救模式:
(1)chroot /mnt/sysimage 将主引导记录目录移到根下
(2)mkdir /westos 创建一个目录,用来挂载镜像:mount /dev/sr0 /westos
(3)cd /westos后ls 可以看到Package cd到该目录下
(4)复制 kernel-3.10.0-123.e17.x86_64.rmp 到 /mnt下(目录不是唯一的,自己能记住就行,也可以是/etc 无所谓):cp kernel-3.10.0-123.e17.x86_64.rm /mnt
(5)cd /mnt 拆包:rpm2cpio kernel-3.10.0-123.e17.x86_64.rpm | cpio -id
(6)cd到/mnt下的boot cp vmlinuz-3.10.0-e17.x86_64 /boot/ ##将内核文件移到/boot
(7)两次exit退出后,改成硬盘启动,就可以了。
- 改成硬盘启动 开机就可
(四)系统初始化镜像文件丢失
uname -r :专门查看内核版本
- 模拟实验:假设删除了镜像文件:rm -rf /boot/initramfs-3.10.0-123.e17.x86_64.img
- 恢复:
(1)当系统没有重启时:mkinitrd /boot/initramfs-3.10.0-123.e17.x86_64.img 3.10.0-123.e17.x86_64 ## mkinitrd 命令生成该镜像
(2)当系统重启后,进入挽救模式,chroot /mnt/sysimage后:
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) ##此处回报错,因为系统管道未开启,但是无关紧要
(3)两次exit退出后,改成硬盘启动,就可以了。
(五)/boot分区的恢复(将以上所有的设置都恢复一遍)
- 假设:/boot分区被删除 rm -rf /boot
- 恢复:
(1)进入挽救模式 , chroot /mnt/sysimage
(2)创建一个目录: mkdir /boot
(3)grub2-install /dev/vda ## 启动分区所在硬盘
(4)因为之前已经挂载和拆包,所以直接将/mnt/boot/的内核文件复制到 /boot
(5)系统初始化镜像文件恢复
(6)引导文件的恢复
(7)两次exit退出后 ,改成硬盘启动就可以了
(六) 系统的启动级别出问题后
- 错误生成:systemctl set-default reboot.tardet 系统无限重启
- 解决:
(1) 开机按上下键停止读1. 开机按上下键停止读秒
(2) 按“E”进入编辑模式
(3)选择内核启动行 改变为: 5
(4)ctrl + x 启动
(5)重新设定启动系统的引导条目:systemctl set-default graphical.tardet 即可
3 . find命令
下面是一部分例子的操作展示:
例题: 将属于mail组的文件备份到/mnt下。