タグのついた記事 windows

Windowsにおけるシンボリックリンクとジャンクション、そしてハードリンクを理解する

Windowsのファイルシステム(NTFS)にはシンボリックリンクとジャンクション、そしてハードリンクという機能がある。
UNIXには古くから導入されていたが、WindowsはハードリンクがWindows 3.1から、ジャンクションがWindows 2000から、シンボリックリンクがWindows Vistaから実装された。

それぞれ似た機能だがいくつかの違いがある。

ハードリンク

Windows 3.1から使える。
1つのファイルに複数の名前(パス)を付けることが出来る。

ファイルの中身は共用して名前だけを増やすので、コピーした場合と比べて

  • ディスク領域を節約できる。
  • 片方の名前で開いたものを更新すると、ほかの名前で開いたものにも自動的に反映される。

等のメリットがある。

ジャンクション

Windows 2000から使える。
ハードリンクとの違いは

  • ディレクトリにも張ることができる
  • ドライブをまたいで張ることができる
  • ハードリンクではすべての名前は対等なのですべての名前を削除するまでファイル本体が削除されることはないが、シンボリックリンクは別名に過ぎないので、本名を削除した時点で本体が削除されてしまい、別名で参照することもできなくなる。
  • リネームして同名のファイルを作り直すと、ハードリンクはリネームされたファイルを指し、シンボリックリンクは同名で作り直されたほうのファイルを指すようになる(ハードリンクの仕様はアプリケーションのバックアップファイルの作成方法によっては不便かもしれない)。

Windows 2000/XPではファイルシステム(NTFS)にリパースポイントという機能が追加され、このリパースポイントを利用してジャンクションというシンボリックリンクに非常によく似た機能がサポートされている。

シンボリックリンク

Windows Vistaから使える。
強化版ジャンクションであり、UNIXのシンボリックリンクと同一の機能を持つ。ジャンクションがシンボリックリンクの下位互換版だとしたら、これは「本物のシンボリックリンク」。
ジャンクションには以下の弱点があった

  • 標準ではファイルに張ることができない。
  • ネットワークドライブやUNCパス上のファイルには張れない。
  • 相対パスのリンクを作ることができない

が、シンボリックリンクではこれが解消されている。
Windows Vistaのシンボリックリンクもリパースポイントによって実装されているが、ジャンクションとはリパースタグ(リパースポイントの種類を識別する数値)が異なるため互換性がない。

なお、このツールでアクセスした場合、ネットワークドライブやUNCパス上のリンクをたどれないという制限があります。Windows Vistaのシンボリックリンクにネットワーク経由でアクセスするには、SMB 2.0を実装する必要があるようです。ただし、リンク先がネットワークドライブやUNCパスであるようなリンクでもリンク自体がローカルドライブにあればアクセスは可能です。

引用元/参考: リンク/ジャンクション作成ツール

Dropboxと組み合わせて使う

これらのファイルシステムの機能をファイル同期/共有/版管理ツールDropboxと一緒に使うと便利である。

が、残念な事にいくつかの制限がある。主に障害を起こす要因は、「Dropboxフォルダ内のファイルの実体は版別にApplication Dataフォルダにキャッシュされている物」というDropboxの仕様である。

例えば、何らかのファイルに対してハードリンクをDropbox外からDropbox内に張っても、一見うまくいったように見えて最初の1回以降は同期をしてくれない。

これは実際に外側にあるファイルのプロパティを見てみればわかるが(要Link Shell Extension)、ハードリンクで生まれた別名リンクの実体がDropboxフォルダではなくDropboxの版別キャッシュフォルダ(Application Data内)に配置されてしまっているからである。

僕が試した限り、逆向きにハードリンクを作っても同じだった。

片方がVista、片方がXPという環境なので(少なくとも純正のドライバでは)シンボリックリンクが使えず、ジャンクションはファイル単位で張れないという仕様が今回の用途では問題なので、ひとまずここで不完全燃焼のまま検証を終了した。

進展があればまたこのブログで報告したい。

