1、mbr扇区故障
如果mbr被破坏了,系统就无法启动。mbr非常重要,为了解决这个问题,可以使用备份。备份可以用 dd命令。不能用cp命令,cp只能备份文本。
故障原因:
- 病毒、木马等造成破坏
- 不正确的分区操作、磁盘读写误操作
1.1 如何使用dd备份?
语法命令:
dd if=源绝对路径 of=目的绝对路径 count=1 bs=512 # count=1 代表复制次数是1次, bs=512 是512字节
dd if=dpt.img of=/dev/sda bs=1 seek=446 #seek=446 代表 只复制到 446字节。
小拓展: 有两个命令:sz 和 rz ,是xshell里自带的文件传输工具。这两个命令必须在xshell里面运行。如果没有这两个命令,就在xshell里安装。
- 通过sz 把虚拟机的文件传给真机
- 通过rz 把真机的文件传给虚拟机
1.2 备份mbr分区表
1、备份mbr
fdisk /dev/sdb #新建磁盘sdb,然后进行分区
mkfs.xfs /dev/sdb1 #格式化
mount /dev/sdb1 /mnt #挂载
dd if=/dev/sda of=/mnt/mbr.bak count=1 bs=512 #复制, mbr.bak相当于是新建的文件夹
hexdump -C -n512 /dev/sda #查看
2、模拟破坏mbr
- 第一种破坏方法:dd if=/dev/zero of=/dev/sda count=1 ba=512 # 这个命令 就是往目的路径里面写0。
- 第二种破坏方法:勾掉 已连接
3、reboot重启,发现黑屏,然后进入急救模式
4、选择急救操作系统 rescue
5、针对1-4,选择1!
6、挂载、复制
先回车
mount /dev/sdb1 /mnt #注意是分区:sdb1
dd if=/mnt/mbr.bak of=/dev/sda count=1 bs=512
hexdump -C -n512 /dev/sda
最后,reboot重启
第三种方法(拓展):
服务器之间互相备份。与前两种方法不同,这个要选3。
scp 远程拷贝
scp /mnt/mbr.bak 192.168.125.101:/mnt #这个ip地址就是服务器地址
ifconfig ens33:0 192.168.125.101/24 #有两个作用,一个是可以生成虚拟网卡,另一个是可以临时修改地址
小拓展:
linux中 , ctrl+alt+delete 是强制重启,与windows中不一样,winows中是任务管理器。
2、修复grub引导故障
1、把grub.cfg文件移走,相当于是文件丢失。
mkdir /data
cd /boot/grub2
mv grub.cfg /data/
2、重启。 在读条界面按Esc 键进入启动菜单,改用光盘启动。
// 注意:要在虚拟机中重启。为什么要在虚拟机中重启?因为能弹出下列窗口的时间只有半秒钟。提醒:CD-ROM窗口 必须在连接光驱时才会出现。
3、然后进入光驱里面的系统,光驱里面的grub是好的,不需要修复。接下来的和mbr实验一样,依次选3、2、1 continue
4、按照下面内容 分步骤输入
先回车!
1、chroot /mnt/sysimage #系统会提示你这个,按照提示敲下来。chroot是切根的意思。
2、grub2-install /dev/sda #重新建立加载sda分区
3、grub2-mkconfig -o /boot/grub2/grub.cfg #重新构建grub菜单配置文件,/boot/grub2/grub.cfg 文件路径一定一定一定不能写错!!!
4、exit 先退出
5、reboot 然后再重启
3、修改密码
本次主要介绍两种修改方式:一种是针对有光驱的情况,一种是没有光驱的情况。
3.1 有光驱改密码
1、同样在虚拟机中重启,把握好半秒钟,控制好手速。点esc,进入CD-ROM,然后依次3、2、1。
2、按照下面内容 分步骤输入
chroot /mnt/sysimage #进入急救模式后,更改环境
passwd #修改密码
exit 退出
reboot 重启
3.2 无光驱改密码
按E键(有5秒)
在Linux开始行的最后 输入rd.break
然后,按ctrl+x 启动,再输入:
mount -o remount,rw /sysroot/
chroot /sysroot #切根
passwd root #可以不写root,因为默认就是root登录。
touch /.autorelabel #刷新autorelabel这个文件记不住没关系,可以补全的。
exit
reboot
4、添加grub密码
为了安全性考虑,可以给grub菜单 添加密码。
#针对centos7版本
grub2-setpassword
#针对centos6版本
按E进来,然后再按A #进入单用户
空格+s
passwd 再回车
reboot