Установка виндовс 7 на внешний диск usb. Подготавливаем внешний HDD

08.04.2019

Иногда требуется наличие дополнительной копии ОС на съемном носителе. Стандартную установку произвести не получится из-за ограничений системы, поэтому придется совершать дополнительные манипуляции с использованием разного стороннего софта. Сегодня мы пошагово рассмотрим весь процесс, начиная с подготовки внешнего жесткого диска и заканчивая инсталляцией Windows.

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

Шаг 1: Подготавливаем внешний HDD

Обычно съемный HDD имеет один раздел, куда пользователи сохраняют все нужные файлы, однако если вам нужно разделить ОС и другие файлы, то есть создать дополнительный логический диск, куда и будет произведена инсталляция Виндовс, советуем ознакомиться со следующей инструкцией:


Если по каким-либо причинам AOMEI Partition Assistant вас не устраивает, рекомендуем ознакомиться с другими представителями подобного софта в другой нашей статье по ссылке ниже. В похожем ПО вам потребуется выполнить точно такие же действия.

Теперь задействуем встроенную функцию Windows по работе с логическими дисками. Она нам понадобится, чтобы создать новый раздел из только что выбранного свободного пространства.

  1. Откройте «Пуск» и перейдите в «Панель управления» .
  2. Нажмите на раздел «Администрирование» .
  3. В открывшемся окне стоит выбрать «Управление компьютером» .
  4. Перейдите к разделу «Управление дисками» .
  5. Найдите необходимый том, кликните правой кнопкой мыши на свободное пространство основного диска и выберите пункт «Создать простой том» .
  6. Откроется мастер, где нужно кликнуть на «Далее» , чтобы перейти к следующему шагу.
  7. Во втором окне не меняйте ничего и сразу перемещайтесь далее.
  8. Вы можете назначить собственную букву, если хотите этого, а после чего нажмите на «Далее» .
  9. Последним действием является форматирование раздела. Проверьте, чтобы его файловая система была NTFS, больше не меняйте никаких параметров и завершите процесс нажатием на «Далее» .

На этом все. Теперь можно приступать к следующему алгоритму действий.

Шаг 2: Подготавливаем Windows для установки

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

  1. Загрузите копию выбранной версии Виндовс в формате ISO, чтобы в дальнейшем можно было смонтировать образ.
  2. Используйте любую удобную программу для создания образа диска. Детально с лучшими представителями подобного софта знакомьтесь в другом нашем материале ниже. Просто установите такое ПО и откройте загруженную копию Windows в ISO с помощью этого софта.
  3. В разделе «Устройства со съемными носителями» в «Мой компьютер» у вас должен появиться новый диск с операционной системой.
  4. Запустите WinNT Setup и в разделе «Путь к установочным файлам Windows» кликните на «Выбрать» .
  5. Перейдите диску с монтированным образом ОС, откройте корневую папку и выберите файл install.win или install.esd в зависимости от версии Виндовс.
  6. Теперь, когда во втором разделе автоматически появилась буква диска, куда будет установлен загрузчик (менять ее не рекомендуется), в разделе ниже «Диск, на который будет установлена ОС» нажмите на «Выбрать» и укажите тот раздел жесткого диска, который был создан в первом шаге.
  7. Кликните на «Установка» .
  8. После этого откроется новое окно, где рядом с пунктом «Использовать BootSect для загрузчика» вместо «ALL» следует выставить «BIOS» , если на компьютере используется классический БИОС. Обладателям UEFI из выпадающего меню понадобится выбрать соответствующий пункт, после чего нажать «ОК» .

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

Шаг 3: Устанавливаем Windows

Последним шагом является непосредственно сам процесс инсталляции. Вам не нужно выключать компьютер, еще как-то настраивать загрузку с внешнего жесткого диска, поскольку все происходит через программу WinNT Setup. Останется лишь следовать стандартной инструкции. У нас на сайте они расписаны подробно для каждой версии Windows. Пропустите все подготовительные манипуляции и переходите сразу к описанию установки.

Подробнее: Пошаговое руководство по установке ,

По завершении инсталляции вы можете подключать внешний HDD и пользоваться ОС, установленной на нем. Чтобы не возникало проблем с загрузкой со съемных носителей, требуется изменить настройки BIOS. В статье ниже описано, как задать все необходимые параметры на примере флешки. В случае со съемным диском этот процесс никак не меняется, только запомните его название.

Описываемая ниже процедура пригодна для установки полноценной Вин7 как на физический так и на виртуальный (внутри.vhd) раздел USB диска в качестве второй (или третьей) оси. Она без изменений может быть приложена и для установки Висты на физический раздел USB диска. Вероятно годится и для установки XP, но я это не проверял.

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

Что это такое?

Многие почему-то часто думают, что под этим подразумевается создание "Live Windows" на USB флэшке. Эта процедура, описана на бесчисленном множестве страниц в сети. Но "Live Windows" -- это всего лишь бледная тень настоящей винды. Она представляет собой просто модификацию WinPe (ось запускаемая инсталационным DVD) добавлением небольшого количества прог: файловых менеджеров (Explorer и/или TC), антивиря и т.д. Здесь же речь пойдёт об установке полноценной винды, со всеми её рюшечками типа аэро, на физический или виртуальный (.vhd) раздел USB диска. И, в отличие от Live Windows на флещке, эта установка не переносима, а привязана к тому компу, на котором установлена. Причина --- проста: драйверы в этой установке привязаны к конкретному железу. Активация --- тоже. Так что даже если сделать USB диск загружаемым с любого компа (что сделать легко), то особенной выгоды от этого не будет: при старте с другого компа винды, установленной на этом диске, скорее всего произойдет BSOD из-за несоответствия драйверов установочного компа с драйверами нового компа. Или, в лучшем случае (если запустить винду в Safe mode), она заменит драйверы оригинального компа драйверами нового. И эту операцию придётся производить при каждом переключении с одного компа на другой. Это --- огромный гемор сам по себе. При этом проблема со слетанием активации не решается --- нельзя же каждый раз звонить в MS для переактивации!

