vi は、新しいファイルを作成する前にスワップファイルを生成します。

vi は、新しいファイルを作成する前にスワップファイルを生成します。

これは奇妙な質問です。新しいファイルのスワップファイルを作成します。したがって、私のディレクトリが空でファイルが存在しない場合は、vi test.txtスワップファイルメッセージが表示されます。vi.swpファイルをクラッシュダンプとして生成し、ファイルの復元メッセージを表示するようです。

    nfs setting:
    netapp-3240:/vol/vol0/test /testing nfs  rsize=8192,wsize=8192,timeo=14,intr     0 0

    [user@rh-test]cat /etc/redhat-release
    Red Hat Enterprise Linux Server release 5.9 (Tikanga)

    [user@rh-test]ls -la
    total 8
    drwx------ 2 root root 4096 Nov  8 15:35 .
    drwx------ 9 root root 4096 Nov  8 13:59 ..
    /testing 
    
    [user@rh-test]vi test.txt


    E325: ATTENTION
    Found a swap file by the name ".test.txt.swp"
              owned by: rahmed   dated: Fri Nov  8 15:30:06 2013
             [cannot be read]
    While opening file "test.txt"
                 dated: Fri Nov  8 15:29:59 2013

    (1) Another program may be editing the same file.
        If this is the case, be careful not to end up with two
        different instances of the same file when making changes.
        Quit, or continue with caution.

    (2) An edit session for this file crashed.
        If this is the case, use ":recover" or "vim -r test.txt"
        to recover the changes (see ":help recovery").
        If you did this already, delete the swap file ".test.txt.swp"
        to avoid this message.

    Swap file ".test.txt.swp" already exists!
    [O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

    [user@rh-test]ls -la
    total 8
    drwx------ 2 root   root          4096 Nov  8 15:39 .
    drwx------ 9 root   root          4096 Nov  8 13:59 ..
    -rwx------ 1 user   sysadmins    0 Nov  8 15:39 .test.txt.swo
    -rwx------ 1 user   sysadmins    0 Nov  8 15:39 .test.txt.swp

もちろん、エコーを介してファイルを生成すると、スワップファイルはありません。

    [user@rh-test]echo "this is test file" > test.txt

    /testing
    [user@rh-test]ls -la
    total 8
    drwx------ 2 root   root          4096 Nov  8 15:29 .
    drwx------ 9 root   root          4096 Nov  8 13:59 ..
    -rwx------ 1 user   sysadmins   18 Nov  8 15:29 test.txt

の出力は:set dir次のとおりです。directory=.,~/tmp,/var/tmp,/tmp

これはnfsマウントでのみ発生します/test。同じシステム上の他のローカルおよびnfsインストールにはこの問題はありません。

インストールオプション:

netapp-3240:/vol/vol0/test on /testing type nfs (rw,rsize=8192,wsize=8192,timeo=14,intr,addr=10.200.23.22)

nfsvers = 2に変更した後、動作を開始しました。

nfsvers=2 または nfsvers=3 – 使用する NFS プロトコルのバージョンを指定します。これは、複数のNFSサーバーを実行しているホストに役立ちます。バージョンを指定しない場合、NFS はカーネルと mount コマンドでサポートされている最も高いバージョンを使用します。このオプションはNFSv4ではサポートされていないため、使用しないでください。

netapp-3240-2:/vol/vol1/testing on /test type nfs (rw,rsize=16384,wsize=16384,intr,nfsvers=2,addr=10.200.23.22)

**

解決する:

この問題は、NetApp オプションが正しく設定されていないことに関連しています。この問題を解決するには、NetAppで「options cifs.ntfs_ignore_unix_security_ops on」オプションを設定する必要があります。 **

ベストアンサー1

メールの件名

この記事は2008年に発見されたので、古いようですが、あなたの問題と正確に一致しているようです。これはNetAppに固有のようです。あなたの出力で、サーバー名がnetapp-3240NetAppデバイスとして指定されていることがわかりました。

スレッドのタイトルは次のとおりです。LinuxとNFSでのNTFS qtreeの奇妙な動作。特に、あなたが経験しているのと同じ症状に言及しています。

問題の概要

抜粋

現在評価されているFAS3040ファイルマネージャは奇妙な動作を示しています。 NFSとCIFSからエクスポートされたNTFSスタイルのqtreeがあります。 Debian Linuxクライアントは、open()およびstat64()システムコールに関連する奇妙な動作を確認します。つまり、「vim」のstrace出力はそれをキャプチャします。

   uname({sys="Linux", node="acheron", ...}) = 0 
    stat64("ffff", 0xbfb4d030) = -1 ENOENT (No such file or directory) 
    stat64("ffff", 0xbfb4d0b0) = -1 ENOENT (No such file or directory) 
    access("ffff", W_OK) = -1 ENOENT (No such file or directory) 
    open("ffff", O_RDONLY) = -1 ENOENT (No such file or directory) 
    readlink("ffff", 0xbfb4c7cc, 1023) = -1 ENOENT (No such file or directory) 
    open(".ffff.swp", O_RDONLY) = -1 ENOENT (No such file or directory) 
    open(".ffff.swp", O_RDWR|O_CREAT|O_EXCL, 0600) = -1 EACCES (Permission denied) 
    stat64(".ffff.swp", {st_mode=S_IFREG|0777, st_size=0, ...}) = 0 

open(O_RDWR...) 呼び出しは EACCES で失敗しますが、次の stat64() 呼び出しは成功します。 open()呼び出しが失敗したと報告されていますが、ffff.swpファイルはまだディスクに作成されます。

この動作は、「vim」を使用してファイルを編集するときに発生し、スワップファイルの存在に関するエラーメッセージが表示されます(open()戻り値がスワップファイルが存在しないことを暗示してもスワップファイルが生成されるため)。 。

Tru64 NFSクライアントで同じ「vim」コマンドを試すと、正しい動作を確認できます。 open(O_RDWR...) が成功し、ファイルハンドルを返します。

nfsver=2

この問題を解決する提案があります。このスレッドが解決するのと同じ問題があるかどうかを確認してみてください。

抜粋

しかし、あなたの電子メールを受け取った後、vers = 2を試してみましたが、問題は消えました(TCPとUDPの両方で動作します)。これは本当に面白いです。ここのファイルとファイルシステムは非常に大きいですが、NFSv3はまだ理想的です。

エクスポートについては、次のようにします。

rw,intr,tcp,nfsvers=2,rsize=16384,wsize=16384,addr=192.168.1.1

cifs.ntfs_ignore_... オプション

スレッドで試してみることがもう1つあります。

ファイラでcifs.ntfs_ignore_unix_security_opsオプションをonに設定すると機能します。

また何ですか?

これに加えて、試すことができるいくつかの異なるタスクがありますが、試してみるNetAppファイラーにアクセスできないため、確認できません。 NetApp Webサイトには閲覧可能なURLがいくつかありますが、そのうちの1つも確認できません。

とにかく、このスレッドを見てください。 .swpファイルがないにもかかわらず、.swpファイルがあるという奇妙な主張の主なvim候補だと思われるからです。

おすすめ記事