Skip to content
  • Markus Armbruster's avatar
    vvfat: Fix partition table · f91cbefe
    Markus Armbruster authored
    
    
    Unless parameter ":floppy:" is given, vvfat creates a virtual image
    with DOS MBR defining a single partition which holds the FAT file
    system.  The size of the virtual image depends on the width of the
    FAT: 32 MiB (CHS 64, 16, 63) for 12 bit FAT, 504 MiB (CHS 1024, 16,
    63) for 16 and 32 bit FAT, leaving (64*16-1)*63 = 64449 and
    (1024*16-1)*64 = 1032129 sectors for the partition.
    
    However, it screws up the end of the partition in the MBR:
    
        FAT width param.  start CHS  end CHS     start LBA  size
            :32:          0,1,1      1023,14,63       63    1032065
            :16:          0,1,1      1023,14,55       63    1032057
            :12:          0,1,1        63,14,55       63      64377
    
    The actual FAT file system nevertheless assumes the partition has
    1032129 or 64449 sectors.  Oops.
    
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
    f91cbefe