备份分区表
分区表非常重要,建议在生产环境中将分区表备份
先来查看一下我们要备份的分区表hexdump -C /dev/sda -n 512
我们只备份前512个字节
备份分区表 dd if=/dev/sda of=/data/mbr_bak bs=1 count=512 将sda的分区表备份到/data/的mbr_bak
备份文件不能保存在本机,因为分区表破坏了机器就起不来了,备份文件在本机就恢复不了了。
所以分区表备份文件应该存在一个相对比较安全的地方,在这我们把备份文件复制到centos7上
模拟破坏分区表
使用dd命令用0设备覆盖分区表里的数据
此时分区表已被我们破坏
恢复分区表
一、机器没重启
用fdisk -l和lsblk命令查看分区信息
此时我们看到内存中还有分区表(我们破坏的是硬盘上的分区表),如果及时发现分区表被破坏机器没有重启;直接用我们备份的文件恢复即可
使用dd命令将我们备份的数据覆盖前512字节即可
查看一下分区表已恢复
二、机器已重启
分区表破坏后重启机器启不来了,下面进行恢复
在BIOS在设置第一启动项为光盘
启动项设为光盘启动,选择第3项,进入救援模式
开启网络这项选项Yes
这一项选项Skip
进入救援模式,先查检下IP地址,ping一下是否能连通存放分区表备份文件的远程主机
使用scp命令把远程主机上的分区表备份文件copy到本地
使用dd命令恢复
恢复后重启
将第一启动项设为硬盘
系统启动了,再来查看一下分区表信息
分区表已恢复
存放备份文件的服务器上如果没有网络,把丢失数据的硬盘拆下安到备份分区表的机器上恢复
注意:如果大小一样,分区策略一样,可以拿相同的分区表恢复
分区表克隆
fdisk -l可以查看sda为200多G;sdb为60多G
把sda的数据写给sdb
sdb4的结束位置是错的,总容量没有那么大
不显示sdb4是因为sdb4的分区起始记录是错的
注意:两个硬盘可以实现分区表克隆,前提:第二个块硬盘比第一块硬盘容量大或相同
只能克隆主分区,逻辑分区克隆不了。因为逻辑分区的信息放在EBR里,而EBR在扩展分区里,它不放在最前面MBR里
删除标识位
以sdb硬盘为例
先查看一下标识位是有的
清除标识位
查看一下分区表,标识位为0
lsblk查看发现分区也没有了;我们也可以使用这种方法来删除硬盘分区
分区空间中存在夹缝