Зачем это надо?

Если у вас имется стационарный комп с одним--двумя огромными SATA винтами и большим количеством свободного места, то нет никакой необходимости ставить винду на внешний USB диск.

Однако если у вас есть лишь лаптоп с установленной на нём вистой или XP, и одним винтом, заполненным под завязку, но зато есть новенький пустой USB винт, то установить вин7 на него может оказаться самым лучшим решением в следующих случаях.

а) Перед тем, как заменить окончательно старую винду на новую Вин7 вы хотите потестить Вин7 несколько месяцев, чтобы определить, подходит ли она вам.

б) Старая виста на фирменном лаптопе имеет много удобного фирменного софта, который фирма не поддерживает в новой оси. В этом случае дуал бут с HDD+USB может оказаться оптимальным решением, даже если на внутреннем диске имеется достаточно места для установки Вин7. Дело в том, что скорость чтения/записи на последнем разделе внутреннего диска может оказаться существенно ниже, чем та же скорость на первом разделе внешнего USB диска. Особенно в случае, когда внутренний диск -- IDE (или даже SATA), а внешний -- SATA или SATA 2. Миф о том. что внутренний SATA диск якобы быстрее USB SATA диска основан на сравнении максимальных скоростей: 64М/сек для USB2.0, 150М/сек для SATA и 300M/сек для SATA 2. Но максимальные скорости SATA/SATA 2 -- это лишь пиковые значения, которые длятся какие-то миллисекунды. Средние же значения гораздо ниже, особенно для массовых 2.5" 5400 об/мин дисков, типичных для современных лаптопов. Например, на моём ноуте с SATA средняя скорость чтения/записи большого нефрагментированного файла редко достигает 50М/сек, что не выходит за USB2.0 предел в 64М/сек.

в) Если ваш ноут настолько стар, что допускает лишь внутренний IDE интерфейс, то (пере)установка любой винды от XP до Вин7 на внешний USB2.0/SATA диск должна значительно ускорить систему.

г) Даже если вы купили новый лаптоп с предустановленной 32-битовой Вин7, вам, возможно, захочется заменить её на 64-битовую, ибо будущее -- за ними. И даже настоящее, если имеется 4Г или более RAM. Такая замена -- законна и совершенно бесплатна. Но, очень вероятно, что фирма--производитель лаптопа не обеспечила 64-битовые версии фирменных утилит для своего лаптопа. Не знаю, как для Вин7, но для Висты такая ситуация была массовой. В этом случае дуал бут Вин7 х32--Вин7 х64 может оказаться более приемлемым вариантом для вас, чем просто замена 32-битовой винды на 64-битовую. Насчёт законности этого варианта я ничего не знаю, но 64-битовую Вин7 можно будет установить как вторую ось с тем же ключом, что и 32-битовую. При этом она будет активирована на автомате и с точки зрения любого софта MS, проверяющего ось "на вшивость", будет Genuine MS software:). В этом случае ось на первом разделе USB диска тоже может оказаться пошустрее, чем на втором разделе внутреннего.

А в чём проблемы-то?

Основная проблема: Дрова USB накопителей по дефолту загружаются виндой на позднем этапе процесса загрузки винды (параметр Start=3 в реестре). Но для самой возможности загрузки оси с USB необходимо, чтобы эти дрова загружались на самом раннем этапе (Start=0) --- иначе будет BSOD:(

Народные умельцы придумали в 05--06г. разные способы обхода этой проблемы для XP (см. 104-страничную ветку XP booting direct from USB на форуме www.911cd.net). Эти способы были очень геморными, включая в себя подмену как некоторых бинарных файлов (ntdetect.com), так и *.INF файлов для USB драйверов оригинального инсталлационного CD для XP их модификациями.

Не могу сказать точно, зачем нужно было модифицировать ntdetect.com (возможно, чтобы инсталлятор XP показывал USB диск в списке доступных для инсталлации XP устройств), но смысл модификации *.INF файлов драйверов USB дисков был таков: если некоторая прога меняла в реестре параметры этих драйверов (в частности параметр Start), то Винда восстанавливала дефолтные значения Start=3, беря их именно из *.INF файлов. И это приводоло к BSOD при последующей загрузке, который не возникал бы, если бы в.INF файлах эти параметры были установлены в 0.

Решающий прорыв, позволивший сильно упростить процедуру установки, сделал MarV с вышецитированного форума, написавший службу UsbBootWatcher, которая позволяет обойтись без модификации файлов инсталационного CD. Служба эта следит за стартовыми параметрами USB дров и восстанавливает нужные значения Start=0 в случае их "соскока" на другие значения. См. страницу Installing Vista/XP on USB disk... и ссылки внутри неё, где описывается процедура установки Винды, использующая эту службу.

Процедура эта работает не только в XP, но и в Висте или Вин7. Однако она имеет тот недостаток, что при установке Винды нужно делать 1 или 2 лишних ребута в старую ось (XP или Висту). Кроме того, в начале установки Висты или Вин7 нужно вынимать USB диск из ящика и подключать как внутренний диск. Чтоб преодолеть препятствие в виде ненажимаемой кнопки "Next", не позволяющей начать установку на физический раздел USB диска.

Вариации этого метода используют установку винды в виртуальную машину с последующим переносом этой установки на USB диск. Существенное упрощение процедуры установки на физический раздел USB диска с использованием "кнопкоотжимателя" описано в Vista / w2k8 installer USB HDD enabler.

Правда, кнопкоотжиматель использованный в этом методе --- некий "кулхацкерский" BlackTool Infector --- написан наспех ad hoc и очень примитивен: ему нужно "скормить" PID процесса установки setup.exe, чтоб он смог найти и отжать кнопку "Next" в окне установщика. Что создаёт ненужный дополнительный гемор, хоть и не очень большой.

Предлагаемый здесь метод является, насколько мне известно, самым простым из всех, опубликованных к настоящему моменту на различных сайтах. При нём не используется ни одного лишнего рестарта по сравнению с обычной установкой на раздел внутреннего диска, а непреодолимая при установке на физический раздел USB кнопка "Next" отжимается элементарно с помощью одной замечательной проги --- enbtn.exe (полезной и во многих других случаях, позволяя открыть многие двери в халявных версиях коммерсиальных прог;): нужно запустить эту прогу, провести мышой по неотжимаемой кнопке и она мгновенно становится активной! Так что этот метод позволяет установить Вин7 без всяких проблем не только на.vhd внутри USB диска, но и непосредственно на физический раздел этого диска. И может, таким образом, использоваться для установки на USB диск Висты или XP, в которых установка на виртуальный.vhd раздел невозможна.

Ладно, хватит бла-блы, перехожу к описанию самой процедуры установки.

Установка.

1) Перед установкой нужно:

