diff --git a/vendor/github.com/mitchellh/go-fs/fat/directory_cluster.go b/vendor/github.com/mitchellh/go-fs/fat/directory_cluster.go index 12ccb9327..b822e82db 100644 --- a/vendor/github.com/mitchellh/go-fs/fat/directory_cluster.go +++ b/vendor/github.com/mitchellh/go-fs/fat/directory_cluster.go @@ -7,9 +7,9 @@ import ( "fmt" "github.com/mitchellh/go-fs" "math" + "strings" "time" "unicode/utf16" - "strings" ) type DirectoryAttr uint8 @@ -160,8 +160,8 @@ func NewFat16RootDirectoryCluster(bs *BootSectorCommon, label string) (*Director // Create the volume ID entry result.entries[0] = &DirectoryClusterEntry{ - attr: AttrVolumeId, - name: label, + attr: AttrVolumeId, + name: label, cluster: 0, } diff --git a/vendor/github.com/mitchellh/go-fs/fat/super_floppy.go b/vendor/github.com/mitchellh/go-fs/fat/super_floppy.go index acbcf2599..16ad2caeb 100644 --- a/vendor/github.com/mitchellh/go-fs/fat/super_floppy.go +++ b/vendor/github.com/mitchellh/go-fs/fat/super_floppy.go @@ -72,14 +72,24 @@ func (f *superFloppyFormatter) format() error { label = "FAT16 " } - // Determine the number of root directory entries - if f.device.Len() > 512*5*32 { - bsCommon.RootEntryCount = 512 + // For 1.44MB Floppy, for other floppy formats see https://support.microsoft.com/en-us/kb/75131. + // We make an exception for this most common usecase as the calculations don't create a working image for older operating systems + if f.config.FATType == FAT12 && f.device.Len() == 1474560 { + bsCommon.RootEntryCount = 224 + bsCommon.SectorsPerFat = 9 + bsCommon.SectorsPerTrack = 18 + bsCommon.Media = 240 + bsCommon.NumHeads = 2 } else { - bsCommon.RootEntryCount = uint16(f.device.Len() / (5 * 32)) - } + // Determine the number of root directory entries + if f.device.Len() > 512*5*32 { + bsCommon.RootEntryCount = 512 + } else { + bsCommon.RootEntryCount = uint16(f.device.Len() / (5 * 32)) + } - bsCommon.SectorsPerFat = f.sectorsPerFat(bsCommon.RootEntryCount, sectorsPerCluster) + bsCommon.SectorsPerFat = f.sectorsPerFat(bsCommon.RootEntryCount, sectorsPerCluster) + } bs := &BootSectorFat16{ BootSectorCommon: bsCommon, diff --git a/vendor/vendor.json b/vendor/vendor.json index 9a9250b6f..ad34e1c7a 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -461,13 +461,14 @@ { "checksumSHA1": "mVqDwKcibat0IKAdzAhfGIHPwI8=", "path": "github.com/mitchellh/go-fs", - "revision": "4f9d2cb031e44bef60d0c00ccb3f31f68867e85e", - "revisionTime": "2016-09-29T19:58:49Z" + "revision": "7bae45d9a684750e82b97ff320c82556614e621b", + "revisionTime": "2016-11-08T19:11:23Z" }, { - "checksumSHA1": "Z28nPI+n3iAnsqVSLCt5LZh/Zhg=", + "checksumSHA1": "B5dy+Lg6jFPgHYhozztz88z3b4A=", "path": "github.com/mitchellh/go-fs/fat", - "revision": "4f9d2cb031e44bef60d0c00ccb3f31f68867e85e" + "revision": "7bae45d9a684750e82b97ff320c82556614e621b", + "revisionTime": "2016-11-08T19:11:23Z" }, { "checksumSHA1": "z235fRXw4+SW4xWgLTYc8SwkM2M=",