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.

4 ответа4

21

Попробуйте следующее:

Откройте командную строку с правами администратора:

mklink /D Virtual_Folder_Here Real_Folder_Here

Например, вы хотите установить что-то в D:\Games, но хотите, чтобы оно отображалось как C:\Games.

mklink / DC:\Games D:\Games

Это создаст папку D:\Game, которая также отображается как C:\Game. Все, что ссылается на C:\Game, будет перенаправлено на D:\Game.

Поскольку я не совсем знаком с паром, я не привел пример, который точно соответствует вашей папке. Если steam позволяет вам выбрать папку, в которую он устанавливает (что из-за того, что вы не просто устанавливаете его на другой диск, я не уверен в этом), вы можете сначала создать их символическую ссылку. Однако, если это не так, вам может потребоваться выполнить передачу файлов, переместить его в новое место и затем создать символическую ссылку. Пример:

Steam установил вашу игру в: C:\Program Files\Steam\SteamApps\common\Game2

Теперь вы создаете свою папку: D:\GameGoesHere

Затем вы копируете все файлы из исходной папки и помещаете его в D:\GameGoesHere, после чего вы можете создать ссылку:

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

Обратите внимание, что на этот раз я использовал цитаты из-за пробелов в «Программных файлах». Также обратите внимание, что перед созданием ссылки виртуальная папка НЕ должна быть реальной папкой. Таким образом, если папка, на которую вы хотите сделать ссылку, существует, вы должны сначала удалить ее (конечно, не перед тем, как скопировать!)

9

ОТВЕТ: Почему (и как) это решение работает


Если вам нужно освободить это пространство / переместить использование на другой диск, у вас есть несколько отличных вариантов

Вы можете безопасно переехать в любое новое хранилище, например ...

  • локальное / живое хранилище
  • онлайн-хранилище
  • ближний склад
  • автономное хранилище