追記:
シンボリックリンクを作った後にDropboxの再起動が必要だということがわかった。これで、USBメモリ上のファイルをDropboxでバージョン管理&バックアップするといった特殊な使い方も可能になる。
参考: 吾輩はブログである。名前は未だ無い: Dropbox を使う際の注意

コメントを書く

Windowsでどのアプリがどのポートを使っているか確認したい時はコマンドラインもいいけどFree Extended Task Manager

Free Extended Task Managerというソフトを使うと一覧が出る。

System Explorerでもいいけど。

コメントを書く

VistaでUACを切ったり入れたりしつつWhiteBrowserを使っていたらインデックス情報が消えたが解決

UACを入れている環境から切っている環境に移行しようとすると、WhiteBrowserの設定が全部初期化されることがある。

だが、これはUACの仕様で以前の設定ファイルが待避されているだけなので、焦らず下記の操作をすれば良い。

とりあえず、Program FilesにあるWhiteBrowserのフォルダを開いて、ツールバーにある「互換性フォルダ」というボタンがあればクリックする。

中のファイルをコピーして、実体フォルダにペースト上書きすれば回復する。

コメントを書く

GOM Playerでやけに低音が強調される・・・イコライザはいじってない→ffdshowミキサーが原因

チルノのパーフェクトさんすう教室をGOMで聴いていて、明らかに低音に寄ってるので何かの間違いでイコライザを入れてしまったのかと思ったが入ってない。早速ぐぐるとffdshowを入れた環境でミキサーがONになっていると起きる現象らしい。早速スタートメニューからffdshow audioの設定画面を開いてミキサーのチェックを外すと籠もらなくなった。

コメントを書く

VistaのQuick Launchの設定方法

VistaのQuick Launchでアイコンの大きさやボタン名の表示の有無を設定するには、一度タスクバーの固定を外し、十字マークが出るぶつぶつになった部分で右クリックする。

コメントを書く

Googleガジェットを削除する方法

VistaならDocument>Google ガジェットの中の.ggファイルを削除する。
なぜかGoogleデスクトップのインターフェイス上からは削除出来ない。

コメントを書く

Windows Vistaでショートカットを作成するとき「~のショートカット」を最初から付けなくするには

  1. Win+Rでレジストリ エディタを起動
  2. HKEY_CURRENT_USER→Software→Microsoft→Windows
    →CurrentVersion→Explorerとたどり、「link」を編集
  3. 以下の画像の状態にして、OK、その後タスクマネージャからexplorer.exeを再起動させる。

Regedit

コメントを書く

CentOSからWindowsのディレクトリをcifsでマウントする(VMware環境)

  1. まず入ってるはずだけど、無ければsamba-clientをyumでインストール
  2. cat /etc/resolv.conf でゲスト(CentOS)から見たホスト(Windows)のIPを確認
    (ちなみにここはVMwareのゲスト側で使用するネットワークをNATにした僕の環境の場合)
  3. echo 0 > /proc/fs/cifs/LinuxExtensionsEnabled を実行(CIFS拡張機能?の無効化 少なくとも僕の環境では、こうしないと”mount error 20 = not a directory”とかいうエラーが出てきてマウント出来なかった
  4. mount -t cifs “//HostIP/HostDirectory” “LocalMountDirectory” -o username=foo
    を実行 (HostIPやHostDirectory,LocalMountDirectory,usernameは環境に合わせて変更)
  5. 必要ならパスワード入力
  6. 完了!

コメントを書く

Linuxではファイル/ディレクトリ名の大文字/小文字を区別する

Windowsではしない

知らなかったのでメモ

コメントを書く

Gavotte Ramdiskを導入した

Vista Gavotteで検索して出てきた手順で入れてみた。
手順としては、

  1. ram4g.regを実行
  2. ramdisk.exeを管理者として実行
  3. 1GBぶんをデフォルトの設定で作成
  4. 再起動

超簡単だった。
とりあえずFirefoxのキャッシュフォルダとPhotoshopのキャッシュフォルダとして利用。
微妙に早くなったような気がするようなしないような。

コメントを書く

古い投稿 »