а) Скачать файл UsbBootWatcher.zip с линка: UsbBootWatcher.zip и разархивировать его. Я предполагаю далее, что файл был разархивирован в папку C:\UsbBoot.

б) Создать текстовый файл USBboot.bat, (текст его приведён ; скопируйте его и вставьте в любой текстовый редактор: он должен скопироваться без "заворачивания" длинных строк). Поместите файл USBboot.bat внутрь папки C:\UsbBoot.

в) Для установки винды на физический раздел USB диска нужно также скачать какую-нить прогу, активирующую неактивные (серые) кнопки в окнах запущенных прог. Лучшая из известных мне прог такого сорта --- халявная enbtn.exe . Найдите в Гугле и скачайте файл enbtn.zip и разархивируйте его внутрь той же папки C:\UsbBoo t, что и файл USBboot.bat .

2) Запустите комп с инсталлационного DVD и пройдите все начальные этапы установки, выбрав тип установки "Custom install ". Когда появится список разделов доступных для установки, выберите нужный раздел на USB диске и форматируйте его, если он не был ещё форматирован ("Disk options(Advanced)"-->"Format" ). Смотрите, не ошибитесь, сформатировав не тот раздел!

3) Нажмите Shift+F10 чтоб запустить командный промпт;

4) Для дальнейшего нужно будет знать буквы, присвоенные установщиком как выбранному вами разделу USB диска, так и разделу C: (эти буквы могут отличаться от тех, которые видны под "старой" XP или Вистой). Самый простой способ это сделать: запустите с командной строки "Notepad.exe " (штатные файловые менеджеры Explorer, TC или Far в среде установщика Вин7 почему-то не запускаются) и выберите File-->Open в открывшемся окошке. Щёлкните по "Computer " в левой панели диалога "Open ". Тогда в правой панели этого диалога появится список всех разделов с присвоенными им буквами. Предположим для определённости, что буква для раздела C: не изменилась, а USB разделу инсталлятор присвоил букву F: .

Если Вы хотите инсталлировать винду на физическом разделе USB диска (в данном случае F: ), то можете закрыть окно Notepad и, пропустив шаги 5--7 ниже, перейти к шагу 8.

В противном случае переключитесь (Alt+Tab ) на окошко коммандного промпта, чтоб создать.vhd файл для инсталлации. Эта стандартная процедура описана на множестве сайтов, но я включу ее и здесь для полноты.

5) Запустите команду "Diskpart" в окошке командного промпта;

Если на разделе F : уже имеется фиксированный.vhd файл подходящего размера (больше 10G), созданный Virtual PC или Virtual Box, то следующий шаг можно пропустить, используя для установки уже созданный файл (ниже предполагается, что его имя --- Win7.vhd)..

6) Находясь внутри Diskpart выполните команду:

create vdisk file=F:\Win7.vhd type=FIXED maximum=20480

Она создаст VHD file "Win7.vhd " фиксированного размера 20G на выбранном вами USB разделе F: . Вы можете, конечно, выбрать другой размер, но имейте ввиду, что эта операция длительная: на моём лаптопе она отняла около 20 мин. (1G/мин). Минимальный возможный размер для установки находится где-то в районе 10G. Если вы собираетесь в дальнейшем перенести эту установку на 16G или 32G флешку (чтоб попробовать не будет ли она бегать оттуда шустрее), то можете создать.vhd чуть меньшего размера (15 или 30 гиг).

7) Выполните команды:

select vdisk file=F:\Win7.vhd
attach vdisk
exit

Теперь виртуальный.vhd раздел создан и "поднят", но он ещё не форматирован, так что никакой буквы ему пока не присвоено. Перейдите к окну инсталлятора (Alt+Tab ) и нажмите "Refresh ", чтоб новый виртуальный раздел появился в списке разделов, доступных для инсталлации. Щёлкните по нему мышкой и сформатируйте ("Drive options(Advanced)"-->"Format" ). Теперь можно определить букву, присвоенную этому разделу. Для этого переключитесь на окошко Notepad (оно ещё не закрыто) и повторите процеддуру из шага 4, после чего Notepad можно будет закрыть. Положим для определенности, что буква присвоенная виртуальному диску есть G: .

8) В окне командного промпта выполните команды:

C:
cd USBboot

(Если инсталлятор присвоил другую букву виндовому разделу C:, то, ессно, нужно заменить "C" на эту букву).

Если вы собираетесь ставить винду на физический диск, нужно будет ещё запустить "кнопкоотжиматель", выполнив команду:

enbtn.exe

9) Напишите в окне коммандного промпта:

USBboot.bat X

где X -- буква (без двоеточия!), присвоенная разделу (физическому или виртуальному), на котором предполагается установить Винду. Не нажимайте ! Эта команда должна быть выполнена не сейчас, а позже, в подходящий момент процесса установки. Впрочем, если вы случайно и нажали сейчас --- ничего страшного не произойдёт. Эту команду можно запускать в процессе установки хоть 100 раз (восстанавливая каждый раз команду на строке нажатием клавиши <Стрелка вверх> ).

