WinXP и Win7 — комфортный dualboot на одной машине

в 17:07, , рубрики: windows, windows 7, системное администрирование, Чулан, метки:
Задача

Раздел C, маленький 2гб фат32, с загрузчиком, с возможностью загрузиться в DOS. В принципе это уже мне не нужно, но исторически привык, что Windows у меня на D:, а не на C:, поэтому не трогаю.
Раздел D, для системы и основного софта. 20-30 гигабайт хватает в принципе на все.
Раздел E, Игры, фильмы, все такое…

Нужно:
а) Установить Win7 в отдельный раздел, с возможностью всегда перегрузиться назад в WinXP, и чтобы операционка была на диске D:
б) Добиться работоспособности основного софта (скайп, торрент, браузер, почта) одновременно на обеих операционках (синхронизация профайлов)


Почему так:
Куча всяких отлизанных за много лет скриптов и мелких утилит, которые стоят под WinXP, неглючащие с любовью подобранные кодеки, драйвера, домашний комп работает 24/7 и ребуты крайне редки.
Некоторое время назад сгорела материнка, из-за чего пришлось апгрейднуть и комп, апгрейднул с запасом на будущее — 64-битный проц, 12 Гб оперативки, новая видюшка… собственно видеокарточка первая подала признаки, что XP — устарела. Тормоза видео при работе на двух мониторах, включая синий экран под Сталкером… В общем, все шаманские танцы привели к стабильности и отсутствию зависаний, но никак не к скорости и комфорту, в то время как под Win7 никаких проблем и все летает.
Простой переезд никак не подходил — как минимум часть софта просто не будут нормально работать под семеркой (тем более, что собирался ставить 64-битную), а мне крайне желательно, чтобы я мог в любой момент перегрузиться назад и получить к нему доступ.

Проблема 1 и решение — буквы разделов

Хотелось, чтобы при загрузке Windows, на диске D была именно та, которая сейчас загружена. Попытки скрыть предыдущие разделы и установить чистую виндовс, чтобы она сама стала на D: не удалось. Решил исправить букву системного раздела вручную известным способом — в реестре идем в HKEY_LOCAL_MACHINESYSTEMMountedDevices и исправляем G: (куда по умолчанию установился Windows) на D:

Но нужно еще поправить ссылки, которые вели на диск G:, и в этом мне крайне не понравились недружелюбные права доступа к реестру, которые не давали править найденные ссылки, как это было в предыдущих версиях Windows, даже если запустить regedit от имени адмнистратора.

Искать какую-то готовую утилиту для миграции я не хотел, ибо не особо доверяю автоматическим «миграторам», но тут я придумал интересное и надежное решение, которым однозначно хочу поделиться с сообществом.
Перегрузился в рабочую WinXP, зашел на раздел Win7 в windows/system32/config и обычным хекс-редактором (hiew32) сделал побайтовую замену в файлах реестра, предварительно сделав резервные копии. Данные хранятся в UTF, поэтому замену проводил не в текстовом режиме, а в HEX.

Легко, просто, надежно, плевать на все права доступа (точнее они не были затронуты) и версию Windows — пока реестр будет храниться в похожем формате, будет работать.
Если возьмете на вооружение, не забывайте, что d: и D: — разные вещи, рекомендую также менять не с x: на D: а например с x:prog на D:Prog, чтобы не задеть случайно совпавшие данные.

Правда еще возникла проблема с линками. Жутко не нравится система хардлинков (не сами хардлинки!), которые стоят по умолчанию на «Document and Settings» и нескольких папках внутри. Это пришлось все поправить вручную. Минут 10-15 в FAR, в котором можно посмотреть, куда должен вести нерабочий линк, и на этом проблема была полностью и надежно решена:
При загрузке в WinXP, на диске D — WinXP, на диске X — Win7
При загрузке в Win7, на диске D — Win7, на диске X — WinXP

Проблема 2 и решение — вынос профайлов основного софта

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

Решение такое — шифрованный контейнер TrueCrypt, размером 1 Гбайт на доступном для обоих систем разделе. Под обеими операционками, контейнер подключается при логине на одинаковую букву (например W:).
Выносим профайлы программ на этот раздел, а на старом месте создаем линк на папку с профайлом.

uTorrent выносим «D:Documents and Settings%USERNAME%Application DatauTorrent», в котором лежит вся информация по текущим закачкам (не торрент-файлы, а именно хеши и настройки).

Скайп — «D:Documents and Settings%USERNAME%Application DataSkype» — все профайлы с историями разговоров.

Firefox — на криптованный раздел выносим папку (создаваемое по умолчанию имя разное) из «D:Documents and Settings%USERNAME%Application DataMozillaFirefoxProfiles», где хранится весь кеш, закладки, пароли и другие настройки.
Правим файлик «D:Documents and Settings%USERNAME%Application DataMozillaFirefoxprofiles.ini».

[Profile0]
Name=default
IsRelative=0
Path=W:ApplicationDataFirefox

Параметр IsRelative ставим в 0, и в Path прописываем место нашего профайла.

С почтой проблем не было TheBat и Gmail легко живут где угодно.

Результаты:

Загружаясь в любой Windows, вообще не требуется синхронизировать данные — они одинаковые для обеих операционок. Вдобавок, если нужно вынести еще какой-то профайл, то линки на криптованный контейнер можно ставить в обеих операционках не перегружаясь — они же и там и там будут ссылаться на тот же самый путь.

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

P.S. Верю, что в некоторых случаях сам себе создаю проблему для решения которой изобретаю велосипед, но иногда старые привычки милее новшеств.

P.P.S. Пока еще не придумал, как можно делать резервную копию TrueCrypt контейнера, не размонтировав диск, было бы удобно. Самое грубое решение — создать еще один такой контейнер, и скрипт, который его монтирует, делает простое копирование xcopy или каким-нить syncBackup-ом. Скрипт понятное дело лежит на первом контейнере — то есть при перезагрузке компа данные с контейнеров недоступны без пароля никому.

Автор: saboteur_kiev

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js