Windows 7仮想フォルダー?


16

Steamをインストールしました。Steamはc:\ Program Files \ Steamにインストールされます。Steamは、さまざまなゲームをSteamAppsと呼ばれるサブフォルダーにダウンロードします。利用できる唯一のオプションは、steamがSteamと同じ場所にアプリをダウンロードしてインストールすることです。典型的なセットアップは次のようになります。

C:\Program Files\Steam\SteamApps\common\Game1
C:\Program Files\Steam\SteamApps\common\Game2
C:\Program Files\Steam\SteamApps\common\Game3
C:\Program Files\Steam\SteamApps\common\Game4

等。

私のドライブCはSSDなので、スペースが問題です。Game1は非常にディスクを集中的に使用するため、ドライブCに残す必要がありますが、Game2とGame3をインストールするテラバイトのスペースがあります。

「Game2」という名前の仮想フォルダーを作成して、私の大きなハードドライブを実際に指し示し、Steam(または任意のアプリ)がドライブCの場所を参照できるように作成する方法はありますかドライブDに実際にアクセスしていたことにも気付きました。仮想フォルダが指す場所はどこですか?

したがって、最終的にはC:\ Program Files \ Steam \ SteamApps \ Common \ Game2はフォルダーとして存在しますが、実際にはD:\ Games \ Game2にマップされます。


1
同じ「問題」を自分で持ってください。私がしているのは、現在プレイしていないゲームのバックアップを作成し、ローカルコンテンツを削除することです。もう一度プレイしたい場合は、メニュー「スチーム->バックアップと復元」に移動して、それらを復元します。そうすれば、再インストール時にすべてのデータを再度ダウンロードする必要はありません。ただし、ゲームを別のディスクに配置することはできません。
T. Kaltnekar

1
また、優れた「Windowsのリンクの種類」superuser.com/a/347946/24500-surfasb
1


1
さらに良い...以下の新しい回答で詳細を説明しました。ご覧ください。
フラクディネンノ

回答:


21

以下を試してください:

管理者権限でコマンドプロンプトを開きます。

mklink / D Virtual_Folder_Here Real_Folder_Here

たとえば、D:\ Gamesに何かをインストールしたいが、C:\ Gamesとして表示したい場合。

mklink / DC:\ Games D:\ Games

これにより、C:\ Gameとしても表示されるフォルダーD:\ Gameが作成されます。C:\ Gameを参照するものはすべてD:\ Gameにリダイレクトされます。

私は完全にSteamに精通していないため、正確なフォルダーに一致する例を示していません。Steamでインストール先のフォルダを選択できる場合(他のドライブにインストールするだけでなく、そうするかどうかはわかりません)、シンボリックリンクを最初に作成できます。ただし、そうでない場合は、いくつかのファイル転送を実行し、新しい場所に移動してからシンボリックリンクを作成する必要があります。例:

Steamは次の場所にゲームをインストールしました:C:\ Program Files \ Steam \ SteamApps \ common \ Game2

次に、フォルダを作成します:D:\ GameGoesHere

次に、元のフォルダーからすべてのファイルをコピーしてD:\ GameGoesHereに配置し、リンクを作成できます。

mklink / D "C:\ Program Files \ Steam \ SteamApps \ common \ Game2" "D:\ GameGoesHere"

今回は「Program Files」の間隔のために引用符を使用したことに注意してください。また、リンクを作成する前に、仮想フォルダーが実際のフォルダーであってはならないことに注意してください。したがって、リンクにしたいフォルダーが存在する場合は、最初にそれを削除する必要があります(もちろん、コピーする前ではありません!)


9

回答:このソリューションが機能する理由(および方法)


このスペースを再利用する必要がある場合、または使用を別のドライブに再配置する必要がある場合は、いくつかの素晴らしいオプションがあります

次のような新しい保管場所に安全に移動できます...

  • ローカル/ライブストレージ
  • オンラインストレージ
  • ニアラインストレージ
  • オフラインストレージ