10) Перейдите теперь к окну установщика и выберите диск для установки. Если диск -- физический, то кнопка "Next " будет неактивной. Чтоб её активировать, достаточно провести над ней мышкой. Нажмите на кнопку "Next" , начав процесс установки.

11) Когда на втором из пяти этапов ("Extracting windows files") показатель прогресса достигнет 85% или более, можно будет запустить команду, написанную в командном окне. Для этого переключитесь на командное окно (Alt+Tab ) и нажмите . На самом деле эту операцию можно произвести в любой момент из интервала 85%--100%. А также, если вы проспали, на последнем этапе "Completing installation". На третьем или четвёртом этапе запускать эту команду бесполезно, т.к. реестр устанавливаемой винды будет заблокирован установщиком. При успешном выполнении этой команды в командном окне возникнут 10 строк
"The operation has completed successfully" .

12) После первого рестарта (который должен обойтись без BSOD, если команда из шага 11 была выполнена хотя бы один раз в правильный момент) нужно будет выполнить ещё одну команду для предотвращения BSOD после второго рестарта. А также для автоматической установки службы UsbBootWatcher .

Для этого дождитесь, когда окно установки (с пятью этапами, 4 первых из которых будут отмечены зелёными галочками) появится снова (после "Updating registry setting" и "Installing services..."). После чего откройте командное окно (Shift+F10 , если забыли) и выполните команду

USBboot.bat

Путь к.bat файлу писать не нужно -- файл на первом этапе уже был скопирован в папку...\Windows\System32. Никакого аргумента у команды ни в коем случае писать не нужно тоже.

Это --- всё :) Никакого дальнейшего вмешательства в процесс установки не требуется.

Некоторые технические подробности.

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

Последняя команда срабатывает потому, что зловредный UAC после первого рестарта ещё не включен (как я обнаружил совсем недавно) --- в противном случае команда внутри файла USBboot.bat , устанавливающая службу UsbBootWatcher была бы молча заблокирована, без предложения возможности её выполнения "As administrator".

Более ранние мои попытки избежать BSOD при втором рестарте были основаны на том, что я пытался "впендюрить" до первого рестарта команду, устанавливающую службу UsbBootWatcher , в реестр Вин7 через ключи типа ...\RunOnce , ...\Run и т.д. Если бы это удалось, то при установке ручное вмешательство в этот процесс после первого рестарта (шаг 12) оказалось бы излишним. Это оказалось невозможным. По видимому, из соображений безопасности винда стирает эту инфо из реестра при старте, если она впарена не в предыдущей сессии, когда реестр активен, а из другой оси, когда Вин7 "отдыхает". Правда, мне удалось пробить эту защиту, записав в USBboot.bat команду, копирующую этот батник в публичную Startup папку (причем после выполнения батника он должен был совершить харакири, удалив из папки самого себя). Тесты на уже установленной Вин7 с отключенным UAC прошли успешно: я впаривал это дело с Висты в "спящую" Вин7 и при запуске Вин7 служба автоматически устанавливалась. Но при реальной установке этот батник так и не загрузился до второго рестарта, в результате чего после этого рестарта BSOD всё-таки произошёл. Это, по-видимому, объясняется тем, что вся процедура установки после первого рестарта записана в ключе ...\Control\Session Manager\\SetupExecute реестра. И автозапуск прог из других ключей реестра, а так же из папки Startup отложен до тех пор, пока все проги из SetupExecute не закончат свою работу. А последняя из этих прог, по-видимому, производит перезагрузку:(.

Я, конечно же, пытался добавить установку службы UsbBootWatcher и в ключ ...\\SetupExecute. Но это привело к тому, что установка зациклилась ещё до BSOD, приводя к преждевременным рестартам с сообщением, что конфигурация винды повреждена и для её исправления нужно вновь войти в установщик и попытаться восстановить систему. По-видимому, я, добавив установку службы в зтот ключ, повредил (или удалил) другие значения, записанные там установщиком. В Гугле я практически не нашёл никакой инфо об этом ключе и его структуре.

А самым соблазнительным местом в реестре является ключ ...\Control\Session Manager\\BootExecute. Из которого запускается при каждом буте autochk.exe в случае, если файловая система повреждена. Если бы удалось заставить винду запускать оттуда (модифицированный подходящим образом) USBboot.bat , то не было бы никакой нужды ни в службе UsbBootWatche r, ни в восстановлении "бутабельности" юэсбэшной винды после BSOD --- эта бутабельность восстанавливалась бы автоматически во время старта оси. К сожалению винда полностью игнорирует USBboot.bat , если его добавить к autochk.exe в этот ключ:(В чём дело --- не знаю. Инфо, которую я успел нарыть в Гугле о ключе BootExecute относится исключительно к autochk.exe.

Правила безопасности при работе с виндой на USB диске.

А) Если у вас имеется другой USB диск, то подключать (а так же, желательно, и отключать) его к компу нужно до включения компа. Иначе -- 100% BSOD 0x7b.

Б) Незнакомую системе флешку в первый раз тоже нужно подключать до старта системы (иначе --- BSOD 0x7b). При этом дрова флешки установятся нормально, после чего в дальнейшем флешку можно будет подключать и отключать и при работающем компе.

В) Если в результате нарушения правил А) или Б) (а так же и других причин) возникнет BSOD 0x7b, нарушающий возможность бута с USB, то восстановить эту возможность можно следующим образом: стартовать в старую винду (или в установочное DVD Вин7) и выполнить команду "USBboot.bat X ", где "X" -- буква, под которой виден раздел с установленной Вин7.

Под "другими причинами" имеется ввиду следующее. Иногда, хотя и редко, дрова флешки могут спонтанно "слететь". И при её подключении во время сессии, после автоматической переустановке дров возможен BSOD.

А однажды моя USB мышка была воспринята Вистой как "Unknown USB storage device", для которого Виста, ессно, не смогла найти драйвера. Если бы это случилось на юэсбэшной Вин7, то, вероятно, без BSOD дело бы не обошлось тоже.

