Feb 01, 2013

Janetter2 の未読管理データベースを持ち歩く(その2)

前回の記事の続編。

会社PCと自宅PCの両方で使っているJanetterの未読管理データベースを同期させるため、データベース保存先を外付HDDに変更して持ち歩いてしまおう。
データベース保存先の変更は、Link Creation Shell Extension(リンク作成シェル拡張)というToolを使って、ドラッグ&ドロップでジャンクションを張ってしまおう。

というのが前回のお話。
実際、会社PC(Windows XP Pro SP3)では、この方法で上手くいったので前回の記事をupしたのです。

しかし、自宅PC(Windows 8 Pro)で同じ方法でジャンクションを張ろうとしたところ、ジャンクションは張れているのにJanetterの起動に失敗する、という事態が発生しました。

要するに、前回と全く同じ方法でやってるつもりで、大事なことをひとつ忘れていただけなのですが、その大事なことを忘れるとハマる、ということで備忘録として追加メモ。

ジャンクション設定の際の注意事項

注意事項は下記2点。

  1. ジャンクションのリンク先フォルダは事前に作成しないこと!
    ※既存フォルダをジャンクションのリンク先フォルダに指定してもジャンクションが設定されません。

  2. ジャンクション先設定後、ジャンクションのリンク先フォルダ内に Janetterファイル群をコピーする前に、一度Janetterを起動/終了しておくこと!
    ※Janetterの起動に失敗します。一度起動/終了させてからコピーすれば大丈夫。

今回のミスは2点目の注意点が原因でした。

おまけ:Windows 8 におけるシンボリックリンクの設定方法

前回の記事に「ジャンクション=シンボリックリンク」というようなことを書いたが、正確に言うと両者は別物らしい。

Windowsのファイルシステム(NTFS)にはシンボリックリンクとジャンクション、そしてハードリンクという機能がある。
UNIXには古くから導入されていたが、WindowsはハードリンクがWindows 3.1から、ジャンクションがWindows 2000から、シンボリックリンクがWindows Vistaから実装された。
※Windows 3.1から→Windows NT 3.1からの誤りらしい。(同記事コメント欄指摘)

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

ちなみに、UNIXのシンボリックリンクと同等の機能を持つのは、Windows Vista以降のシンボリックリンクで、ジャンクションで出来なかったことも出来るようになっているようだ。

いずれにせよ、会社PCはWindows XP Pro SP3だから、ジャンクションで設定して正解だったということだ。 だが、自宅PCはWindows 8 Proだ。せっかくだからジャンクションでなくシンボリックリンクで設定しておくことにした。

設定方法は次の通り。

  1. 管理者権限でコマンドプロンプトを起動

  2. コマンドプロンプト上で「mklink」コマンド+「/d」オプションを使ってシンボリックリンクを作成

  3. 注意事項は上記の「ジャンクション設定の際の注意事項」と同じ

以下、参考記事。

Windows8のコマンドプロンプトを管理者で起動方法は面倒くさい!! (簡単に起動する方法アリ) | アシマネのIT奮闘日記

mklink | Windows Server Command-line Reference