2007年8月13日月曜日

Google Earthを Cドライブ以外にインストールする 3

Windows Server 2003 Resource Kit Tools に含まれる linkd.exe を使って、Google EarthCドライブ以外にインストールしてみました。

Japan on Google Earth

まず、Windows Server 2003 Resource Kit Tools から linkd.exe を取り出します。

  1. rktools.exe は自己解凍書庫なのでまずこれを解凍します。

    • 解凍ツールで解凍します。
    • 解凍できない場合

      1. %TEMP% の中のファイルを削除してきれいにします。(ファイル名を指定して実行 → %TEMP%)
      2. rktools.exe を実行します。
      3. %TEMP% にできた IXP000.TMP フォルダをほかの場所にコピーして、Setup Wizard をキャンセルします (Cancel→Exit→Finish)。
  2. ファイルを抽出します

    1. Cドライブに TEMP と言うフォルダを作り、解凍したrktools.msi, rktools_p.cab, rktools_s.cab の 3 つのファイルを入れます。

    2. 同じくCドライブにTEMP2 というフォルダを作ります。
    3. C:\TEMP をカレントフォルダにしてコマンドプロンプトを開きます。(ファイル名を指定して実行→CMD→cd "c:\TEMP")
    4. 以下のコマンドを実行します。

      start /wait msiexec /a rktools.msi targetdir="C:TEMP2" /qn

      C:\TEMP2Windows Server 2003 Resource Kit Tools が抽出できました。

  3. linkd.exe を見つけて、Path の通った場所 (例:C:\WINDOWS\system32) にコピーします。

    作業に使ったフォルダ類(TEMP等)は必要が無いので、捨てても構いません。

    ですが、TEMP2 に抽出した Windows Server 2003 Resource Kit Tools は、何かに使えるかもしれないので取っておいたほうが良いかもしれません。

linkd.exe の使い方

使い方は,コマンドプロンプトから linkd A B

A = 新しく作るリンク名 (B フォルダへのショートカット)

B = 元からあるフォルダ

というように使います。例えば

linkd "C:\Program Files\Google\Google Earth" "D:\Google Earth

とすると

D:\Google Earth が元からあるフォルダ本体

C:\Program Files\Google\Google Earth というリンクができる。

解除するには linkd "C:\Program Files\Google\Google Earth" /d とします。

実際に使う前に、シンボリックリンクが、どういうものか色々試してみました。

自分のマルチブートの環境では、どのパーティションのWindowsを立ち上げても、常にWindowsは"C"ドライブになっており、起動したWindowsから他のWindowsは見えないようになっています。

どのWindowsから見ても、ドライブ("D:\"とか"E:\")は同じパーティションを指します。

まず、"C:\HONTAI"(リンク元)が存在しない状態で
linkd "E:\LINKTEST" "C:\HONTAI"
としてみました。

Cannot create a link at:E:\LINKTEST

エラーが出て空の E:\LINKTEST フォルダができました。

Linux の ln コマンドは、リンクを張るだけなら可能なので、そこが少し違います。

今度は、"C:\HONTAI" というフォルダを作り、適当なファイルを入れて
linkd "E:\LINKTEST" "C:\HONTAI"
としました。

E:\LINKTESTというフォルダができました。全く普通のフォルダと同じで区別できませんが、Dirコマンドで見てみると 2007/08/08 13:37 <JUNCTION> LINKTEST となっておりリンクであることが分かります。

エクスプローラで中を見てみると、"C:\HONTAI" と全く同じでした。中のファイルを削除したり移動すると、"C:\HONTAI" のファイルも削除されました。アドレスバーは "E:\LINKTEST" と表示されています。

"C:\HONTAI" (本体)を削除して、"E:\LINKTEST" を見てみると、エラーになりました。

linkd "E:\LINKTEST" /d
とすると、E:\LINKTES は削除されますが、普通にエクスプローラからも削除できました。

しかし、試しにもう一つ、作ってあった、"E:\LINKTEST2" を linkd "E:\LINKTEST2" /d として削除しようとしたら The delete operation failed. とでて、削除できませんでした、色々調べましたが未だに理由が不明です。エクスプローラから削除しました。

削除したリンクを元に戻して、linkd.exeがインストールされていない違うWindowsを起動しました。

"E:\LINKTEST"をエクスプローラで見てみると、リンク先が無い旨のエラーが出ました。 "C:\HONTAI"を作ってもう一度見てみると、リンクされました。

今度は Linux からEドライブをマウントして、E:\LINKTEST を見てみましたら、中身が空っぽのフォルダでした。しかし Linux は通常 NTFS を読み書きできないので、この結果では何とも言えないかもしれません。

メモ

  • シンボリックリンクは『~へのショートカット』と同じだと認識しても良さそう。
  • linkd.exeはリンクを作るためだけに必要で、常駐する必要はない。
  • リンク元はあらかじめ存在してないといけない。
  • 64ビットOSでの動作確認
  • NTFSファイルシステム限定。
  • XPが扱えるのはディレクトリのみで、ファイルへのリンクは不可。
  • リンクはNTFSファイルシステムの機能で、Windowsの機能では無い。
  • NTFSファイルシステムの通常の機能なので、特別に危険なものでは無さそう
  • エクスプローラでは、リンクが全く普通のフォルダと同じに見えて区別できないので、アイコンを変えておいた方がよさそう。
  • VISTAでは最初からシンボリックリンクを作れるらしい

大体理解できたので、これをふまえて、Google Earth をインストールしてみました。