В случае, если Вин7 посажен на виртуальный.vhd, его, конечно, нужно "поднять" перед выполнением команды "USBboot.bat X ". Поднятие в установщике описано выше в шаге 7. Для поднятия же из XP или Висты нужно на них установить для этого прогу vhdmount . Прога эта является компонентой Microsoft Virtual Server2005-R2 SP1 , которую можно установить отдельно как на XP Pro, так и на Висте Pro или Ultimate. На хомке установщик MS Virtual Server устанавливать что либо отказывается категорически, но можно установить vhdmount на какой-нить XP Pro, после чего перенести файлы из \Program files\Microsoft Virtual Server с XP на Висту и установить на ней соответствующие драйверы vhdstor.sys и vhdbus.sys (подробности --- в Гугле). После чего можно "впарить" в контекстное меню.vhd файлов возможность их поднятия двойным щелчком мыши, запустив.reg файл следующего содержания:

Windows Registry Editor Version 5.00


@="Mount"


@="\"C:\\Program Files\\Microsoft Virtual Server\\Vhdmount\\vhdmount.exe\" /u \"%1\""


@="\"C:\\Program Files\\Microsoft Virtual Server\\Vhdmount\\vhdmount.exe\" /m /f \"%1\""


@="Virtual.Machine.HD"

(это --- исправленная версия.reg файла, найденного где-то в сети).

Файл USBboot.bat:

@echo off
cls
echo ========================================================================== 1 / 4
echo USB Boot preparation by MarV
echo Modified by Vlad0
echo.

: Get from the user the installation partition drive letter only
set TARGET_DIRECTORY=%SystemRoot%\System32
set TARGET_DRIVE=%1
if not "%TARGET_DRIVE%"=="" set TARGET_DIRECTORY=%TARGET_DRIVE%:\Windows\System32

:: Continue patching
:cls
echo ========================================================================== 2 / 4
echo Target: %TARGET_DIRECTORY%
:: Check the path
if exist %TARGET_DIRECTORY% goto direxists
echo The directory you have entered is not valid
goto end
:direxists
if "%TARGET_DRIVE%"=="" goto ONLINE

:: Let"s load hive
echo.
echo Loading system hive...
reg load HKU\USBBOOT %TARGET_DIRECTORY%\config\system
if not errorlevel 1 goto hivesuccess
echo Failed to load system registry hive
goto end
:hivesuccess

:: Read CPU architecture from registry
echo.
:: Get control set path
FOR /F "tokens=1* delims=x" %%a in ("reg query "HKU\USBBOOT\Select" /v Current") DO SET TARGET_CONTROL_SET=ControlSet00%%b
echo Current control set is %TARGET_CONTROL_SET%

:: Get processor architecture from enviroment variabile
FOR /F "tokens=2*" %%a in ("reg query "HKU\USBBOOT\%TARGET_CONTROL_SET%\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE") DO SET TARGET_PROCESSOR_ARCHITECTURE=%%b
echo Target architecture is: %TARGET_PROCESSOR_ARCHITECTURE%

if exist .\%TARGET_PROCESSOR_ARCHITECTURE% goto validarchitecture
echo Unsupported architecture
goto end
:validarchitecture

:: Patch service path
echo.
echo Writing data to registry...

reg add HKU\USBBOOT\%TARGET_CONTROL_SET%\Services\usbstor /v Group /t REG_SZ /d "Boot Bus Extender" /f
reg add HKU\USBBOOT\%TARGET_CONTROL_SET%\Services\usbstor /v Start /t REG_DWORD /d 0 /f

reg add HKU\USBBOOT\%TARGET_CONTROL_SET%\Services\usbehci /v Group /t REG_SZ /d "Boot Bus Extender" /f
reg add HKU\USBBOOT\%TARGET_CONTROL_SET%\Services\usbehci /v Start /t REG_DWORD /d 0 /f

reg add HKU\USBBOOT\%TARGET_CONTROL_SET%\Services\usbohci /v Group /t REG_SZ /d "Boot Bus Extender" /f
reg add HKU\USBBOOT\%TARGET_CONTROL_SET%\Services\usbohci /v Start /t REG_DWORD /d 0 /f

reg add HKU\USBBOOT\%TARGET_CONTROL_SET%\Services\usbuhci /v Group /t REG_SZ /d "Boot Bus Extender" /f
reg add HKU\USBBOOT\%TARGET_CONTROL_SET%\Services\usbuhci /v Start /t REG_DWORD /d 0 /f

reg add HKU\USBBOOT\%TARGET_CONTROL_SET%\Services\usbhub /v Group /t REG_SZ /d "Boot Bus Extender" /f
reg add HKU\USBBOOT\%TARGET_CONTROL_SET%\Services\usbhub /v Start /t REG_DWORD /d 0 /f

reg unload HKU\USBBOOT

:: Add files of the UsbBootWatcher service to the system32 folder:
echo ========================================================================== 3 / 4
if exist .\%TARGET_PROCESSOR_ARCHITECTURE% goto copyfiles
goto end
:copyfiles
if exist "%TARGET_DIRECTORY%\UsbBootWatcher.exe" goto ONLINE
echo Copying service files...
copy .\%TARGET_PROCESSOR_ARCHITECTURE%\UsbBootWatcher.exe %TARGET_DIRECTORY%\UsbBootWatcher.exe
copy .\%TARGET_PROCESSOR_ARCHITECTURE%\UsbBootWatcher.conf %TARGET_DIRECTORY%\UsbBootWatcher.conf
copy .\USBboot.bat %TARGET_DIRECTORY%\USBboot.bat"
echo.

:ONLINE
if "%TARGET_DRIVE%"=="" (
echo Installing UsbBootWatcher...
UsbBootWatcher.exe /install
)

:: Bon voyage!
echo ========================================================================== 4 / 4
echo All done
echo.
pause

При копировании этого текста в.bat файл должно получиться ровно 94 строки (от @echo off до :end ), включая пустые. В нём есть две очень длинные строки, которые могут быть разбиты на две при операции copy/paste из некоторых браузеров, не понимающих тэга . Так что будьте внимательны. Если батник будет покорёжен, то нужную работу он не выполнит и BSOD после первого рестарта при установке винды будет неизбежен!

На днях случилась одна интересная ситуация, сейчас расскажу.

Потребовалось мне переустановить Windows 7 на компьютере. Казалось бы банальнейшая вещь, неужели у автора кризис жанра и он решил рассказать о том как ставить семерку? Спокойствие, до такого не опущусь, просто хотелось создать интригу:)

