Linux磁盘管理之巧用dd命令

  • 备份分区表

  分区表非常重要,建议在生产环境中将分区表备份

   先来查看一下我们要备份的分区表hexdump -C /dev/sda -n 512

  image.png

     我们只备份前512个字节

   备份分区表  dd if=/dev/sda of=/data/mbr_bak bs=1 count=512  将sda的分区表备份到/data/的mbr_bak

  image.png

  备份文件不能保存在本机,因为分区表破坏了机器就起不来了,备份文件在本机就恢复不了了。

image.png

  所以分区表备份文件应该存在一个相对比较安全的地方,在这我们把备份文件复制到centos7上

image.png

模拟破坏分区表

    使用dd命令用0设备覆盖分区表里的数据

 image.png 

   此时分区表已被我们破坏

 image.png

 恢复分区表

   一、机器没重启

    用fdisk -l和lsblk命令查看分区信息

 image.png

 此时我们看到内存中还有分区表(我们破坏的是硬盘上的分区表),如果及时发现分区表被破坏机器没有重启;直接用我们备份的文件恢复即可

  使用dd命令将我们备份的数据覆盖前512字节即可

 image.png

 查看一下分区表已恢复

 image.png

 二、机器已重启

  分区表破坏后重启机器启不来了,下面进行恢复

 image.png

 在BIOS在设置第一启动项为光盘

 image.png

 启动项设为光盘启动,选择第3项,进入救援模式

image.png

 开启网络这项选项Yes

image.png

 这一项选项Skip

image.png

 进入救援模式,先查检下IP地址,ping一下是否能连通存放分区表备份文件的远程主机

image.png

 使用scp命令把远程主机上的分区表备份文件copy到本地

image.png

 使用dd命令恢复

image.png

 恢复后重启

image.png

 将第一启动项设为硬盘

image.png

  系统启动了,再来查看一下分区表信息

image.png

 分区表已恢复

 存放备份文件的服务器上如果没有网络,把丢失数据的硬盘拆下安到备份分区表的机器上恢复

注意:如果大小一样,分区策略一样,可以拿相同的分区表恢复

  • 分区表克隆

    fdisk -l可以查看sda为200多G;sdb为60多G

image.png

  把sda的数据写给sdb

image.png

   sdb4的结束位置是错的,总容量没有那么大

image.png

  不显示sdb4是因为sdb4的分区起始记录是错的

image.png

  注意:两个硬盘可以实现分区表克隆,前提:第二个块硬盘比第一块硬盘容量大或相同

  只能克隆主分区,逻辑分区克隆不了。因为逻辑分区的信息放在EBR里,而EBR在扩展分区里,它不放在最前面MBR里

  • 删除标识位

  以sdb硬盘为例

 image.png

 先查看一下标识位是有的

 image.png

 清除标识位

 image.png

查看一下分区表,标识位为0

image.png

 lsblk查看发现分区也没有了;我们也可以使用这种方法来删除硬盘分区

image.png

  • 分区空间中存在夹缝








猜你喜欢

转载自blog.51cto.com/10461810/2106594