Установка из iso образа Windows 7, Windows 8 с USB или внешнего жесткого диска HDD, используя загрузчик Grub4dos.

Установка Windows 7или Windows 8 с USB или внешнего жесткого диска HDD особых проблем не вызывает, при условии, что вам нужно установить только какую либо определенную систему, а не иметь полный комплект установочных дистрибутивов.


Для этого достаточно сделать загрузочную флешку или внешний HDD , извлечь все файлы из образа архиватором в корень вашего загрузочного устройства, а в menu.lst вставить строки:



title Установка Windows 7 - 8
map --unmap=0:0xff
map --unhook
root (hd0,0)
chainloader /bootmgr



Ну а если вы часто ходите в гости, или у вас на балансе предприятие с кашей из операционных систем, и начальник знающий о лицензиях и последствиях не соблюдения данных, а в корень загрузочного диска вы не можете закинуть больше одного дистрибутива, вот тут и возникает потребность иметь установочный дистрибутив в виде iso.
Так Windows 7 имеет шесть редакций:
1) Начальная (Starter; обычно предустановлена на нетбуках),
2) Домашняя базовая (Home Basic),
3) Домашняя расширенная (Home Premium),
4) Профессиональная (Professional),
5) Корпоративная (Enterprise; для продажи крупным корпоративным клиентам),
6) Максимальная (Ultimate).
Теперь умножайте на 2 (х86, х64) получаем 12 установочных дистрибутивов.
Известны четыре редакции Windows 8
1) Windows 8 (Windows 8 Core)
2) Windows 8 Профессиональная (Windows 8 Pro)
3) Windows 8 Корпоративная (Windows 8 En terprise)
4) Windows RT
Умножайте на 2 (х86, х64) получаем ещё 8 установочных дистрибутивов.

На самом деле смонтировать ISO образ для загрузки не составляет труда, достаточно положить в корень загрузочного диска образ win8.iso прописать в menu.lst



title Windows 8
map /win8.iso (hd32)
map --hook
chainloader (hd32)



Но здесь сталкиваемся с 2 проблемами:
1 При попытке инсталляции Windows 7 или Windows 8, установка ругается что не может найти CDROM
2 Нельзя разбить диск на который устанавливается система.
В общем, решению этих 2 проблем и посвящена эта статья.

Решение с драйвером DVD-ROM
1.Качаем файл imdiskinst.exe драйвер виртуального CDROM imdisk (http://www.ltr-data.se/opencode.html/#ImDisk).
2.Создаем в корне на загрузочном USB носителе папку imdisk
3.При помощи архиватора извлекаем содержимое из файла imdiskinst.exe в папку imdisk
4.В корне USB создаем папки “_ISO” в ней папку “BOOT”
5.В папку BOOT ложем образы установочных дисков ISO (в названиях образов должны отсутствовать пробелы, кириллица, и спец символы, для примера WIN7.iso WIN8.iso)
6.Чтобы не засорять загрузочное меню grub4dos в файле menu.lst пишем переход в дополнительное меню menu_w.lst



title Меню установки Windows 7 Windows 8 из ISO файлов >>>
configfile /_ISO/BOOT/menu_w.lst



7.В папке /_ISO/BOOT/ создаем файл menu_w.lst и вставляем в него



timeout 30
default 0

title <<< Возврат в "Главное меню"
configfile /menu.lst

title 1 WIN7.ISO Setup Microsoft Windows 8
map /_ISO/BOOT/WIN7.ISO (hd32)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
chainloader (hd32)

title 2 WIN8.ISO Setup Microsoft Windows 8
map /_ISO/BOOT/WIN8.ISO (hd32)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
chainloader (hd32)



8.И последнее создаем в корне USB файл w7.bat и вставляем в него текст:



:: старт драйвера imdisk при установке Win 7/8 из ISO
@echo off
cd /D %~dp0
cd imdisk

rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 132 .\imdisk.inf

set file_iso=0

for %%y in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%y:\imdisk\Win78.TXT set disk_iso_boot=%%y:
if "disk_iso_boot"=="" exit /b


:: -- для лтладки
del /Q %disk_iso_boot%\_iso\boot\Win78.bat

if exist %disk_iso_boot%\_iso\boot\Win78.bat goto oldWin78bat
set file_out=%disk_iso_boot%\_iso\boot\Win78.bat
@echo :: после изменений отредактируйте этот список> %file_out%
@echo :: или удалите этот файл - он будет создан автоматически>> %file_out%
@echo :: (after changes edit this list>> %file_out%
@echo :: or delete this file - it will be created automatically)>> %file_out%
@echo echo off >> %file_out%
@echo cls >> %file_out%
@echo echo ----------- Выберите подключаемый образ (Select image) --------------->> %file_out%
set /A nn=0
For %%i in ("%disk_iso_boot%\_iso\boot\*.iso") Do Call :files1 "%%i"
@Echo echo. >> %file_out%
@Echo Enter the number or name of the file:>> %file_out%
@Echo set /P file_iso=Введите номер или имя файла:  >> %file_out%

set /A nn=0
For %%i in ("%disk_iso_boot%\_iso\boot\*.iso") Do Call :files2 "%%i"
:oldWin78bat


:find_file_iso
cls
echo.
@echo ---- В папке %disk_iso_boot%\_iso\boot\ найдены файлы (files found) ----
dir %disk_iso_boot%\_iso\boot\*.iso  /B
@echo ------------ Выберите подключаемый образ (Select image): ---------------
echo.
if not exist %disk_iso_boot%\_iso\boot\Win78.bat goto noWin78bat
call %disk_iso_boot%\_iso\boot\Win78.bat
goto yesWin78bat
:noWin78bat
echo.
set /P file_iso=Введите имя файла (Enter name of the file):
:yesWin78bat
if not exist %disk_iso_boot%\_ISO\BOOT\%file_iso% cls&echo. &echo ! НЕ найден файл (File NOT found) "%file_iso%"&echo. &pause&goto find_file_iso


@echo.
@echo --- подключение образа (connection image) %file_iso% ... ---
@echo.

imdisk -a -f %disk_iso_boot%\_ISO\BOOT\%file_iso% -m #:

for %%y in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%y:\boot\boot.sdi set install=%%y:
cd\
%install%
cd sources
setup.exe
exit


:files1
set /A nn+=1
@Echo Echo %nn%) %~nx1 >> %file_out%
goto :EOF