Итак, имеем вполне рабочий компьютер, на котором благополучно жила около года Windows 7 без каких-либо переустановок. В связи с продажей компа, понадобилось залить чистую систему на радость новому владельцу. Дистрибутив тот же, оборудование соответственно тоже без изменений, а семерка упорно не встает.

Windows has encountered a problem communicating with a device connected to your computer.
This error can be caused by unplugging a removable storage device such as an external usb drive while the device is in use, or by faulty hardware such as a hard drive or cd-rom drive that is failing. Make sure any removable storage is properly connected and then restart your computer.
If you continue to receive this error message, contact the hardware manufacturer.
Status: 0xc00000e9
Info: An unexpected i/o error occurred

Вот мой вердикт: 0xc00000e9 - 100% проблема оборудования, в моем случае глючил DVD привод, который последний раз использовался для установки Windows год назад (проблема так же возникает при плохом качестве самой болванки или взаимной нелюбви конкретного привода к конкретному диску). Да... всё идет к тому, что DVD, как и CD приводы себя изживают. На моем новом Mac mini его например уже нет, впрочем как и на нетбуке.

Ситуация усугублялась ещё тем, что и две болванки с дистрибутивом Windows были уже не девочками, и даже на заведомо рабочем приводе отказались устанавливаться вылетая с такой же ошибкой - вот и как тут не верить в совпадения.

Хотелось заметить, что с официального лицензионного диска Windows 7 Pro, систему удалось поставить даже с моего родного DVD привода. Видимо штампованные диски как ни крути, читаются лучше самописных. Хватит предисловий, ведь рассказ на самом деле о другом.

Передо мной встал вопрос, как установить операционку без DVD?

Чистых болванок под рукой нет, флешек тоже, зато есть образ дистрибутивного диска в формате ISO , жесткий диск от какого-то старенького ноутбука и адаптер для подключения последнего к USB (т.е. другими словами внешний жесткий диск).

Оказалось, что устанавливать Windows 7 с USB HDD даже проще, чем с USB FLASH и уж гораздо быстрее, чем с DVD. Вся установка у меня заняла около 10 минут (тут время конечно зависит от производительности вашего компьютера). Данный метод установки подходит как для настольных PC, так и для ноубтуков с нетбуками.

Подготовка загрузочного HDD

Тут всё просто. Нам понадобится создать первичный раздел (примерно 4Gb) на нашем внешнем USB диске и сделать его активным. Оставшееся место можно занять другим разделом и использовать по прямому назначению (например организовать файлопомойку).

Опишу подробно процесс создания раздела без стороннего софта, используя исключительно средства Windows. ВСЕ ДАННЫЕ НА ВНЕШНЕМ HDD БУДУТ УДАЛЕНЫ!

1. Панель управления -> Администрирование -> Управление Компьютером (Управление дисками)

2. Выбираете ваш USB HDD

(клик правой кнопкой мыши) - Удалить том;

(клик правой кнопкой мыши) - Создать простой том;

В появившемся окне выбираем размер тома 4200 Мегабайт (размер дистрибутива), и жмем далее. Если спросят, выбираем любую свободную букву диску. После чего необходимо отформатировать наш новый раздел FAT 32 , жмем далее и готово.

Теперь делаем созданный раздел активным (клик правой кнопкой мыши) - сделать раздел активным. Второй раздел (если вы его создавали) делать активным не надо.

3. Копирование Windows 7 на USB HDD

Если у вас ISO образ, как у меня, то просто распаковываем его на созданный активный раздел жесткого диска (я использовал 7zip для этого)

Если у вас установочный DVD, скопируйте всё его содержимое на активный раздел вашего USB HDD.

Теперь можно спокойно установить Windows. Выберете в BIOS ваш USB HDD в качестве Primary Boot Device, либо посмотрите какую кнопку предлагается нажать при запуске компьютера для выбора источника загрузки. Практически все современные материнские платы предоставляют такой выбор.

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

Итак, нам понадобится:

→Рабочий(!) карман для HDD;
→Жесткий диск aka винчестер aka Hard Disk Drive(HDD);
→Образ Windows 7;
→ЭВМ с USB портами, на которой мы можем работать;
→Желательно, чтобы BIOS устройства, на котором планируется использовать USB HDD, имел поддежку загрузки с USB устройств. На самом деле, из всех проблем, которые мы поимеем, это будет наиболее некритичная, потому что подгружать USB шину, можно будет посредством оптического диска или дискеты. Но об этом позже.

Итак, если мы попробуем установить OS привычным образом, будем посланы далеко, Windows нас предупредит, что такие расклады она мягко говоря не приемлет, и на USB носители устанавливаться не желает. Если же установить систему на HDD посредством подключения напрямую к SATA/IDE, а потом засунуть в карман и попытаться загрузиться, получим BSOD. Поэтому, если у вас под рукой нет рабочей машины, сделать ничего не получится(по крайней мере, у меня не получилось).

Не беда, находим по друзьям/соседям/знакомым рабочий компьютер, желательно с подключением к сети. Качаем маленькую и удобную программку PWboot . Процесс пользования программой хорошо описан в статье , поэтому описывать смысла не вижу. Важно, чтобы система разворачивалась на активный физический раздел жесткого диска(по крайней мере, у меня по другому не заработало). Работать с VHD мне не нужно было абсолютно, поэтому система была установлена просто на физический диск. Процесс довольно быстр, даже при использовании USB 2.0. В принципе, это все.

