XP tweaks: подключаем профиль пользователя отдельным виртуальным диском
06/05/2008
Сразу оговоримся, что речь идет о Windows XP.
Мне всегда была неудобна структура папок в файловых диалогах, которую предлагала XP по умолчанию. Посудите сами:

И я достаточно долго мучался, пока не догадался однажды создать виртуальный диск и смапить его в мой профиль командой
C:\>subst z: "%userprofile%"
|
и перенести структуру папок на диск Z:
|
Такая структура обладает следующими преимуществами:
- Более подходит к совместной работе на одном компьютере (личные данные находятся на личном логическом диске и отделены от системных).
- Лучше подходит для бэкапа и восстановления системы. Просто скопируйте папку Z: в любое другое место. Обратите внимание на папку Z:\Program Files. В нее установлены portable версии основных используемых программ: Firefox, Miranda, Foobar2000 etc. В случае переустановки ОС/экцессов восстановить работающую конфигурацию можно просто смапив профиль на диск Z: и скопировав туда данные из бэкапа.
Но у виртуального диска, созданного командой subst, есть и пара недостатков:
- он не является “полноценным” диском с точки зрения системы. Несколько раз я сталкивался с отказом Windows Installer устанавливать программу на диск Z:
- он не является постоянным диском, при каждом новом запуске системы его приходится мапить заново.
И если первый недостаток достаточно легко обходится заданием пути через c:\documents and settings\…, то второй до недавнего времени был достаточно раздрающим, так как приводил к тому, что программы на диске Z: нельзя было добавлять в автозагрузку, ярлыки, указывающие на диск Z: на рабочем столе, пока он не смапится, выглядели неизвестными файлами и так далее. Не очень критично, но неприятно. Было какое-то подсознательное чувство, что в windows есть более удобный инструмент, чем допотопная досовская команда subst. И я его нашел. : )
Александр Телятников в своей статье описывает механизм создания persistent subst drives.
Если вкратце, то можно создать ветке реестра [HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices] строковое переменную с именем, соответствующим букве диска и значением, указывающим на место на диске, куда должен мапиться виртуальный диск. В моем случае это выглядит так:
![]()
то такой диск ничем не будет отличаться от созданного командой subst, только не иметь вышеуказанных недостатков.
Понравилось?
А следующий раз я расскажу про практическое использование junctions :)
Filed under:

posts RSS
04/07/2008 08:39
Да, это удобно, это для людей!
Ещё имеет смысл делать отдельный диск для текущего проекта (можно создать много .bat файлов под каждый проект, чтобы быстро менять всю среду для максимального удобства работы).
reply
29/09/2008 17:01
ээ.. так subst не заменяет диск, а добавляет
т.е. это просто ссылка на каталог
как можно “перенести” на него структуру папок?
reply
16/10/2008 11:02
look here another implementation of persistent SUBSTed drives
http://code.google.com/p/psubst/
http://debugger.ru/articles/psubst
reply
05/08/2010 01:27
Я обычно переношу только документы на отдельный диск.
Ваше решение заинтересовало, но я теперь на семерке. Нужно подумать как под нее его адаптировать.
reply