Установка windows поверх линукс

Установка Windows 7 поверх PXE из Linux без использования WAIK

1. Обзор

1.1. Введение

В статье приводится описание, как из Linux по сети (PXE) развернуть для работы систему Windows 7. Не нужно пользоваться «рабочим компьютером» с установленным пакетом WAIK (Windows Automated Installation Kit — пакет автоматической установки Windows), нужна лишь система Linux. Я использую 32-битный инсталлятор Centos 5.3, но если вы разбираетесь в том, что делаете, то я уверен, что вы сможете выполнить эту работу на том варианте Linux, который вы лично предпочитаете использовать. Для этого вам нужно следующее:

  • сервер tftp
  • сервер dhcp
  • сервер samba
  • пакет ris для linux
  • PXELinux
  • hivex
  • мой скрипт (wimlib/bcdedit.pl/getbcdlocation.sh)

Последние четыре пакета, объединенные вместе в один пакет, вы можете скачать с сайта www.ultimatedeployment.org. Скачайте пакет отсюда .

Все остальное либо есть в вашем дистрибутиве Linux, либо может быть достаточно просто установлено с помощью менеджера пакетов вашего дистрибутива Linux (um, apt-get и т.д.).

Загрузите пакет и распакуйте его корневой каталог системы. Будет создан каталог /work, в котором все будет происходить. В остальной части этого документа я предполагаю, что вы это уже сделали и что там же находятся скрипты и конфигурационные файлы. Конечно, вы всегда можете распаковать его в другое место, куда захотите .

Отказ от ответственности: Настоящий подход все еще находится в стадии разработки, и в нем могут быть (очевидные) ошибки. В действительности здесь описывается, как я развернул систему Windows 7 для работы в UDA. Это моя рабочая среда, поэтому дайте мне знать, если у вас есть исправления или другие советы и подсказки.

1.2. Что должны получить

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

1.3. Ссылки

Я нашел в сети интересную информацию, объединил ее и при помощи некоторых проб и ошибок придумал этот метод. Вот некоторые ссылки для получения дополнительной информации.

Дайте мне знать, если вы найдете более интересные статьи! (пожалуйста, сделайте это в форуме на www.ultimatedeployment.org ).

2. Конфигурирование и запуск сервисов

2.1 dhcp

Запустите сервер dhcp следующим образом

Файл dhcpd.conf должен выглядеть приблизительно следующим образом. Если захотите, вы можете внести изменения в ip-адреса, выделенные красным цветом:

Читайте также:  Как создать active directory windows server 2012

Файл pxelinux.0 является загрузочным файлом, который запускает весь процесс pxe. Когда клиент загружается, этот файл загружается первым и, в свою очередь, загружает конфигурационный файл pxelinux.cfg/default. Этот файл выглядит следующим образом:

2.2 tftpd

Запустите демон tftp следующим образом

Эта команда запускает tftpd со следующими параметрами:

Конфигурационный файл /work/conf/tftpd.conf лишь заменяется обратный слэш на прямой слэш:

2.3 samba

Запустите сервер samba следующим образом

Убедитесь, что каталог /work/sambashare экспортируется как sambashare REMINST. Это важная часть файла smb.conf:

2.4 binl

Запустите сервер binl следующим образом

Эта команда запустит сервис binl со следующими параметрами:

Здесь журнальный файл важен, поскольку в дальнейшем он должен быть прочитан. Сервис binl определяет, какой загрузочный файл клиент скачал последним, для этого выполняется следующий скрипт. Скрипт ищет журнальный файл tftpd и возвращает место, где расположен файл bcd, который находится в том же самом каталоге, что и найденный файл wdsnbp.com. Это необходимо, т.к. мы хотим знать, какой вариант был выбран в меню загрузки PXE.

3. Подготовка загрузочных файлов Windows

3.1. Импорт загрузочного файла, используемого по умолчанию

Прежде всего нам нужно смонтировать установочный DVD. Я смею предположить, что он находится в плейере DVD, известным как /dev/cdrom. Вы должны смонтировать его следующим образом:

Если у вас есть файл iso, то вы должны сделать что-то вроде следующего:

Как только вы это сделаете, файлы, расположенные на DVD (внутри образа), можно будет опубликовать с помощью samabashare. Затем нам нужно извлечь отдельные файлы из файла boot.wim, который находится на DVD в каталоге /sources. Они должны быть в самом конце каталога /work/tftproot, поэтому мы сначала выполняем следующее:

Обратите внимание, что мы извлекли файл pxeboot.n12, а затем переименовали его в pxeboot.com!

3.2. Подготовка файла WIM

Что ж, теперь нам нужно создать файл winpe.wim. Мы делаем следующее:

3.2.1. Создаем файл winpehl.ini

В нем должно быть что-то вроде следующего:

Убедитесь, что он имеет формат dos (а не формат unix)

3.2.2. Создаем скрипт install.cmd

Создайте скрипт install.cmd, который позаботится о установке сразу, как будет запущен Winpe:

3.2.3. Добавляем сетевые драйверы

Идем дальше. Сетевые драйверы являются трудной темой. Вам нужны будут сетевые драйверы, которые поставляются для вашей сетевой карты, их можно скачать с сайта поставщика сетевой карты, а некоторые из них могут быть уже в дистрибутиве Windows 7 WINPE на инсталляционном носителе. Я предполагаю, что вы будете с помощью PXE (загрузка по сети) загружать виртуальную машину vmware с сетевой картой AMD (которая во многих случаях, является сетевой картой, используемой по умолчанию для новой виртуальной машины).

Если вы загрузили виртуальную машину и, когда загрузка идет из сети, то сообщается о сетевой карте Intel E1000, вам придется остановить виртуальную машину, удалить следующие строки из файла .vmx и перезапустить виртуальную машину.

Если вы теперь запустите виртуальную машину, то вам будет сообщено, что есть сетевая карта AMD . Так что теперь нам нужно драйвера windows PE для этой сетевой карты AMD. Есть станица , на которой вы можете узнать откуда их можно скачать:

Читайте также:  С windows temp delete

Для windows PE вы можете использовать драйвера windows XP. В общем, вам нужен файл .inf и файл .sys. Файл inf обычно содержит список файлов идентификаторов сетевое устройств и соответствующих им драйверов .sys). Если вы не знаете, сетевая с каким идентификатором используется в вашей системе, то просто скопируйте в каталог /work/wim несколько драйверов (файлы inf и sys).

3.2.4. Создаем файл actionfile

Ниже указаны действия, которые нам нужно выполнить, когда из файла boot.wim создается файл winpe.wim. Вы можете захотеть отредактировать список драйверов, которые указываются в файле /work/wim/actionfile.txt. Этот файл может выглядеть следующим образом:

3.2.5. Создаем файл WIM

Теперь мы можем создать файл winpe.wim

cd /work/wim /work/bin/updatewim /work/sambashare/win7/sources/boot.wim /work/tftproot/winpe.wim /work/wim/actionfile.txt

3.3. Создание загрузочных файлов для конкретных систем

Сначала нам нужно инструментальное средство hivex. Архивы RPM, которые я использую, находятся в этом пакете .

Возможно, что для вашего любимого дистрибутива Linux вам потребуются другие пакеты с дистрибутивами. Нам нужны эти инструментальные средства для того, чтобы иметь возможность отредактировать файлы windows BCD (Boot Cofiguration Data — конфигурационные данные для загрузки). Теперь мы выполняем три операции для обеих систем, которые мы хотим установить дистанционно:

  • Копируем данные Boot Cofiguration Data с установочного DVD в загрузочный каталог систем pxe
  • Изменяем их для того, чтобы получить PXE BCD
  • Копирует в этот каталог программу сетевой загрузки сервиса развертывания Windows (wdsnbp.com) и также и переименовываем ее в wdsnbp.0

Вы можете легко выполнить эти операции для более, чем двух систем .

4. Подготовка файлов автоматической установки

4.1. Поддерживаемый язык

Сначала узнаем, какие языки поддерживаются на данном установочном носителе.

Вы должны найти что-то вроде следующего

По-видимому, на этом DVD есть язык en-US (и еще en-us).

4.2. Определение версии ОС

Теперь нам нужно проверить, какая версия поддерживается установочным DVD

Вы должны получить нечто вроде следующего:

Так что это Windows 7 Ultimate OEM DVD с лицензией (non Volume). Нам нужна эта информация для того, чтобы иметь возможность выбрать образ в следующем разделе:

4.3. Выбор образа подходящего инсталлятора

Сначала мы сделаем дамп информации XML файла install.wim:

Вы должны получить приблизительно следующее:

Поскольку мы знаем с каким языком и какой версией windows 7 мы имеем дело, мы можем отредактировать файлы автоматической установки. Я выделил третий образ, поскольку это версия Ultimate Edition, которую мы нашли в предыдущем разделе. Это Architecture 0, что означает — x86.