Казалось бы, на этом можно было бы закончить пост, потому что при подключении HDD через USB, мы загрузим систему, установим драйвера, все будет хорошо и прекрасно. . После того, как система любезно предложит перезагрузиться, чтобы загрузиться со свежими дровами и мы с этим согласимся, то получим BSOD сразу после экрана «Запуск Windows».
А разгадка одна: «--С особенностями загрузки Windows 7 я особо не знаком, но вкратце суть примерно такая: загрузчик читает ядро и самые важные драйвера (к которым USB не относится) и передаёт управление ядру, которое должно прочитать всё остальное, но в нашем случае оно ничего не найдёт». Поэтому, чтобы такого не случалось, перед завершением работы/перезапуском нужно сделать следующее: « в реестре по адресам установить значение ключа Start в 0». И это нужно делать каждый раз после установки драйверов.
В статье на хабре есть
@echo off
if "%1"=="fix" goto:fix

rem -- install task
copy /y "%~f0" "%SystemRoot%\system32\usbbootfix.ba t"
SCHTASKS /Create /RU SYSTEM /SC ONEVENT /MO "* and EventID=20003]]" /EC System /TN USBBootFix /TR ""%SystemRoot%\system32\usbbootfix.b at" fix" /F
rem -- apply other settings
fsutil behavior set disablelastaccess 1
fsutil behavior set disable8dot3 1
reg add "HKLM\SYSTEM\CurrentControlSet\Control\S ession Manager\Memory Management" /v DisablePagingExecutive /t REG_DWORD /d 1 /f
reg add HKLM\SYSTEM\CurrentControlSet\services\p ciide /v Start /t REG_DWORD /d 0x0 /f
reg add HKLM\SYSTEM\CurrentControlSet\services\m sahci /v Start /t REG_DWORD /d 0x0 /f
reg add HKLM\SYSTEM\CurrentControlSet\services\i ntelide /v Start /t REG_DWORD /d 0x0 /f
reg add HKLM\SYSTEM\CurrentControlSet\services\v iaide /v Start /t REG_DWORD /d 0x0 /f
rem -- run:fix once after install

:fix
call:fixservice usbehci "Boot Bus Extender"
call:fixservice usbohci "Boot Bus Extender"
call:fixservice usbuhci "Boot Bus Extender"
call:fixservice usbhub "System Bus Extender"
call:fixservice usbstor "SCSI miniport"
goto:eof

:fixservice
setlocal
set Start=
set Group=
for /f "skip=2 tokens=1,2,*" %%I in ("reg query HKLM\SYSTEM\CurrentControlSet\services\% ~1") do (
if "%%I"=="Start" set Start=%%K
if "%%I"=="Group" set Group=%%K
)
if not "%Start%"=="0x0" reg add HKLM\SYSTEM\CurrentControlSet\services\% ~1 /v Start /t REG_DWORD /d 0x0 /f
if not "%Group%"=="%~2" reg add HKLM\SYSTEM\CurrentControlSet\services\% ~1 /v Group /t REG_SZ /d "%~2" /f
endlocal
goto:eof
для автоматизации этого процесса.

Если же мы забыли клацнуть батник после установки драйверов, есть два выхода:
--отцепить USB HDD, подцепить к рабочей машине, использовать PWboot(опция "Patch existing system").
--править реестр ручками, предварительно загрузившись с «реаниматорской» флешки/диска или же посредством средства установки Windows 7, нажав в окне приветствия shift+F10 и набрав в коммандной строке regedit. Либо с помощью пункта «Восстановление Windiows», нажав «Отмена» когда запустится средство поиска проблем(или как-то так, пишу по памяти), нам предложат показать дополнительные возможности, клацаем и выбираем из предложенного списка инструментов «Коммандная строка», далее все то же. ВНИМАНИЕ, если это сделать с помощью встроенной в OS «средство восстановления системы» -- не поможет!
Процитирую, что

  • Запускаем редактор реестра командой «regedit». Стоит отметить, что это — реестр системы восстановления.
  • Подключаем нужный реестр (точнее, улей). Нас интересует "", он хранится в файле %WINDIR%\System32\Config\System. Для этого наводим фокус на «HKEY_LOCAL_MACHINE», в меню выбираем File -> Load Hive -> нужный файл -> Key name: «nn» (в случае установки на VHD, необходимо его в подключить в консоли).
  • В загруженном улье должно быть несколько ControlSet*, нужный записан в «Select/Current». Переходим в «ControlSet*/services». В разделе чуть выше описано, что и зачем делать. Но стоит отметить, что в случае запуска не с USB, могут заинтересовать ключи вроде «atapi», «pciide», «intelide», «msahci» и аналогичные им.

Все, перезагружаемся, система загрузится.

Есть еще один нюанс, с файлом подкачки(если на машине только наш USB HDD. В принципе, если есть HDD стационарный, то все эти свистопляски считаю полным извратом). Нюанс в том, что после каждого перезапуска Windows будет выскакивать окно «Параметры быстродействия» с возможностью указать рамзер свопа. Цимес в том, что если просто указать размер, система предложит перезагрузиться и... при этом заданные параметры не сохранятся, и мы снова будем созерцать окно «Параметры быстродействия». Не критично абсолютно, но решить можно так:

  • качаем отсюда diskmod последней версии;
  • Извлекаем файлы из архива;
  • Правой кнопкой кликаем на diskmod.inf и выбираем «Установить» в контекстном меню.
  • П осле этого устанавливаем размер файла подкачки, в окне «Параметры быстродействия». Перезагружаемся, наслаждаемся.
P.S. Написанное не претендует на энциклопедичность, хрестоматийность. Это не единственно верный вариант решения, просто написал как я решил поставленную задачу.

