"Invalid MS-DOS function" error message when copying a file

As you confirmed that it is probably corrupt, that is good.

Usually it happens because the DVD is copy protected. There may be software that bypasses that, but it is doubtful someone would get that kind of help here as it is frowned upon.


I also received the "Invalid MS-DOS Function" error while copying files, but under a different circumstance: Windows 7, copying files from an SMB share on an Mac OS X Lion machine.

(This won't apply to you, but this is the only Super User question referencing "Invalid MS-DOS Function", so I mention it only in hopes of helping someone else!)

On the Mac, I opened a Terminal and ran ls -al in the affected directory, and noticed this:

drwxr-xr-x@  4 Blair    staff         136 18 Jan 21:52 Stuff

The @ mark is important -- it indicates that the file/folder has Extended Attributes.

This was the only folder I was having trouble copying; I checked all the other files and folders that copied successfully and discovered that they lacked extended attributes.

Running ls -al@ reveals what the extended attributes are:

drwxr-xr-x@  4 Blair    staff         136 18 Jan 21:52 Stuff
        com.apple.quarantine            48

This is the quarantine attribute used by the OS to mark files downloaded from the internet as "potentially unsafe".

Believing the attribute to be playing foul with Windows, I decided to remove it. This answer shows how:

xattr -dr com.apple.quarantine Stuff

I returned to the Windows machine and started copying the folder again -- it worked without a problem.


You can delete the from by openning command prompt (windows start->cmd, click enter) then run: del \?[filename+path]


Though, I knew this was an old or probably a solved problem but here is my addition to the solution.

  • Click Start, type regedit in the Start Search box, and then press ENTER

  • Locate and then click the following registry subkey:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System

  • On the Edit menu, point to New, and then click DWORD Value.
  • Type CopyFileBufferedSynchronousIo to name the new entry, and then press ENTER.
  • Right-click CopyFileBufferedSynchronousIo, and then click Modify.
  • In the Value data box, type 1, and then click OK.
  • Exit Registry Editor.

Then copy.


I am late to this, but if someone is still looking for a solution: Copy command from the command prompt worked for me.