As we alter EXFAT we need to fix the checksum.
http://code.google.com/p/exfat/source/diff?spec=svn183&r=183&format=side&path=/trunk/mkfs/vbr.c
Steps:
1. Sector 0: write EOS_DEVELOP (from 0x82) and BOOTDISK (from 0x7a)
2. Calculate checksum: chks:=0; for i:=0 to 5631 do if (i<>106) and (i<>107) and (i<>112) then chks:=(chks shr 1)+(chks shl 31)+buf[i];
Note: This is incorrect! it should be chks ROTATE_RIGHT 1 and chks ROTATE_LEFT 31. Do not use SHIFT!
3. Sector 11: (from 0x1600, 5632 ) write the calculated checksum 128 times (fill the whole sector with the 4 byte checksum value)
4. Sector 12: Copy Sector 0 here
5. Sector 23: Copy Sector 11 here