Tôi muốn viết một câu trả lời khép kín cho điều này. Trước hết, trong Linux bắt đầu với hai hướng dẫn của bạn:
dd if=/dev/zero of=floppy.img bs=512 count=2948
mkfs.vfat floppy.img
Điều này tạo ra một đĩa FAT12 tương thích với DOS4 / OS2 với khối tham số BIOS mở rộng như được mô tả tại Wikipedia "Thiết kế hệ thống tệp FAT"
3 byte đầu tiên "eb 3c 90" là ngôn ngữ máy cho : JMP 3E \ NOP
, nghĩa là bỏ qua khối tham số BIOS và bắt đầu chạy mã ở byte bù 62 (thập phân) [3E = 3C + 2 (cơ sở 16) = 62 (cơ sở 10) ].
Từ offset 62, 378 byte tiếp theo là của bạn để viết bootstrap của bạn. Chương trình mặc định in, một tin nhắn, đợi một khóa và sau đó khởi động lại.
Tạo một tệp có tên myBoot.bin với chương trình nhị phân 378 byte x86.
Đó là chỉ 378 byte ... bạn CÓ THỂ làm điều này, nhưng nếu bạn thực sự cần một nơi bắt đầu, sử dụng lệnh:
dd bs=1 count=378 of=myBoot.bin if=floppy.img skip=62 conv=notrunc
Cuối cùng, ghi đè MBR chứng khoán của đĩa mềm bằng chương trình myBoot.bin tùy chỉnh của bạn:
dd bs=1 count=378 if=myBoot.bin of=floppy.img seek=62 conv=notrunc
Bây giờ bạn đã tạo thành công một hình ảnh đĩa mềm và ghi đè lên chương trình khởi động mặc định.