linux中如何备份和恢复磁盘分区表

如何备份和恢复分区表

  • 0磁道的0扇区512字节包含
    • 主引导程序占446字节
    • 主分区表占64字节
    • 和结束位(2字节)
  • 如果0扇区损坏或者破坏能造成很严重的后果,我们备份一下0扇区。
    备份扇区
[root@centos7 ~]# dd if=/dev/sda of=/app/mbr bs=1      count=512  
512+0 records in  
512+0 records out  
512 bytes (512 B) copied, 0.00279983 s, 183 kB/s  
[root@centos7 app]# ll mbr 
-rw-r--r--. 1 root root 512 Dec  2 17:04 mbr
  • mbr是备份的扇区文件,当然绝对不要存在本机,因为当分区表被破坏是完全看不见分区的,也查看不了文件,所以我们把分区放在另一 台设备上。
    将备份文件传到另一台机器上
[root@centos7 app]# scp mbr  192.168.27.128:/app/
root@192.168.27.128's password: 
mbr                                                                        100%  512   315.4KB/s   00:00 
  • 这样就把备份文件传到192.168.27.128 上的/app目录下了。

破坏主分区表

[root@centos7 app]# dd if=/dev/zero of=/dev/sda bs=1 count=512
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.00105923 s, 483 kB/s
  • 我们用零填充sda第0扇区的512个字节
  • 这样我们用fdisk -l 命令查看一下sda分区信息和用二进制查询命令查一下
[root@centos7 app]# hexdump -C -n 512 /dev/sda  
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|  
*
00000200  
[root@centos7 app]# fdisk -l  

Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400   sectors  
Units = sectors of 1 * 512 = 512 bytes   
Sector size (logical/physical): 512 bytes / 512 bytes  
I/O size (minimum/optimal): 512 bytes / 512 bytes  
  • 我们现在看到已经没有分区信息了,重启一下机器
  • 开机进入求援模式,然后可以把之前备份好的文件放u盘上挂载到系统上,然后用命令恢复
# dd if=./mbr of=/dev/sda bs=1 count=512  

然后重启系统就好啦。
当然也可以直接把硬盘拆下了挂载到备份的机器上,进行恢复。

你可能感兴趣的:(linux,基础,磁盘,备份)