В данной статье хочу рассмотреть вопросы по установке на внешний USB-накопитель не обычного набора инструментов реанимации, а полноценной рабочей ОС, которую можно носить с собой. И если Linux ставится из коробки на любое устройство и без проблем работает, то Windows и не ставится, и не работает.
Также может быть полезен при загрузке Windows на новом оборудовании (при обновлении материнской платы и т.д.).

Изначально было 2 противоречивых требования души:«всё своё ношу с собой» и «не хочу быть нагруженным», что в итоге вылилось в установку Ubuntu на внешний диск. Всё было замечательно, но чувствовалась какая-то незавершённость. И решил я установить Windows 7 туда же.

Но появились проблемы:

  1. Windows 7 предупреждает о невозможности загрузки с USB (заботливый какой) и не хочет устанавливаться на него;
  2. установщик не умеет работать с VHD;
  3. при загрузке Windows 7 с USB-storage появляется BSOD.
И они были успешно решены.

Нам потребуются

  1. Сам внешний USB-накопитель (в данном случае USB-HDD) с созданными разделами.
  2. Виртуальная машина (в данном случае буду опираться на VMWare Player).
    • стоит отметить, что для распаковки install.wim можно воспользоваться утилитой ImageX из WAIK (Windows Automated Installation Kit, доступный для свободного скачивания с сайта разработчика), об этом можно прочитать в других статьях, например , но у меня же душа очень сильно противилась скачиванию чего-либо лишнего, по-этому я решил обойтись уже установленным VMWare (VMWare Player доступен для свободного скачивания)
  3. Windows 7 Enterprise или Ultimate (только они поддерживают Native VHD boot). Но можно воспользоваться и другой версией и поставить на физический раздел, а не VHD - в таком случае надо просто пропустить манипуляции с консолью при установке.

Поехали

В настройках виртуальной машины подключаем к CD-ROM Windows 7 и добавляем HDD: «Use physical disk» -> выбрать диск, соответствующий USB (скорее всего, он последний). Стоит отметить, что другие диски на данном этапе лучше удалить из виртуальной машины. Загружаемся с CD и попадаем в установщик.
Установка
Сейчас самое время указать установщику VHD. Командой Shift+F10 открывается консоль. Допустим, мы хотим установить Windows на C:\win7.vhd:

Diskpart
create vdisk file=C:\win7.vhd type=fixed maximum=25000
select vdisk file=C:\win7.vhd
attach vdisk
create partition primary
list volume

Убеждаемся, что имеем 3 volume с Fs: UDF, NTFS, RAW. Ну или больше, если на диске есть другие разделы.

Теперь можно уходить с консоли и перейти к непосредственной установке. При выборе назначения установки, мы должны увидеть Disk 1 Partition 1, при выборе которого Windows 7 заботливо предупредит о возможных проблемах, но продолжить всё-таки разрешит.
Теперь можете откинуться на спинку кресла и отдохнуть. По завершению данного этапа установщик должен записать загрузчик на физический раздел, который запустит Windows с виртуального диска. В итоге мы получим рабочую Windows 7 внутри виртуальной машины. Самое время подготовиться к запуску с USB.

Если загрузка системы не происходит
В случае, если мы уже пришли на новое место и там оказалось, что ОС запускаться не хочет, придётся чинить тем, что есть: раздел загрузки Repair, в который Windows скорее всего сам и предложит загрузиться после неудачной попытки (если не предложит - перед загрузкой нажимать F8). Затем открываем «Command Prompt» (в случае неудавшегося автоматического восстановления перед этим нажимаем «View advanced options»).
Загрузка с USB
Т.к. перезапускаться лишний раз всем лень, проверимся мы снова в виртуальной машине. Выключаем её, в настройках удаляем все HDD, запускаемся, перебрасываем USB-HDD в виртуалку и… Понимаем, что наш диск не видно. Но ведь в списке того, что требуется не была упомянута поддержка BIOS"ом загрузки с USB.
Качаем plop boot manager - в архиве есть образы iso и img. Указываем виртуальной машине грузиться с диска plpbt.iso (или plpbt.img для floppy) и уже он передаст управление загрузчику с USB. Всё должно пройти успешно и в итоге запустится Windows 7 и скажет, что найдено новое устройство.

Теперь мы можем перенести внешний диск на любую другую реальную машину и запуститься. Вот и всё. Интересны Ваши предложения по практическому применению.

Краткое резюме
  1. запускаем виртуальную машину, подключив usb-hdd и установщик Windows 7;
  2. в процессе установки указываем, что хотим установить на VHD (по желанию);
  3. меняем приоритет загрузки драйверов;
  4. запускаемся с USB, если BIOS не может, то пользуемся plpbt.

Важные замечания/нерешённые проблемы

  1. до загрузки ядра возможны проблемы с доступом к диску по адресам выше 137Gb (у меня были) - можно посоветовать лишь перенести раздел в начало диска (собственно, в т.ч. и из-за этого ограничения я и устанавливал на VHD, а не создавал новый раздел);
  2. после каждой загрузки Windows сообщает о том, что что-то поменялось и надо переуказать своп - лучше всего указать руками явный размер свопа и назначить его на D: (физический раздел, C: - виртуальный диск), но при запуске на другой машине вопрос снова возникнет, а если там размер памяти другой, то своп будет выбран автоматически;
  3. совсем честные хлопцы предлагают вызывать %windir%\system32\sysprep\sysprep.exe перед переносом на другое железо, но я заметил, что это не обязательно и даже вредно (заново предлагают создать пользователя/сбрасываются настройки/требуется лишний перезапуск после поиска драйверов) - лично у меня всё прекрасно работает и при условии обычного выключения и, что характерно, если ранее система запускалась на данном оборудовании, то повторный запуск пройдёт мгновенно, все драйвера подцепятся автоматически и без перезапусков;
  4. загрузчик (bootmgr, Boot\) должен находиться именно на физическом диске (делается автоматически), а хотелось бы всё сбросить внутрь VHD и уже из grub передавать ему управление.