Debian Squeeze システムを実行していて、/etc/fstab に Windows 共有をマウントしようとしています。既存の cifs マウントは動作していますが、単純な //xx.xx.xx.xx/sharename の状況です。ただし、この 2 番目のものは動作しません。
問題は、2 番目の共有のパスに空白スペースが複数あることです。
fstab の行は次のとおりです:
//servername.org.au/ABC/Company Services/Department Services/Area Services/Restricted /mnt/n-drive cifs id=0,credentials=/etc/samba/login.crt,iocharset=utf8,noperm 0 0
これまで試したこと:
fstab 内のパス名を二重引用符で囲む
//servername.org.au/ABC/"Company Services/Department Services/Area Services/Restricted" /mnt/n-drive cifs id=0,credentials=/etc/samba/login.crt,iocharset=utf8,noperm 0 0
スペースを \040 に置き換える (Linux のように)
//servername.org.au/ABC/Company\040Services/Department\040Services/Area\040Services/Restricted /mnt/n-drive cifs id=0,credentials=/etc/samba/login.crt,iocharset=utf8,noperm 0 0
バックスラッシュでエスケープ
//servername.org.au/ABC/Company\ Services/Department\ Services/Area\ Services/Restricted /mnt/n-drive cifs id=0,credentials=/etc/samba/login.crt,iocharset=utf8,noperm 0 0
どれも機能しませんでした。
ディレクトリが有効であることを確認しました。servername.org.au を解決先の IP に置き換えてみましたが、それでも効果はありませんでした。
kern.log に表示されるエラーは次のとおりです:
カーネル: [1830446.002198] CIFS VFS: cifs_mount が失敗しました (戻りコード = -22)
以上です。詳細は特にありません...
両方のマウントにまったく同じ構文と資格情報を使用しています。資格情報が有効で動作していることはわかっています。Windows ボックス上の同じ共有に接続するために使用しているためです。共有名を変更したいのですが、残念ながらそれは私のサーバーではないため、変更できません。
それで、この 2 つのデニッシュを頭の横に固定してこう言います。
助けてください、Obi-Stack-Exchange! あなただけが私の希望です!
前もって感謝します!
(編集: 例の 1 つで誤った引用符を削除しました)
答え1
スペースを に置き換えるのが、\040
実際には正しい方法です。
うまくいかない理由は、おそらく、次の後に引用符(忘れられた?)があるためです/Restricted
。
//servername.org.au/ABC/Company\040Services/…/Restricted" /mnt/n-drive cifs id=0,credentials=/etc/samba/login.crt,iocharset=utf8,noperm 0 0
次のように変更します。
//servername.org.au/ABC/Company\040Services/…/Restricted /mnt/n-drive cifs id=0,credentials=/etc/samba/login.crt,iocharset=utf8,noperm 0 0
(読みやすくするためにパスを少し短くしていることに注意してください。)
背景: 040
8 進数システムにおけるスペースの ASCII コードです。