... только если ваше старое местоположение - NTFS, а новое -:

  1. основано на SMB
  2. соответствует Windows LANman - если вы используете символические ссылки / хотите переместить на сетевой сервер / устройство (см. ниже ()
  3. может быть добавлен / назначен существующей файловой системе / « My Computer » с помощью такого инструмента, как:
    • команда assign оболочки DOS / Windows
    • Windows "Управление компьютером" (compmgmt.msc)
  4. можно подключить его к букве диска или другой точке монтирования / директории

Итак, по сути, на сегодня (2014-05-02) мы говорим о:

  • другой живой (смонтированный) раздел
  • оптический диск (CD, DVD и т. д.) с работающей файловой системой, такой как FAT или NTFS
  • внешний жесткий диск
  • USB-накопитель
  • сетевой диск

    НОТА:

    Если и когда вас попросят указать носитель или вы получите какие-либо ошибки об отсутствующих файлах / отсутствующем местоположении, вы просто убедитесь, что перемонтировали / заново вставили диск / носитель, если он еще не является активным разделом.

,

9 из 10 раз, это будет иметь место:

Таким образом, вы обнаружите, что это очень просто, и у вас есть несколько отличных вариантов на выбор, которые, честно говоря, дают примерно одинаковые результаты:

  1. Создайте каталог на новом месте:

    • Соединения позволяют одному каталогу указывать на другой.
    • Соединения могут использоваться только на локальном хранилище
    • Они распознаются на уровне файловой системы как запись псевдонима в таблице файловой системы (FSTAB).
      • Поэтому он прозрачен для всех программ, включая саму ОС.
      • Другими словами, он НЕ рассматривается как файл, который просто указывает на другое местоположение (например, ярлык) и поэтому всегда работает без инцидентов.
    • Соединения могут иметь только абсолютные ссылки на файлы. Таким образом, даже если вы переместите всю структуру каталогов с соединением внутри, при этом структура полностью не повреждена, вам придется заново создать свое соединение.
    • Соединения могут быть названы как угодно, то есть они не должны отражать то же имя, что и папка, на которую они указывают.
  2. Создайте символическую ссылку на новое местоположение:

    • Символические ссылки - это объекты файловой системы, которые указывают на другие объекты файловой системы.
    • Они похожи на узлы и являются точками повторной обработки.
    • Тем не менее, в некоторых редких случаях, с некоторыми программами, я видел, что они НЕ распознаются (это иногда имеет место со Специальными папками Windows).
    • Но они более гибки в этом:
      • Символические ссылки могут быть созданы как абсолютные или относительные ссылки.
      • может использоваться для указания на местоположение сети SMB/LANman (серверы Windows, устройства SMB и т. д.)

ПРОЦЕДУРЫ:


Итак, переместите ваши файлы и папки на новое место, а затем:

  1. ВАРИАНТ 1 (изначально): просто введите встроенную команду Windows Vista / 7/8 и приглашение cmd:

    • Создать перекресток ("жесткая" ссылка на каталог):

      mklink /J <oldpath> <newpath>
      
    • Создайте символическую ссылку ("мягкая" ссылка на каталог):

      mklink /D <oldpath> <newpath>
      
  2. Вариант 2 (используйте инструмент): БОЛЬШАЯ альтернатива - это бесплатная удобная утилита, которую я годами использую под названием "Link Shell Extension" (LSE) (или Google it).

    Просто скачайте, распакуйте и запустите (без установки)

    LSE позволяет создавать:

    • симлинки
    • жесткие ссылки
    • перекрестки
    • smartcopies
    • smartclones
    • умные зеркала
    • умные ходы
    • сращивания
    • несколько источников
    • и куча других вещей, которые я никогда не использую, честно говоря
      ,

    Это великолепный бесплатный продукт, который создает контекстное меню проводника Windows, которое позволяет щелкнуть правой кнопкой мыши папку LINK-TARGET и перетащить ее туда, где вы хотите создать реальную ссылку.

    Конечно, вы можете переименовать ссылку на что угодно.

8

Достаточно шокирующе, но есть инструмент для паровой машины, предназначенный для решения той же проблемы, который работает в Windows 7.Это действительно хитро замаскированный способ легко создавать символические ссылки . По сути, он автоматически переместит файлы и создаст для вас символическую ссылку, поэтому кажется, что все находится там, где Steam ожидает, в C: но это действительно в другом месте.

Я хотел бы отметить, что это будет работать только на Windows 7 и Vista, так как MS добавил символические ссылки с этими версиями Windows

0

Соединения могут указывать на любую папку NTFS, независимо от того, на каком диске находится исходный файл в сравнении с целевым.

Поскольку WinXP Junctions работает с любыми напрямую подключенными разделами NTFS, независимо от того, находятся ли они на одном диске или на разных дисках.

Таким образом, наличие соединения является лучшим решением (символическое может вызвать некоторые проблемы).

Я использую это много, чтобы сделать это:

  • Есть несколько "виртуальных" папок в системном разделе (обычно это C:), которые указывают на папку в разделе на USB-диске (SSD, HDD, Pendrive, карта памяти и т.д.).

Таким образом, я могу хранить данные некоторых приложений на внешнем носителе и иметь только одну копию для более чем одного ПК, поэтому нет необходимости выполнять синхронизацию и т.д. Конечно, только один ПК будет видеть это одновременно.

Также узлы могут указывать на папку в разделе NTFS, зашифрованную veraCrypt и т.д.

Соединения нужны только три вещи:

  • Исходный раздел будет NTFS
  • Целевой раздел будет NTFS
  • Оба раздела должны быть локальными (физически подключенными к ПК)... это не всегда необходимо, есть некоторые инструменты, которые позволяют вам использовать FTP в качестве локального диска и рассматривать его как NTFS, поэтому можно создавать соединения для указания к этому

Я имею в виду, что соединение должно видеть, что источник и цель находятся внутри NTFS-раздела.

  • Для XP используйте инструмент SysInternals, называемый junction , ссылка: TechNet Junction Download.
  • Для 7-10 используйте нативный инструмент mklink с параметром /j .

Оба являются инструментами командной строки и в большинстве случаев требуют прав администратора.

Соединения - самый простой способ, но не единственный:

  • Вы можете использовать раздел NTFS, смонтированный в папке NTFS на разных дисках.
  • Вы можете создать файл VHD /VHDX (для XP и Vista требуется инструмент, 7–10 - для управления дисками), создать в нем один или несколько разделов и смонтировать их в любой папке NTFS.
  • так далее

Уловка VHD / VHDX также позволяет вам использовать динамическое хранилище, поэтому не нужно беспокоиться о размере GiB:

  1. Создайте VHD / VHDX в динамическом режиме (не все размеры, назначенные виртуальному диску, будут равны размеру файла) и задайте его столько, сколько вам нужно (VHD ограничен чуть менее 2 ТБ, ограничение VHDX составляет 64 ТБ), но создайте его в NTFS, так как FAT32 ограничивает размер файла менее 4 ГБ.
  2. Инициализируйте виртуальный диск как MBR или GPT (зависит от того, что вы хотите, MBR не поддерживает более 4 основных разделов и ограничен чуть менее 2 ТБ, GPT ограничен 8ZiB, но Windows XP не может видеть диски GPT), см. дополнительную информацию об этих ограничениях в Википедии: en.wikipedia.org/wiki/GUID_Partition_Table
  3. Разбейте виртуальный диск как хотите
  4. Дайте формат NTFS нужному разделу
  5. Если вам нужно переместить данные в одну папку (ту, в которую вы хотите попасть), временно смонтируйте этот новый раздел как любую букву, переместите данные в него и размонтируйте их ... но не удаляйте папку, из которой вы переместили содержание.
  6. Смонтируйте этот раздел над этой папкой

И у $ MFT есть хитрость в том, чтобы быть как можно меньше (очень важно, если вы создаете большие, действительно большие разделы NFTS для хранения ISO и т.д. ... менее 1000 файлов действительно большого размера каждый):

  • Основа этого состоит в том, чтобы исходный размер $ MFT был как можно меньшим
  • $ MFT будет расти, если вы положите больше файлов, и на нем недостаточно места, поэтому не бойтесь не иметь возможности добавлять файлы
  • Это нормальный родной способ создания раздела, без всякого риска
  • Нет никакого мотива (я могу видеть), чтобы не создавать все разделы NFTS таким образом

Процедура довольно проста:

  1. Создайте раздел размером всего 8 МБ (да, мегабайт, а не гига и т.д.), Меньший размер для создания нормальной NTFS ... NTFS может иметь меньший размер, но он будет делать странные вещи, поскольку он не является полностью NFTS.
  2. Вырасти до нужного размера

Эти шаги делают одно:

  • Когда создается раздел, $ MFT действительно маленький (так как размер раздела составляет всего 8 МБ)

Если вы создадите раздел с нужным вам полным размером, $ MFT будет (по умолчанию и как можно меньше) равным 12,5% от размера раздела; и я не знаю ни одного способа уменьшить этот процент, ни уменьшить размер $ MFT после того, как был создан; этот процент может быть больше при касании ключа реестра NtfsMFTZoneReservation в некоторых окнах, но никогда не будет меньше ... поэтому при создании раздела размером всего 8 МБ начальный размер $ MFT будет очень небольшим. Вы можете проверить, как зарезервировано пространство $ MFT на сайте Microsoft:как NTFS резервирует место для своей таблицы основных файлов (MFT)

Увеличение размера раздела NTFS не затрагивает размер $ MFT ... поэтому, чтобы иметь огромный раздел NTFS с как можно меньшим размером $ MFT, создайте раздел размером всего 8 МБ и увеличьте его до желаемого размера после создания.

Это прекрасно для того, чтобы иметь динамический VHD / VHDX, потому что он не будет использовать все это пространство $ MFT даром ... я имею в виду:

  • Если вы создадите NTFS размером 8 МБ (не забудьте сделать это в режиме быстрого форматирования) и увеличите ее до 1,5 ТБ, файл VHD / VHDX, в котором она хранится, будет меньше, намного меньше
  • Если вы непосредственно создадите раздел 1.5TiB внутри VHD / VHDX, файл VHD / VHDX, удерживающий его, будет больше, намного больше

Тест сделан в Windows 10 Home 64Bits:

  • Динамический VHD 1.8TiB с одним NTFS-разделом, созданным (с быстрым форматированием) 8MiG и увеличенным до 1.5GiB ... Размер VHD составляет: 15,6MiB
  • Динамический VHD 1.8TiB с одним NTFS разделом, созданным (с быстрым форматированием) 1.5GiB ... Размер VHD: 107MiB

Видите, это в десять раз больше. Я знаю, что не много говорят о сотне мегабайт ... но если вы используете много (несколько тысяч из них) VHD / VHDX файлов, этот размер может иметь большое значение, если тысяча таких файлов, это будет около 100 ГБ. Также с VHDX и размерами ZetaBytes это действительно огромная такая разница.

Примечание. Я говорю о размере диска 1,8 ТБ, чтобы убедиться, что могу создать идентичный раздел с точным размером 1,5 ТБ (1572864 МБ)... если вы установите размер диска X, раздел будет меньше X.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .