方法1:使用 dd
+ hexdump
(推荐)
步骤:
sudo dd if=/dev/sda bs=512 count=1 | hexdump -C
if=/dev/sda
:指定磁盘(如sda、sdb)。切勿误操作写入(of
)!bs=512 count=1
:精确读取MBR的512字节。hexdump -C
:以十六进制和ASCII格式输出,便于分析分区表(末尾)和引导代码(开头)。
输出关键解读:
000001b0 00 00 00 00 00 00 00 00 FF 4F 45 4F 4F 4F 4F 4F |.........OEOOOO|
000001c0 01 00 83 0F 4F 4F 08 00 00 00 00 20 00 00 00 00 |....OO..... ....|
000001c0
行:分区表起始位置(共64字节,每16字节描述一个分区)。
方法2:使用 fdisk
查看分区信息
sudo fdisk -l /dev/sda
- 作用:解析并显示MBR中的分区表(不显示引导代码)。
- 输出示例:
Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 209715199 209713152 100G 83 Linux
方法3:使用 xxd
替代 hexdump
sudo dd if=/dev/sda bs=512 count=1 | xxd
xxd
:类似hexdump,默认十六进制输出(加-g1
可单字节分组)。
方法4:使用 gdisk
(兼容GPT/MBR)
sudo gdisk -l /dev/sda
- 同时支持MBR和GPT分区表,清晰标注分区类型。
注意事项
- 权限要求:所有命令需
sudo
或root权限。 - 磁盘选择:
- 通过
lsblk
确认磁盘标识(如sda、nvme0n1)。 - 切勿对挂载中的系统盘直接修改!
- 通过
- 数据安全:
dd
操作不当可能破坏数据,建议先备份:sudo dd if=/dev/sda of=MBR_backup.bin bs=512 count=1
- 恢复MBR时反向操作(
if=备份文件 of=/dev/sda
)需极度谨慎。
何时需要查看MBR?
- 系统无法启动时检查引导代码是否损坏。
- 验证分区表是否被恶意篡改。
- 数据恢复场景分析磁盘结构。
重要提示:操作磁盘底层存在风险,建议在测试环境练习,生产环境中修改MBR前务必备份。
引用说明:
dd
,hexdump
,fdisk
命令参考自 GNU coreutils 及 util-linux 官方文档。- 磁盘结构依据IBM PC硬件标准(IBM MBR规范)。
- 安全操作建议基于Linux管理员最佳实践(Red Hat、Ubuntu官方指南)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7458.html