:files2
set /A nn+=1
@Echo if %%file_iso%%==%nn% set file_iso=%~nx1>> %file_out%
goto :EOF



Теперь можно переходить к установки системы.
После загрузки GRUB попадаем в меню файла menu.lst, из него переходим в меню файла menu_w.lst, в котором выбираем установку Windows 7 или Windows 8.
Запускаем установку нашей системы, далее всем знакомая процедура, до момента появления вот такой картинки

На этом этапе нажимаем Обзор и смотрим, каким диском у нас определился наш USB носитель D: E: F: запоминаем букву диска.
Нажимаем сочетание клавиш Shift + F10, которая вызывает консоль, вводим букву нашего загрузочного диска и нажимаем Enter. Перейдя в корень нашего USB носителя вводим 7w и нажимаем Enter.

После обработки файла w7.bat вы увидите меню выбора образа, который необходимо смонтировать в виртуальный CDROM

На данном слайде у меня в папке /_ISO/BOOT/ находилось 9 образов установочных систем.
Введите номер образа который вы запускали из меню файла menu_w.lst, если WIN7.ISO то нажмите 1, если WIN8.ISO то 2
В папке /_ISO/BOOT/ после данной процедуры автоматически создастся файл Win78.bat. Если у вас в папке /_ISO/BOOT/ с десяток образов, то согласно этого файла вы сможете отредактировать файл menu_w.lst для отображения всех образов добавляя их по аналоги согласно пункта 7 данной статьи.
Проблема с невозможностью разбить диск для установки Windows связана с тем, что установка определяет USB диск как первым, а встроенный, как второй.
Если вы устанавливаете Windows из образа, и пользуетесь горячей клавишей с какого диска грузиться, то файл menu_w.lst должен выглядеть как


 

map /_ISO/BOOT/ win7.iso (hd32)
map --hook
chainloader (hd32)


Если вы в БИОСе устанавливаете грузиться с USB, то файл menu_w.lst



map /_ISO/BOOT/WIN7.ISO (hd32)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
chainloader (hd32)



Для кого лениво создавать файлы, выкладываю архив, распаковав который в корень вашего USB вы получите готовый вариант установки Windows7 и Windows8 из ISO образов.

Что бы избежать Error 60 образ ISO должен быть дефрагментирован. Осуществить можно дефрагментацию образа ISO программой WinConting (http://wincontig.mdtzone.it/ru/index.htm)