首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何永久修复winecfg中给定位置的cd驱动器

如何永久修复winecfg中给定位置的cd驱动器
EN

Unix & Linux用户
提问于 2019-05-02 02:12:52
回答 1查看 1.2K关注 0票数 0

我在wine中安装了一些基于CD的windows教育软件,它工作得很好,除非我手动将路径从默认位置G:/media/user/cdname/改为D:/media/user/cdname/,否则它无法找到磁盘,但这会被重新设置为G:/.每次我放一张新cd。有没有办法把这个位置永久改为D?磁盘太多了,无法从我的硬盘上挂载它们。

这是在19.04和葡萄酒4.7

编辑- ls -l ~/.wine/dosdevices的输出是

代码语言:javascript
复制
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进行任何更改:

代码语言:javascript
复制
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时将它重写到完整的路径。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-05-02 23:47:49

注意,在~/.wine/dosdevices目录中,d:g:符号链接都指向/media/user_family/Geom-9 (我假设这是CD的挂载点),d::g::都指向/dev/sr0D6是CD驱动器的设备。

当葡萄酒没有运行时,删除额外的g:g::符号链接:

代码语言:javascript
复制
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文件中:

代码语言:javascript
复制
/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/cdromumount /media/cdrom命令作为常规用户使用,甚至无需使用sudo。因此,使用以下三个命令编写脚本非常简单:

代码语言:javascript
复制
#!/bin/sh

mount /media/cdrom     # mount the CD before starting wine
wine 
umount /media/cdrom    # unmount the CD after wine exits

然后,...and使用该脚本(可能装扮成一个很好的GUI图标或菜单项)来运行教育程序。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/516665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档