linux/unix系统的分区表结构位于硬盘开始的MBR上。MBR上大小为512bytes。
MBR=446B启动信息+64B分区表+2B分隔符=512字节
前面的446bytes作为启动信息,启动信息跟分区表相关。启动信息会告诉BIOS在启动的时候,按照启动信息去找分区表里面的相关分区加载文件。
在如果修改的分区表结构不影响启动信息的分区的情况下(比如,启动分区没有做修改,只是修改增加改动了其他非启动信息的分区表结构在64B的分区表里面),则不会影响用户启动系统。
备份
所以,如果用户想备份mbr的话,可以这样
dd if=/dev/sda /path/to/mbr bs=512 count=1
然后,我们想单独备份mbr中的引导结构可以这样
dd if=/dev/sda /path/to/bootstrap bs=446 count=1
我们像单独备份mbr中的分区表结构可以这样
dd if=/dev/sda /path/to/partition_table bs=512 skip=446 count=66
上面的 bs=512 skip=446 count=66 是为了略过446个字节,定位其后的66个字节,用来保存到文件 /path/to/partition_table 里。
恢复
用户想整体恢复mbr
dd if=/path/to/mbr of=/dev/sda bs=512 count=1
用户只想恢复引导记录信息
dd if=/path/to/mbr of=/dev/sda bs=446 count=1
用户只想恢复分区表结构
dd if=/path/to/mbr of=/dev/sda bs=512 skip=446 count=66
清空
清空整个mbr
dd if=/dev/zero of=/dev/sda bs=512 count=1
只清空引导记录
dd if=/dev/zero of=/dev/sda bs=446 count=1
只清空分区表
dd if=/dev/zero of=/dev/sda bs=512 skip=446 count=66 # 66 还是64 由用户本身需求而定,由于mbr最后2个字节是用来做分隔符的。当在保存的mbr 为512 位(含有最后2位分隔符)的时候,建议count=66
分区表,启动项硬盘工具
1、cfdisk
命令行下,可视化的选择工具
2、fdisk
命令行下,略显专业的硬盘工具
3、gparted
带UI的分区工具,鼠标操作
等等一些工具有很多很多