UNIX/Linux:复制主引导记录(MBR)
时间:2020-01-09 10:40:07 来源:igfitidea点击:
在Debian Linux下,如何将MBR从一个硬盘复制到另一硬盘?
要复制MBR,只需使用dd命令。
dd命令也可以在所有Linux发行版和其他UNIX(如操作系统)下使用。
主启动记录(MBR)是512字节的启动扇区,它是硬盘分区数据存储设备的第一个扇区。
MBR总大小
446 + 64 + 2 = 512
其中:
- 446字节的引导程序。
- 64个字节的分区表。
- 2个字节的签名。
512与446字节
- 仅使用$mbr.backup.file的内容,使用446个字节来覆盖或还原/dev/XYZ MBR引导代码。
- 使用512字节来覆盖或恢复/dev/XYZ完整的MBR(包含引导代码和驱动器分区表)以及$mbr.backup.file的内容。
dd命令复制MBR(仅大小相同的分区)
执行dd命令,如下所示:
dd if=/dev/sda of=/dev/sdb bs=512 count=1
上面的命令将从sda复制512字节(MBR)到sdb磁盘。
仅当两个光盘具有相同大小的分区时,这才起作用。
dd命令用于两个分区大小不同的光盘
# dd if=/dev/sda of=/tmp/mbrsda.bak bs=512 count=1
现在要将镜像还原到任何sdb:
# dd if=/tmp/mbrsda.bak of=/dev/sdb bs=446 count=1
上面的命令将保留分区架构。
Linux sfdisk命令示例
Linux sfdisk命令可以如下备份主分区表和扩展分区表。
它创建一个可以在文本编辑器中读取的文件,或者sfdisk可以使用该文件来还原主/扩展分区表。
要备份分区表/dev/sda,请执行:
# sfdisk -d /dev/sda > /tmp/sda.bak
要恢复,请执行:
# sfdisk /dev/sda < /tmp/sda.bak
上面的命令将还原扩展分区。
备份MBR和扩展分区架构
备份/dev/sda MBR,执行:
# dd if=/dev/sda of=/tmp/backup-sda.mbr bs=512 count=1
接下来,扩展分区的备份条目:
# sfdisk -d /dev/sda > /tmp/backup-sda.sfdisk
通过基于网络的nas服务器将/tmp/backup-sda.sfdisk和/tmp/backup-sda.mbr复制到U盘或其他安全的地方。
还原MBR和扩展分区架构
要还原MBR和扩展分区,请从备份媒体复制备份文件,然后执行:
# dd if=backup-sda.mbr of=/dev/sda # sfdisk /dev/sda < backup-sda.sfdisk