If a program depends on the correct label and/or serial number for the
CD-Rom, you can use the following command to extract that information:

      dd if=<your cdrom device> bs=1 skip=32808 count=32

You need read access to the device, so perhaps you have to do it as root.
Put the resulting string (without trailing blanks) into your
wine.ini/.winerc file like:
Label=<the label>

[FIXME: if someone knows how to get the serial number in Linux, please
        put this information here].

If you have access to a Win32 system and C-compiler, you can compile the
following program to extract this information:

------------------------- begin volinfo.c ---------------------------
#include <windows.h>
#include <stdio.h>

int main(int argc,char **argv[])
{
    char  drive, root[]="C:\\", label[1002], fsname[1002];
    DWORD serial, flags, filenamelen, labellen = 1000, fsnamelen = 1000;

    printf("Drive Serial     Flags      Filename-Length "
           "Label                 Fsname\n");
    for (drive = 'C'; drive <= 'Z'; drive++)
    {
        root[0] = drive;
        if (GetVolumeInformationA(root,label,labellen,&serial,
                                  &filenamelen,&flags,fsname,fsnamelen))
        {
            strcat(label,"\""); strcat (fsname,"\"");
            printf("%c:\\   0x%08lx 0x%08lx %15ld \"%-20s \"%-20s\n",
                   drive, (long) serial, (long) flags, (long) filenamelen,
                   label, fsname);
        }
    }
    return 0;
}
------------------------- end volinfo.c -----------------------------
