Хочу написати самостійну відповідь на це. По-перше, в Linux почніть з ваших двох інструкцій:
dd if=/dev/zero of=floppy.img bs=512 count=2948
mkfs.vfat floppy.img
Це створює сумісний з DOS4 / OS2 диск FAT12 з розширеним блоком параметрів BIOS, як описано у Вікіпедії "Дизайн файлової системи FAT"
Перші 3 байти "eb 3c 90" є машинною мовою для:, JMP 3E \ NOP
тобто пропускають через блок параметрів BIOS і починають виконувати код у зміщенні байтів 62 (десятковий) [3E = 3C + 2 (база 16) = 62 (база 10) ].
Із зміщення 62 наступні 378 байт - це ваш запис завантажувача. Програма за замовчуванням роздруковує повідомлення, чекає ключа, а потім перезавантажується.
Створіть файл під назвою myBoot.bin з двійковою програмою 378 байт x86.
Це лише 378 байт ... Ви МОЖЕТЕ це зробити, але якщо вам абсолютно потрібне початкове місце, використовуйте команду:
dd bs=1 count=378 of=myBoot.bin if=floppy.img skip=62 conv=notrunc
Нарешті, перезапишіть запас MBR дискети за допомогою власної програми myBoot.bin:
dd bs=1 count=378 if=myBoot.bin of=floppy.img seek=62 conv=notrunc
Тепер ви успішно створили дискети та перезаписали завантажувальну програму за замовчуванням.