スペースを含んだフォルダにインストールできない

Windows 版の POPFile (0.22.0 以降)をインストールしようとしたときに、「'C'ドライブにインストールするには、スペースを含まないフォルダを選択してください」というエラーが発生する場合があります。

問題の発生する技術的背景

バージョン 0.21 のリリースまでは、POPFile の設定データはいつもプログラムと同じフォルダに保存されていました。バージョン 0.21 のリリースにおいて、少し制限のあるマルチユーザ機能が導入され、設定データを別に保存することができるようになりました。POPFILE_ROOT と POPFILE_USER 環境変数が POPFile プログラムとユーザごとの設定データ('ユーザデータ')の位置を定義するために使われます。

インストーラは POPFile が起動する前にこれらの環境変数が正しく設定されていることを確認します。POPFile は短い形式のファイル名(8.3 形式の名前)に制限されませんが、これらの環境変数にスペースを含んでいると正しく動作しません。インストーラは、この問題を単純に解決するため、これらの環境変数に短い形式のファイル名(SFN)を使用します(SFN 形式の名前はスペースを含みません。例えば、'C:\Program Files\POPFile' の SFN バージョンは、通常 'C:\PROGRA~1\POPFILE' です)。

デフォルトでは、Windows システムは SFN フォーマットをサポートしていますので、長い形式のファイル名(LFN)を使ったファイルが作られるときにはいつも Windows はこのファイルのための固有の SFN 形式のエイリアスを作成します。このため POPFile がどこにインストールされるかは問題にはなりません。しかしながら、この SFN サポートが無効になっているシステムもあるため、バージョン 0.22.2(またはそれ以降)のインストーラは SFN がサポートされているかどうかを確認し、もしそれが無効になっていれば以下のようなメッセージを表示するでしょう:

  • 「'C'ドライブにインストールするには、スペースを含まないフォルダを選択してください」

NTFS ベースのシステムにおいて、これらの SFN 形式のエイリアスを作成することは若干のオーバーヘッドでしかありませんが、多くの似たような名前のファイルがフォルダの中に存在する場合、このオーバーヘッドは顕著になります。このため、多くの Windows の調整/高速化ユーティリティは SFN サポートを無効化します。このことはほとんどの Windows ソフトウェアにとっては問題ありませんが、いくつかのソフトウェア(ほとんどは古めのプログラム)には悪影響を及ぼします。

以下は、マイクロソフト社の Windows XP リソースキットからの情報です:

  • “Although disabling 8.3 name creation increases NTFS performance under Windows XP Professional … some third-party programs cannot be installed on NTFS volumes if 8.3 names are disabled.”
  • 「Windows XP Professional において、8.3 形式の名前を作成することを無効にすることにより NTFS パフォーマンスを向上させることができますが … いくつかのサードパーティのプログラムは 8.3 形式の名前が無効になっていると NTFS ボリュームにインストールすることができなくなります。」

解決方法

  • 新しくインストールする場合、最も簡単な方法はスペースを含まないパスに POPFile をインストールすることです。インストーラは指定されたパスが存在しない場合は作成します。
  • すでにインストールされているバージョン 0.21 あるいはそれ以降(SFN サポートが無効化されるまえにインストールされたもの)からアップグレードする場合、SFN サポートを再度有効にすることによってアップグレードが可能となるでしょう。
  • すでにインストールされているバージョン 0.21 以前からアップグレードする場合、SFN サポートを有効にすることによってインストーラを使ってアップグレードすることができるでしょう。
  • すでにインストールされているものをアップグレードする場合、SFN サポートを無効にしたまま、既存の POPFile フォルダ(バージョン 0.21 以降であれば、'ユーザデータ' フォルダも)をスペースを含まない新しい場所に移動させます。そして、インストーラを起動させてアップグレードを行う際に、これらの新しい場所を指定します。

POPFile のアップグレードをおこなったあと、SFN サポートを無効にすることができます(下記の「追加情報」を参照)。

SFN サポートを有効にする方法(Windows XP の場合)

Windows XP では fsutil コマンドを用いて SFN サポートを有効にすることができます。

コマンドプロンプトを開き、

fsutil behavior set disable8dot3 0

と入力します(最後にエンターキーを押してください)。

fsutil ユーティリティについての詳細は、 Microsoft Windows XP - Fsutil (英語) を参照してください。

参考:

SFN サポートを有効にする方法(Windows 2000 の場合)

Windows 2000 では、設定変更のためにレジストリを修正する必要があります(レジストリを誤って修正してしまうと、様々な問題が起こる可能性があります。十分注意して下記の指示に従ってください。また、これらの操作については自己責任にて行ってください)。

  1. レジストリエディタ(regedit)を起動します(「スタート」メニューから「ファイル名を指定して実行」を選択し、「regedit」と入力して「OK」をクリックします)。
  2. HKEY_LOCAL_MACHIME\SYSTEM\CurrentControlSet\Control\FileSystem を開きます。
  3. NtfsDisable8dot3NameCreation という項目がありますから、この値を「1」から「0」に修正します。
    1. NtfsDisable8dot3NameCreation を右クリックして、「修正」を選択します。
    2. 「値のデータ」欄に「0」を入力して「OK」をクリックします。
  4. レジストリエディタを終了して(ウィンドウを閉じて)、マシンを再起動します。

参考:

追加情報

SFN 作成を無効にすることによるパフォーマンス向上を続けたい場合は、POPFile をインストールしたあとに SFN を無効にすることができます。一度 SFN が作成されれば、SFN 作成が無効にされたとしても POPFile は正常に動作します。しかしながら、次に POPFile をアップグレードしようとしたときにも同じ警告が表示されるでしょう。インストーラはすでに SFN が存在するかどうかを調べることができず、SFN サポートが有効か無効かだけしかわかりません。このため、(POPFile をアップグレードするために)もう一度 SFN を有効にする必要があります。

参照:

英訳版

トラブルシューティング

ハウツー : Windows 環境で POPFile を使う

 
jp/troubleshooting/disable8dot3.txt · Last modified: 2008/02/08 19:49 by 127.0.0.1

Should you find anything in the documentation that is incomplete, unclear, outdated or just plain wrong, please let us know and leave a note in the Documentation Forum.

Recent changes RSS feed Donate Driven by DokuWiki
The content of this wiki is protected by the GNU Fee Documentation License