2

Я планирую установить SSD-диск msata на свой ноутбук, чтобы хранить окна и программы, сохраняя при этом файлы данных, каталог пользователя и т.д. На старом HD.

Было бы проще, если бы я мог продолжать ссылаться на файлы данных как c:\ независимо от того, что они физически находятся в d:\ безотносительно.

Если я правильно понимаю, лучший способ - это создать переход, такой как

mklink /j d:\whatever c:\whatever

Должен ли я просто переместить старый каталог и все его подкаталоги в d:\what, используя проводник Windows или что-то из командной строки? Или создаст проблемы круглости?

Windows7x64 Pro, если это имеет значение.

3 ответа3

3

Я делаю то же самое, чтобы переместить большие файлы данных с моего SSD на C: на другой жесткий диск.

Вам нужно сначала переместить папку.

Затем создайте символическую ссылку (или соединение, если вы предпочитаете, в этом случае они предоставляют ту же функциональность) из исходного местоположения в местоположение назначения с помощью команды:

mklink /D OriginalLocation DestinationLocation

/D создает символическую ссылку на каталог, которая может охватывать тома. (Изменить: Соединения могут также охватывать объемы)

С помощью проводника Windows вы увидите небольшой ярлык в папке исходного местоположения. Использование dir /a в родительском каталоге покажет <SYMLINKD> вместо <DIR> .

0

Шаги, которые я использую, следующие. Я переместил Users и ProgramData на другой диск.

1) загрузитесь на системный диск, откройте командную строку, найдите старый диск C:\ и запишите букву целевого диска

robocopy /copyall /e /xj Users <CURRENT_LETTER_OF_DESTINATION_DRIVE>:\Users
robocopy /copyall /e /xj ProgramData <CURRENT_LETTER_OF_DESTINATION_DRIVE>:\ProgramData
Rename Users Old_Users
Rename ProgramData Old_ProgramData
cd Old_Users
attrib desktop.ini -S -H
Rename desktop.ini desktop.ini.old

Это сохраняет копию вашей пользовательской папки как "Old_Users". Я перенес это в другое место в качестве резервной копии. Если вы не измените .ini файл, вы не сможете различить две папки позже!

При желании rmdir /s /q Users и rmdir /s /q ProgramData если вы очищаете пространство.

2) тогда

mklink /J Users <USUAL_LETTER_OF_DESTINATION_DRIVE>:\Users
mklink /J ProgramData <USUAL_LETTER_OF_DESTINATION_DRIVE>:\ProgramData
rmdir "Documents and Settings"
mklink /J "Documents and Settings" "<USUAL_LETTER_OF_DESTINATION_DRIVE>:\Documents and settings"

Теперь при перезагрузке Windows все должно быть в порядке.

Если вы допустите ошибку, вы можете получить неработающий профиль пользователя. В этом случае перейдите в безопасный режим (или другого пользователя) и откройте regedit адресу HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList . Ваш старый профиль пользователя, вероятно, будет в списке с расширением .bak , а на его месте будет новый фиктивный. Удалите фиктивный профиль и переименуйте ключ .bak без "bak".

Затем вы можете столкнуться с несколькими ошибками безопасности. Я должен был также сделать следующее:

icacls "%programdata%\Microsoft\Internet Explorer\Quick Launch" /SetIntegritylevel (OI)(CI)Medium
icacls "%userprofile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch" /SetIntegritylevel (OI)(CI)Medium
icacls "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu" /SetIntegritylevel (OI)(CI)Medium

Владение моими файлами также несколько изменилось, и мне нужно было использовать "Взять в собственность" или «Свойства / Безопасность / Дополнительно / Владелец / Редактировать / Заменить владельца на подконтейнеры», чтобы все заработало.

-1

FAR Manager может создавать символические ссылки, используя Alt+F6, а также связанные папки будут помечены <link> что облегчает их обнаружение. Не знаю, как работает Windows 7, но в предыдущих версиях Windows использование Проводника для удаления папки с символическими ссылками приводило к катастрофическим результатам, таким как удаление фактической целевой папки.

Для псевдонимов файлов (не папок) вы можете использовать: fsutil hardlink create <new filename> <existing filename> .

Если FAR Manager не достаточно хорош для вас, то вы могли бы симлинки папки с узлом утилиты командной строки Марк Руссинович, например:

junction d:\symlinked_folder c:\winnt

И нет, на самом деле вы не можете «переместить папку, используя соединение», соединение - это просто псевдоним для другой папки, которую клиентские приложения увидят как «настоящую вещь».

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