... 古い場所がNTFSで新しい場所である限り

  1. されるSMBベース
  2. Windows LANmanに準拠-シンボリックリンクを使用して/ネットワークサーバー/デバイスに再配置したい場合(下記を参照)
  3. 次のようなツールを使用して、既存のファイルシステム/ " My Computer"に追加/割り当てできます。
    • DOS / Windowsシェルassignコマンド
    • Windows「コンピューター管理」(compmgmt.msc
  4. ドライブ文字または他のマウントポイント/ディレクトリにマウントできます

したがって、本質的には今日(2014-05-02)の時点で、私たちは次のことについて話しています。

  • 別のライブ(マウント済み)パーティション
  • FATやNTFSなどのライブファイルシステムを備えた光ディスク(CD、DVDなど)
  • 外付けハードドライブ
  • USBドライブ
  • ネットワークドライブ

    注意:

    メディアの入力を求められたり、ファイルの欠落/場所の欠落に関するエラーが表示されたりした場合、ドライブ/メディアがまだライブパーティションでない場合は、必ずドライブ/メディアを再マウント/再挿入してください。

10回中9回、これが当てはまります。

したがって、これは非常に簡単であることがわかり、いくつかの優れたオプションから選択することができ、率直に言って、ほぼ同じ結果が得られます。

  1. 新しい場所へのディレクトリジャンクションを作成します。

    • ジャンクションにより、1つのディレクトリが別のディレクトリを指すことができます。
    • ジャンクションはローカルストレージでのみ使用できます
    • これらは、ファイルシステムテーブル(FSTAB)のエイリアスエントリとしてファイルシステムレベルで認識されます。
      • したがって、OS自体を含むすべてのプログラムに対して透過的です。
      • つまり、別の場所(ショートカットなど)を指すだけのファイルとは見なされないため、常に問題なく機能します。
    • ジャンクションは、ファイルへの絶対参照のみを持つことができます。そのため、ジャンクションを含むディレクトリ構造全体を、構造を完全にそのままにして移動した場合でも、ジャンクションを再作成する必要があります。
    • ジャンクションには任意の名前を付けることができます。つまり、ポイントしているフォルダーと同じ名前を反映する必要はありません。
  2. 新しい場所へのシンボリックリンクを作成します。

    • シンボリックリンクは、他のファイルシステムオブジェクトを指すファイルシステムオブジェクトです。
    • これらはジャンクションに似ており、再解析ポイントです。
    • ただし、一部のプログラムでは、まれに認識されないことがあります(Windowsの特別なフォルダーの場合もあります)。
    • ただし、以下の点でより柔軟性があります。
      • シンボリックリンクは、絶対参照または相対参照として作成できます。
      • SMB / LANmanネットワークの場所(Windowsサーバー、SMBデバイスなど)を指すために使用できます。

手順:


そのため、ファイルとフォルダーを新しい場所に移動してから:

  1. OPTION1(ネイティブ):組み込みのWindows Vista / 7/8コマンドとcmdプロンプトを発行するだけです:

    • ジャンクション(ディレクトリへの「ハード」リンク)を作成します。

      mklink /J <oldpath> <newpath>
      
    • シンボリックリンク(ディレクトリへの「ソフト」リンク)を作成します。

      mklink /D <oldpath> <newpath>
      
  2. オプション2(ツールを使用):素晴らしい代替手段は、私が長年使用してきた「Link Shell Extension」(LSE)(またはGoogle it)と呼ばれる無料の便利なユーティリティです。

    ダウンロード、アンパック、実行のみ(インストールなし)

    LSEでは、次のものを作成できます。

    • シンボリックリンク
    • ハードリンク
    • ジャンクション
    • スマートコピー
    • スマートクローン
    • スマートミラー
    • スマートな動き
    • スプライス
    • 複数のソース
    • そして、率直に言って、私が決して使用しない他のものの束

    これは見事な無料の製品で、Windowsエクスプローラーのコンテキストメニューを作成し、LINK-TARGETフォルダーを右クリックして、実際のリンクを作成する場所にドラッグします。

    あなたはもちろん可能リンクの名前を変更するには、あなたが好きなもの


8

衝撃的なことに、ありますただ、このためのツール 7 .ITが本当にやって巧妙に偽装方法です窓で働く非常に同じ問題、解決するために設計と呼ばれる蒸気ムーバー、シンボリックリンクを簡単に。基本的には、ファイルを自動的に移動してシンボリックリンクを作成するため、C:では、すべてがSteamが期待する場所にあるように見えますが、実際には他の場所にあります。

MSはこれらのバージョンのWindowsとのシンボリックリンクを追加したため、これはWindows 7およびVistaでのみ機能することに注意してください


1
そのプラットフォームにリンクされたWin2Kリソースキットユーティリティ、またはWinXPのSysinternalsツールジャンクションを使用できます。ただし、質問にはあまり関係ありません。
パトリックシーモア

1
@Patrick:技術はわずかです。Linkdはシンボリックリンクを作成しませんが、ディレクトリジャンクションを作成します。
surfasb

2
ジャンクションは、同じドライブ内でのみ機能すると思います。古いシステムのためのシンボリックリンクに最も近いものは、私は信じているフォルダとしてドライブをマッピングする狡猾の使用である
ジャーニーマンオタク

1
とにかくもうwin2kを使用している@surfasbはどうですか?:)(悲しいことに、私たちはそうします。)
パトリックシーモア

1
@JourneymanGeek:いいえ、ジャンクションはローカルボリューム全体で機能します。むしろ、ボリュームにまたがらないハードリンク。
surfasb

0

ジャンクションは、ソースとターゲットのディスクに関係なく、NTFSフォルダーを指すことができます。

WinXPジャンクションは、直接接続されているNTFSパーティションで動作するため、同じディスク上にあるか、異なるディレクトリにあるかに関係ありません。

そのため、ジャンクションを持つことが最善の解決策です(記号はいくつかの問題を引き起こす可能性があります)。

これを行うために私はそれをたくさん使います:

  • システムパーティション(通常はC :)に、USBディスク(SSD、HDD、ペンドライブ、メモリカードなど)のパーティション上のフォルダーを指す「仮想」フォルダーをいくつか用意します。

したがって、外部メディアにいくつかのアプリケーションデータを保持し、複数のPCに対して1つのコピーのみを保持できるため、同期などを行う必要はありません。もちろん、同時に1つのPCのみがそれを表示します。

また、ジャンクションは、veraCryptなどによって暗号化されたNTFSパーティション上のフォルダーを指すことができます。

ジャンクションに必要なものは3つだけです。

  • ソースパーティションはNTFSである
  • 宛先パーティションはNTFSである
  • 両方のパーティションはローカルです(PCに物理的に接続されています)...これは常に必要ではありません。FTPをローカルドライブとして配置し、NTFSとして認識できるようにするツールがあります。それに

つまり、ジャンクションはソースとターゲットをNTFSパーティション内に配置する必要があるということです。

  • XPの場合、と呼ばれるSysInternalsツールを使用してjunctionください:リンク:TechNet Junctionダウンロード
  • 7〜10の場合はmklink/jパラメーター付きのネイティブツールを使用します。

どちらもコマンドラインツールであり、ほとんどの場合、管理者権限が必要です。

ジャンクションは最も簡単な方法ですが、唯一のものではありません。

  • 別のディスクのNTFSフォルダーにマウントされたNTFSパーティションを使用できます
  • VHD / VHDXファイルを作成し(XPとVistaではツールが必要、7〜10はディスク管理でネイティブに実行)、その中に1つ以上のパーティションを作成し、NTFSフォルダーにマウントできます。

VHD / VHDXのトリックにより、動的ストレージも使用できるため、サイズのGiBを心配する必要はありません。

  1. ダイナミックモードでVHD / VHDXを作成し(仮想ディスクに割り当てられたすべてのサイズがファイルのサイズになるわけではありません)、必要なだけ与えます(VHDは2TiB未満に制限され、VHDXの制限は64TiBです)。ただし、FAT32ではファイルサイズが4GiB未満に制限されているため、NTFSで作成してください。
  2. 仮想ディスクをMBRまたはGPTとして初期化します(必要に応じて、MBRは4つを超えるプライマリパーティションをサポートせず、2TiBに少し制限されます。GPTは8ZiBに制限されますが、Windows XPはGPTドライブを認識できません)ウィキペディアのその制限に関する詳細情報を参照してください:en.wikipedia.org/wiki/GUID_Partition_Table
  3. 必要に応じて仮想ディスクをパーティション分割します
  4. 必要なパーティションにフォーマットNTFSを与えます
  5. あるフォルダー(別の場所に配置したいフォルダー)のデータを移動する必要がある場合、その新しいパーティションを任意の文字として一時的にマウントし、データをそこに移動してマウントを解除します...ただし、移動した場所からフォルダーを削除しないでください内容。
  6. そのフォルダーにそのパーティションをマウントします

また、$ MFTには、できる限り小さくするためのトリックがあります(ISOなどを保持するために大きくて非常に大きなNFTSパーティションを作成する場合、非常に重要です...それぞれが実際に大きなサイズの1000ファイル未満)。

  • これの基本は、初期の$ MFTサイズをできるだけ小さくすることです
  • ファイルを追加してスペースが足りない場合は、$ MFTが大きくなるため、ファイルを追加できなくなることを恐れないでください。
  • これはパーティションを作成する通常のネイティブな方法であり、まったくリスクはありません
  • この方法ですべてのNFTSパーティションを作成しないという動機はありません(わかります)。

手順は非常に簡単です。

  1. 8MiBのみ(ギガではなくメガバイトなど)でパーティションを作成し、通常のNTFSを作成するにはサイズを小さくします... NTFSはサイズを小さくできますが、完全なNFTSではないため、奇妙な動作をします。
  2. 必要な実際のサイズに拡大します

これらの手順は1つのことを行います。

  • パーティションが作成されると、$ MFTは本当に小さくなります(パーティションのサイズは8MiBしかないため)

必要なフルサイズでパーティションを作成する場合、$ MFTはパーティションサイズの12.5%になります(デフォルトで、可能な限り)。そして、私はそのパーセントを減らす方法も、作成後に$ MFTサイズを減らす方法も知りません。その割合は、一部のウィンドウでNtfsMFTZoneReservationレジストリキーに触れるほど大きくなる可能性がありますが、決して小さくなることはありません。Microsoftサイトで$ MFTスペースがどのように予約されているかを確認できます。NTFSがマスターファイルテーブル(MFT)用にスペースを予約する 方法

NTFSパーティションのサイズを大きくしても、$ MFTサイズには影響しません。したがって、可能な限り小さな$ MFTサイズの巨大なNTFSパーティションを作成するには、パーティションを8MiBとして作成し、作成後に必要なサイズに拡張します。

これは、動的なVHD / VHDXを使用するのに最適です。なぜなら、$ MFTのスペースをまったく使用しないからです。つまり:

  • 8MiBのNTFSを作成し(クイックフォーマットモードで実行することを忘れないでください)、1.5TiBに成長すると、それを保持するファイルVHD / VHDXは小さくなり、はるかに小さくなります
  • VHD / VHDX内に1.5TiBパーティションを直接作成する場合、それを保持するファイルVHD / VHDXはより大きくなります。

Windows 10 Home 64Bitsで行われたテスト:

  • 8MiGのNTFSパーティションを1つ作成して(クイックフォーマットで)1.5GiBに拡大した1.8TiBの動的VHD ... VHDサイズは15.6MiB
  • 1.5GiBの(クイックフォーマットで)作成された1つのNTFSパーティションを備えた1.8TiBの動的VHD ... VHDサイズ:107MiB

ほら、10倍です。私はそれが100メガバイトについてあまり話していないことを知っています...しかし、あなたがVHD / VHDXファイルの多く(それらの数千)を使用する場合、そのようなファイルの1000は、 100GiB近く。また、VHDXとZetaBytesのサイズでは、このような大きな違いがあります。

注:1.5TiB(1572864 MiB)の正確なサイズの同一のパーティションを作成できるようにするために、1.8TiBのディスクサイズについて説明します... Xのディスクサイズを入れた場合、パーティションはX未満になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.