Hatena::ブログ(Diary)

今日もスミマセン。

Do you follow me?

2010-06-05

いちいち"/cygdrive/c"っていれるのが面倒なので、"/c"ってなるようマウントテーブルをいじる

※cygwin 1.7 以降

以下のような記述を、/etc/fstabあるいは/etc/fstab.d/(ユーザ名)*1に追加する。

none / cygdrive binary,posix=0,user 0 0

以下、この記述の説明です。

none
通常1番目のパラメタにはc:/hoge/fugaなどのWindowsネイティブなパスを指定する*2が、3番目のパラメタがcygdriveとなっている場合は何でもいいみたいです。
/
ドライブに割り当てられるプリフィクスです。/とすると、ルートディレクトリ直下に各ドライブがマウントされるようになります。
cygdrive
この行が、cygdriveプレフィクスの設定であることを示します。
binary,posix=0,user
各種オプションです。binaryは、ファイルアクセス時に改行コードの変換を行わない、posix=0は、ファイル名の大文字小文字を区別しない、userは、mountコマンドによる設定の上書きが可能であることを示しています。

なお、現在のプレフィクスの設定がどうなっているかは、mount -pコマンドで確認できます。


参考

Chapter 3. Using Cygwin

追記

最初の記事で、誤って以下のように記述してましたが、訂正しました。

c:/ /c cygdrive binary,posix=0,user 0 0

で、なぜ気づかなかったかというと、上記のように設定しているにもかかわらず、ちゃんと/にドライブがマウントされていたからでした。

なぜ上記のような記述で/にマウントされたのか?

原因は、fstabを変更する前に、mount --change-cygdrive-prefix /コマンドでプレフィクスを変更していたからでした。

mountコマンドはデフォルトでnouser、つまりユーザによる設定の上書きができない状態となります。(/etc/fstab.d/usernameファイルによるユーザ個別の設定の上書きを許さない)

また、mountコマンドの設定はcygwinのセッションが一つでも残っていると、その設定が保持されます。

逆に言うとmountコマンドの設定をクリアするためには、開いているすべてのcygwinセッションを閉じる必要があります。

前述の間違った設定で動作確認したとき、うまく行っているように見えたのは、mountコマンドでプレフィクスを変更して、かつ、cygwinのセッションを継続したまま新規cygwinセッションを開いて確認したためでした。

*1:このファイルはデフォルトでは存在しないので自分で作成する必要がある

*2:ただしパスの区切りは\じゃなくて/となっていることに注意

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/snaka72/20100605/1275733012
リンク元