4.4. Создаем/редактируем файлы автоматической установки

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

Итак, как только вы это сделаете, вы должны быть в состоянии загрузить (загрузка pxe) новую систему, и вы должны иметь возможность выбирать из двух систем, которые вы настроили для автоматического развертывания. Если этого сделать не удастся, то, пожалуйста, перейдите к следующему разделу «Решение возникших проблем» и поделитесь своим опытом на форуме на сайте ultimatedeployment.org .

5. Решение возникших проблем

Ниже приведен упрощенный обзор процесса загрузки, через который проходят клиенты PXE, когда используется этот метод.

  • C обозначает клиентскую систему (система, которая должна быть развернута)
  • S обозначает сервер (систему, на которой находятся конфигурационные файлы и на которой запущены сервисы, позволяющие установить клиентскую систему)
Читайте также:  Windows 10 не видит сканер мфу samsung

Сервер ищет в файле находит в tftpd.log, откуда клиент загрузил свой файл wdsnbp и предполагает, что файл BCD находится в том же самом каталоге.

Клиент читает файл BCD и определяет, откуда нужно скачивать файлы boot.sdi и winpe.wim

Затем клиент загружается в Windows PE. Когда это будет сделано, то от нас потребуется подготовить следующее:

  1. Найти в реестре адрес IP сервера загрузки
  2. Найти в реестре конкретные данные о загрузке
  3. Загрузить сетевые драйверы и запустить сервис сети
  4. Переместить файлы setup.exe и sources\setup.exe на прежнее место
  5. Подключиться через Samba к серверу загрузки
  6. Разбить диск на разделы с помощью файла diskpart, который можно найти через samba на сервере загрузки
  7. Переместить файлы setup.exe и sources\setup.exe на прежнее место
  8. Удалить из реестра ответ PXE binl для того, чтобы предотвратить установку WDS вместо обычной установки
  9. Запустить setup.exe с файлом автоматической установки, который можно найти на сервере загрузки

Когда возникают проблемы, то, очевидно, что нужно заглянуть в следующие журнальные файлы:

  • журнальный файл tftpd (/work/log/tftpd.log)
  • журнальный файл dhcpd (/var/log/messages)
  • журнальный файл binl (/work/log/binl.log)

Если я найду дополнительную информацию, то я ее добавлю.

установка windows поверх linux

Сейчас стоит xubuntu, потребовалось установить win8, не затронув при этом linux. Как это правильно сделать не испортив grub при установке?

Восстанови после установки.

Ни как, опосля придётся восстанавливать grub.

Устанавливаешь восьмерку, грузишься с лайсиди линукса устанавливаешь граб

У Alligator в загрузчике win7 видел пункты федоры, может их загрузчик наконец-то научился грузить что-то кроме венды?

Ставь отдельно на 2 компа, потом с виндой поставишь сверху.

Ставь отдельно на 2 компа, потом с виндой поставишь сверху.

Ты сделал мой вечер!

А по-моему так ТСу плакать надо и не вечер ещё.

Поставь на другой винт/флешку

А чего ему плакать? Задачка наипростейшая вроде, с кучей решений. Например:

Устанавливаешь восьмерку, грузишься с лайсиди линукса устанавливаешь граб

Или я что-то пропустил?

Acronis или Gpartedom режешь раздел с лялихом

А там уже сам разберешься

У мя так Хакинтош Убунту Винда и Рековери грузиться!=)))

может их загрузчик наконец-то научился грузить что-то кроме венды?

Нет, не научился. Но chainload (правда из копии в файле) умел ещё ntldr, и bootmgr не разучился.

Плюсую. Лучше всего на второй винт отключив первый физически. Потом в бут меню выбираешь с чего грузиться.

Забекапь граб куда то, и все дела.

2 минуты работы, если есть флешка с дистром.

Вариант 1 Ставь винду, восстанавливай граб и ставь винду. Вариант 2 Ставь Винду и через прогу EasyBCD добавляй Linux в загрузчик винды.

bs=512 — это ещё и разметка диска кроме собственно загрузчика.

И в чем проблемка? Раздел должен быть сделан до установки, у тс он уже есть насколько я понял.

Хотя конечно лучше писать bs=446 на всякий случай.

Это как? т.е. можно заставить bootmgr загружать после себя Linux?

т.е. можно заставить bootmgr загружать после себя Linux?

Оцените статью