UNIX / Linux:复制主引导记录 (MBR)
在 Debian Linux 下,如何将 MBR 从一个硬盘复制到另一个硬盘?
要复制 MBR,只需使用 dd 命令。dd 命令也适用于所有 Linux 发行版和其他类 UNIX 操作系统。主引导记录 (MBR) 是 512 字节的引导扇区,是硬盘分区数据存储设备的第一个扇区。
MBR 总大小
446 + 64 + 2 = 512
在哪里,
- 446 字节 – 引导程序。
- 64 字节 – 分区表。
- 2 个字节——签名。
512 字节与 446 字节
- 使用 446 字节仅使用 $mbr.backup.file 的内容覆盖或恢复 /dev/XYZ MBR 启动代码。
- 使用 512 字节用 $mbr.backup.file 的内容覆盖或恢复 /dev/XYZ 的完整 MBR(其中包含引导代码和驱动器的分区表)。
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,输入:
接下来,备份扩展分区的条目:
将 /tmp/backup-sda.sfdisk 和 /tmp/backup-sda.mbr 复制到 USB 笔或基于网络的 nas 服务器上其他安全的地方。
# dd if=/dev/sda of=/tmp/backup-sda.mbr bs=512 count=1
# sfdisk -d /dev/sda > /tmp/backup-sda.sfdisk
任务:恢复 MBR 和扩展分区架构
要恢复 MBR 和扩展分区,请从备份媒体复制备份文件并输入:
# dd if=backup-sda.mbr of=/dev/sda
# sfdisk /dev/sda < backup-sda.sfdisk