如何将“Magic Number”引导块写入闪存驱动器的第一个扇区

如何将“Magic Number”引导块写入闪存驱动器的第一个扇区

我想尝试看看 BIOS 如何0xaa55通过写入使用幻数 ( )来检测启动设备

e9 fd ff 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa

到我的随身碟的第一个扇区,如书中实验所述“从头开始编写一个简单的操作系统”(第 4 页)。

dd单独使用命令可以实现吗?我正在使用 Ubuntu 20.04 LTS

答案1

我将用来printf生成原始字节并将其重定向dd以写入设备。

您需要知道您的 pendrive 的设备名称,但如果是,/dev/sdf您可以通过 3 个步骤完成此操作。

确保您的随身碟使用正确的设备名称!

  1. 将第一个 512 字节扇区清零:
printf '\x00%.0s' {1..512} | sudo dd of=/dev/sdf
  1. 将前 3 个字节写入扇区的开头:
printf '\xe9\xfd\xff' | sudo dd of=/dev/sdf
  1. 将最后 2 个字节写入扇区末尾:
printf '\x55\xaa' | sudo dd seek=510 oflag=seek_bytes of=/dev/sdf

相关内容