我在wine中安装了一些基于CD的windows教育软件,它工作得很好,除非我手动将路径从默认位置G:/media/user/cdname/改为D:/media/user/cdname/,否则它无法找到磁盘,但这会被重新设置为G:/.每次我放一张新cd。有没有办法把这个位置永久改为D?磁盘太多了,无法从我的硬盘上挂载它们。
这是在19.04和葡萄酒4.7
编辑- ls -l ~/.wine/dosdevices的输出是
total 0
lrwxrwxrwx 1 user_family user_family 10 Apr 30 18:08 c: -> ../drive_c
lrwxrwxrwx 1 user_family user_family 27 May 2 11:56 d: -> /media/user_family/Geom-9
lrwxrwxrwx 1 user_family user_family 8 May 2 11:43 d:: -> /dev/sr0
lrwxrwxrwx 1 user_family user_family 1 May 1 14:16 e: -> /
lrwxrwxrwx 1 user_family user_family 8 Apr 30 18:08 f:: -> /dev/sde
lrwxrwxrwx 1 user_family user_family 27 May 2 11:43 g: -> /media/user_family/Geom-9
lrwxrwxrwx 1 user_family user_family 8 May 1 15:33 g:: -> /dev/sr0
lrwxrwxrwx 1 user_family user_family 8 Apr 30 18:08 h:: -> /dev/sdc
lrwxrwxrwx 1 user_family user_family 8 Apr 30 22:15 i:: -> /dev/sdf
lrwxrwxrwx 1 user_family user_family 19 May 1 14:38 j: -> /home/user_family
lrwxrwxrwx 1 user_family user_family 8 May 2 11:44 k:: -> /dev/sdd
lrwxrwxrwx 1 user_family user_family 1 Apr 30 18:08 z: -> /按照telcoM的解决方案,cd驱动器按需要显示在适当的D:/位置。但每次输入新磁盘或定位到旧磁盘时,我仍然需要进入winecfg,程序中没有cd错误。只需运行winecfg就可以每次更新指向新磁盘的指针,但我希望能够在没有编辑的情况下启动程序。这是终端输出,除了关闭它之外,没有对winecfg进行任何更改:
user_family@user-pc-home:~$ ls -l ~/.wine/dosdevices
total 0
lrwxrwxrwx 1 user_family user_family 10 Apr 30 18:08 c: -> ../drive_c
lrwxrwxrwx 1 user_family user_family 27 May 3 09:25 d: -> /media/user_family/Alg2-2
lrwxrwxrwx 1 user_family user_family 8 May 2 11:43 d:: -> /dev/sr0
lrwxrwxrwx 1 user_family user_family 1 May 1 14:16 e: -> /
lrwxrwxrwx 1 user_family user_family 8 Apr 30 18:08 f:: -> /dev/sde
lrwxrwxrwx 1 user_family user_family 8 Apr 30 18:08 h:: -> /dev/sdc
lrwxrwxrwx 1 user_family user_family 8 Apr 30 22:15 i:: -> /dev/sdf
lrwxrwxrwx 1 user_family user_family 19 May 1 14:38 j: -> /home/user_family
lrwxrwxrwx 1 user_family user_family 8 May 2 11:44 k:: -> /dev/sdd
lrwxrwxrwx 1 user_family user_family 1 Apr 30 18:08 z: -> /
user_family@user-pc-home:~$ winecfg
000b:fixme:winediag:start_process Wine Staging 4.7 is a testing version containing experimental patches.
000b:fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.
0019:fixme:ntoskrnl:ObDereferenceObject failed to release 0x1bc50
0019:fixme:ntoskrnl:ObDereferenceObject failed to release 0x1cd40
0019:fixme:ntoskrnl:ObDereferenceObject failed to release 0x1bb70
user_family@user-pc-home:~$
user_family@user-pc-home:~$ ls -l ~/.wine/dosdevices
total 0
lrwxrwxrwx 1 user_family user_family 10 Apr 30 18:08 c: -> ../drive_c
lrwxrwxrwx 1 user_family user_family 28 May 3 09:36 d: -> /media/user_family/Geom-10
lrwxrwxrwx 1 user_family user_family 8 May 2 11:43 d:: -> /dev/sr0
lrwxrwxrwx 1 user_family user_family 1 May 1 14:16 e: -> /
lrwxrwxrwx 1 user_family user_family 8 Apr 30 18:08 f:: -> /dev/sde
lrwxrwxrwx 1 user_family user_family 8 Apr 30 18:08 h:: -> /dev/sdc
lrwxrwxrwx 1 user_family user_family 8 Apr 30 22:15 i:: -> /dev/sdf
lrwxrwxrwx 1 user_family user_family 19 May 1 14:38 j: -> /home/user_family
lrwxrwxrwx 1 user_family user_family 8 May 2 11:44 k:: -> /dev/sdd
lrwxrwxrwx 1 user_family user_family 1 Apr 30 18:08 z: -> /
user_family@user-pc-home:~$ 我想我可能太具体了,所以我尝试在winecfg中使用更高级别的文件夹D:\media\user-family\,并希望当我将新磁盘放入其中时,它会自动选择合适的子文件夹,但这不起作用,而且winecfg在我第二次运行winecfg时将它重写到完整的路径。
发布于 2019-05-02 23:47:49
注意,在~/.wine/dosdevices目录中,d:和g:符号链接都指向/media/user_family/Geom-9 (我假设这是CD的挂载点),d::和g::都指向/dev/sr0,D6是CD驱动器的设备。
当葡萄酒没有运行时,删除额外的g:和g::符号链接:
rm ~/.wine/dosdevices/g: ~/.wine/dosdevices/g::一旦副本被删除,您的CD驱动器应该保留为D:。
第二个问题是,每个磁盘被安装到不同的路径,这是使用udisks2子系统处理可移动设备的结果。出于安全原因,udisks2将不允许请求挂载的用户以任何方式影响挂载点的选择。
默认情况下,它在位置/media//中为任何本地用户挂载CD。通过在应用于CD驱动器的udev规则中设置ENV{UDISKS_FILESYSTEM_SHARED}="1",可以将默认路径更改为仅为/media/。但是这并没有帮助您,因为CD的卷标签仍然被用作挂载点名称的一部分,而且这是wine程序中根本没有预料到的东西--至少还没有。
但是您可以尝试将这一行放入您的/etc/fstab文件中:
/dev/sr0 /media/cdrom iso9660,udf ro,noauto,user 0 0然后使用sudo mkdir /media/cdrom创建一个空目录,该目录将用作所有CD的挂载点。
这应该推翻udisks2对您的CD驱动器的S处理,并告诉系统任何CD都应该安装到特定的安装点,不管它的卷标签是什么。这是在Linux中使用CD驱动器的老办法,这也是wine目前所期望的。
但是当CD驱动器在/etc/fstab中列出时,udisks2可能会跳过它,也可能不会跳过它:您可能会丢失CD驱动器基于GUI的挂载功能(我还没有在Ubuntu19.04上验证这一点)。但是,如果是这样的话,现在您应该可以将mount /media/cdrom和umount /media/cdrom命令作为常规用户使用,甚至无需使用sudo。因此,使用以下三个命令编写脚本非常简单:
#!/bin/sh
mount /media/cdrom # mount the CD before starting wine
wine
umount /media/cdrom # unmount the CD after wine exits然后,...and使用该脚本(可能装扮成一个很好的GUI图标或菜单项)来运行教育程序。
https://unix.stackexchange.com/questions/516665
复制相似问题