GeditはVirtualBox共有にファイルを保存しません:テキストファイルを使用しています

GeditはVirtualBox共有にファイルを保存しません:テキストファイルを使用しています

他のアプリケーションを使用して変更できるテキストファイルがありますopenoffice。ただし、変更を使用して保存しようとするとgeditエラーが発生しますgedit

Could not save the file /media/sf_Ubuntu/BuildNotes.txt.
Unexpected error: Error renaming temporary file: Text file busy

BuildNotes.txt の権限は次のとおりです。

-rwxrwx--- 1 root vboxsf  839 2012-10-26 12:08 BuildNotes.txt

ユーザー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)

問題は何で、どのように解決しますか?

答え1

この問題は2009年から報告されました(はい[アーカイブ])。怖い点はまだ解決策がないという点だ。 VirtualBox開発者とGedit開発者はどちらも責任を負わなかった。

エディタのデフォルト設定を「バックアップの作成」に設定し、2回保存できます。とても痛いですが効果があります。

他の編集者は問題を報告しません。しかし、例えばKateとnanoをテストしたとき、彼らは保存するたびにファイルを自動的に削除しました。これはgeditの状況よりも悪いです...

答え2

ここで、「テキストファイルを使用中」は混乱する可能性があります。実際にはテキストファイルには関係なく、実行ファイルに関連しています。実行ファイルをテキストファイルと呼ぶ理由は…実際、なぜかはわかりませんが

このメッセージの実際の意味は、「ファイルを使用している他のプログラムによってファイルがロックされているため、変更できないため、ファイルに書き込めません」ということです。テキストファイルでこのメッセージを見るのはとても奇妙です。システムは通常、ファイルを強制的にロックすることで眉をひっくり返し、アプリケーションに他の人がファイルを変更するのを防ぐツールはありません。 (Unixにはアドバイスロックがあります。連携プログラムを介してファイルへの同時アクセスを同期させるために使用できます。)「テキストファイルを使用中」()が表示されたETXTBUSY場合、最も一般的な状況は実行中の実行可能ファイルを変更しようとしていることです。です。カーネルロック 。もう一つの可能​​性はマウントされたディスクイメージ、カーネルによって再びロックされました。

あなたの場合、ファイルの場所/media/sf_Ubuntuとグループの所有権を考慮すると、vboxsfVirtualBoxファイル共有ファイルシステム上のファイルがホストオペレーティングシステムにロックされているようです。ホストが Windows コンピュータであり、そのコンピュータのエディタでファイルを開くこともできるとします。仮想マシンのエディタにファイルを保存する前に、ホストでファイルを閉じる必要があります。

答え3

問題は、基本的にglibと一時ファイルに保存してから名前を変更する方法です。エラーは次のように記録されました。https://bugzilla.gnome.org/show_bug.cgi?id=656225

答え4

lsof他のアプリケーションでファイルが開いていることを確認する

lsof /media/sf_Ubuntu/BuildNotes.txt

または以下を使用してくださいfuser

fuser -km /media/sf_Ubuntu/BuildNotes.txt

関連情報