use*_*019 35 linux gedit virtualbox lock files
我有一个可以使用其他应用程序更改的文本文件(例如openoffice)。但是,当我尝试使用 更改并保存它gedit时,出现以下错误gedit:
Could not save the file /media/sf_Ubuntu/BuildNotes.txt.
Unexpected error: Error renaming temporary file: Text file busy
Run Code Online (Sandbox Code Playgroud)
BuildNotes.txt 的权限如下:
-rwxrwx--- 1 root vboxsf 839 2012-10-26 12:08 BuildNotes.txt
Run Code Online (Sandbox Code Playgroud)
用户 ID 是:
m@m-Linux:/media/sf_Ubuntu$ id
uid=1000(m) gid=1000(m) groups=4(adm),20(dialout),24(cdrom),46(plugdev),105(lpadmin),119(admin),122(sambashare),1000(m),1001(vboxsf)
Run Code Online (Sandbox Code Playgroud)
有什么问题,我该如何解决?
小智 22
自 2009 年以来已报告此问题(示例[已存档])。可怕的是,目前还没有解决办法。VirtualBox 和 Gedit 开发人员都不愿意为此承担责任,而是满足于互相指责超过三年。
您可以将编辑器首选项设置为“创建备份”,然后保存两次。令人难以置信的痛苦,但它有效。
其他一些编辑器不会报告这个问题。但是,当我测试 Kate 和 nano 时,例如,它们只是在每隔一次保存时默默地删除文件。这甚至比 gedit 的情况还要糟糕......
“文本文件繁忙”在这里可能会令人困惑:它实际上不是关于文本文件,而是关于可执行文件。可执行文件被称为文本文件,因为……嗯,实际上,我不知道为什么。
这条消息的真正意思是“这个文件被另一个正在使用它的程序锁定,不能让它在它的鼻子底下被修改,所以你不能写它。” 在文本文件中看到此消息是很不寻常的:unix 系统通常不赞成对文件进行强制锁定,并且应用程序无法阻止其他人修改文件。(Unix 具有咨询锁:它们可用于通过协作程序同步对文件的并发访问。)当您看到“文本文件繁忙” ( ETXTBUSY)时,最常见的情况是如果您尝试修改正在运行的可执行文件:内核锁定它。另一种可能性是挂载的磁盘映像,再次被内核锁定。
在您的情况下,鉴于文件的位置/media/sf_Ubuntu和 group 的所有权vboxsf,我猜测该文件位于 VirtualBox 文件共享文件系统上,已锁定在主机操作系统中。据推测,主机是一台 Windows 机器,您还可以在那里的编辑器中打开该文件。您需要先关闭主机上的文件,然后才能在 VM 的编辑器中进行保存。
小智 1
检查lsof文件是否被其他应用程序打开
lsof /media/sf_Ubuntu/BuildNotes.txt
Run Code Online (Sandbox Code Playgroud)
或者使用fuser:
fuser -km /media/sf_Ubuntu/BuildNotes.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37806 次 |
| 最近记录: |