红联Linux门户
Linux帮助

Linux游戏玩家:cedega玩游戏error=21的错误解决

发布时间:2007-10-07 10:37:35来源:红联作者:vsdotegnu
很多人在Linux下用cedega玩游戏会遇到error=21的错误,比如
/usr/lib/transgaming_cedega//winex/bin/wine: can't exec 'nfs.exe': error=21

网上总结了两种解决的方法:

一、
1. Disable Prelinking after reboot
# vi /etc/sysconfig/prelink
PRELINKING=no
PRELINKING=-no-exec-shield

2. Unlink all prelinked files on running system
# /usr/sbin/prelink -ua

3. Disable Exec-Shield after reboot:
# vi /etc/sysctl.conf
kernel.exec-shield = 0
kernel.exec-shield-randomize= 0
vm.legacy_va_layout = 1

4. Disable Exec-Shield in running kernel
# echo 0 > /proc/sys/kernel/exec-shield
# echo 0 > /proc/sys/kernel/exec-shield-randomize
# echo 1 > /proc/sys/vm/legacy_va_layout

这种方法没有试,听说不太有效,我用的是下面的方法:

二、关于error=21最简单的解决办法就是,把游戏的文件拷贝到具有可执行权限的分区。彻底点的办法是,修改fstab,在游戏文件所在分区的挂载参数里加上exec。

我的/etc/fsab文件原来如下:
#
proc /proc proc defaults 0 0
# /dev/hdc9
UUID=5d4c7fc9-700c-4628-8a74-461664f5b441 / ext3 defaults,error
s=remount-ro 0 1
# /dev/hdc8
UUID=945451d3-6a41-4e9b-ab29-5e1c09e00d83 none swap sw
0 0
/dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/hdc1 /windows/hdc1 ntfs auto,user,utf8,umask=0 0 0
/dev/hdc5 /windows/hdc5 vfat auto,user,utf8,umask=0 0 0
/dev/hdc6 /windows/hdc6 vfat auto,user,utf8,umask=0 0 0
/dev/hdc7 /windows/hdc7 vfat auto,user,utf8,umask=0 0 0

我的游戏在我的D盘,也就是/dev/hd5/,error=21表示没有执行的权限,那就给它参数加exec

改成如下的内容:
#
proc /proc proc defaults 0 0
# /dev/hdc9
UUID=5d4c7fc9-700c-4628-8a74-461664f5b441 / ext3 defaults,error
s=remount-ro 0 1
# /dev/hdc8
UUID=945451d3-6a41-4e9b-ab29-5e1c09e00d83 none swap sw
0 0
/dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/hdc1 /windows/hdc1 ntfs auto,user,utf8,umask=0 0 0
/dev/hdc5 /windows/hdc5 vfat auto,user,exec,utf8,umask=0 0 0
/dev/hdc6 /windows/hdc6 vfat auto,user,utf8,umask=0 0 0
/dev/hdc7 /windows/hdc7 vfat auto,user,utf8,umask=0 0 0

OK,然后就能玩了。
文章评论

共有 0 条评论