Установка из iso образа XP, Windows 7, Ubuntu с внешнего жесткого диска (HDD).

Norton Ghost-программа для восстановления из образа

Установка из iso образа XP, Windows 7, Ubuntu с внешнего жесткого диска (HDD).

Речь пойдет о том как сделать загрузочный раздел на внешнем жестком диске, на который скопировать iso образы Windows XP, Windows 7 и Ubuntu Live cd для последующей установки этих систем на локальный диск. Сразу оговорюсь что средство, описанное в данной заметке, предназначено для реализации в системах Windows.

Предыстория.

Недавно, прикупив внешний HDD на 500 Гб, загорелся идеей избавиться от необходимости держать под рукой кучу различных CD дисков для восстановления системы. Для меня удобнее скопировать все необходимое для аварийной загрузки системы или ее установки на вместительный USB диск. Тем более прибавление в семью машин маленького нетбука Samsung N130 не имеющего CD-привода так же подтолкнуло к переходу на загрузку посредством USB (т.к. нетбук не имеел встроенного CDROM).

Хотелось иметь возможность загружаться с USB диска для последующей установки систем Windows XP, Windows 7 и Ubuntu. Загрузившись с последней так же открывается широкое поле для действий над системой, которого мне хватило бы для работы при аварийных ситуациях в системе.

Реализация.

Итак, погуглив, для себя я нашел самый простой и, кажется, правильный метод реализации данной задумки через загрузчик Grub4dos, который позволит грузиться с внешнего HDD USB диска, показывая при этом настраиваемое красивое меню в котором можно выбирать загрузку iso образа. На сайте разработчиков Grub4dos можно найти пометку о том, что реализация загрузки ISO образа находится на эксперементальной стадии. И вправду, оказалось, что не достаточно скопировать ISO образ дистрибутивы систем на внешний USB диск и прописать их в меню загрузки, что бы все работало, все же пришлось немного погуглить еще, о том решении которое я нашел и которое сразу заработало у меня далее. Но сначала про установку Grub4dos.

Установка Grub4dos на внешний жесткий диск.

Для начала запишем grub4dos в MBR (загрузочный сектор) нашего внешнего диска. Для этого делаем следующее:

  • берем архив Grubinst (например «grubinst-1.1-bin-w32-2008-01-01.zip» или если есть — свежее),
  • берем архив Grub4dos (например «grub4dos-0.4.4-2009-06-20.zip» или свежее),
  • узнаем номер диска в MBR которого будем записывать загрузчик, для этого запускаем «C:\Windows\System32\diskmgmt.msc» и смотрим под каким номером определяется системой внешний hdd (скриншот с примером),
  • записываем загрузчик (надеюсь про бэкап помните) командой: «grubinst.exe (hdX,Y)», вместо X подставив номер своего внешнего диска (обычно 0 – номер локального диска, 1 – номер внешнего диска), Y – номер раздела на диске, куда будет скопирован код Grub4dos (обычно это первый раздел, т.е. 0), если у вас внешний hdd определяется под номером 1 и вы хотите записать код grub4dos в первый раздел внешнего диска, значит команда будет «grubinst.exe (hd1,0)»,
  • копируем файл «grldr» из архива grub4dos в корень диска, в MBR которого только что установили загрузчик.

Если все сделано правильно, загрузчик Grub4dos установлен в MBR внешнего жесткого диска. Убедиться в этом можно попробовав загрузиться с внешнего HDD.

Установка ISO образа дистрибутива Windows XP на внешний USB диск для последующей инсталляции (используя FiraDisk).

  • Качаем FiraDisk (ссылка для скачиваения на форуме в конце первого поста)
  • Качаем Winimage (я брал версию winima85.exe).
  • Далее необходимо распаковать содержимое FiraDisk и отредактировать файл txtsetup.oem (находящийся в корне архива FiraDisk), заменив его содержимое на следующее:
  • [Disks]
  • d1 = ""FiraDisk Installation Disk"", \firadisk.sys, \
  • d1 = ""FiraDisk Installation Disk"", \firadisk64.sys, \
  • [Defaults]
  • scsi = firadisk32
  • [scsi]
  • firadisk32 = ""FiraDisk Virtual Disk Driver x86"",firadisk
  • firadisk64 = ""FiraDisk Virtual Disk Driver x64"",firadisk
  • [Files.scsi.firadisk32]
  • driver     = d1,firadisk.sys,firadisk
  • inf        = d1,firadisk.inf
  • [Files.scsi.firadisk64]
  • driver     = d1,firadisk64.sys,firadisk

inf        = d1,firadisk.inf

  • Запускаем Winimage, и создаем образ дискеты (File —> New):
  • Далее копируем содержимое архива FiraDisk вместе с новым отредактированным txtsetup.oem в образ дискеты (Image —> Inject):
  • Сохраняем образ дискеты в файл firadisk.ima, выбрав расширение образа «ima»:
  • Осталось добавить в menu.lst (находящийся в корне загрузочного USB диска) следующие строчки:
  • title Windows XP
  • map --mem /firadisk.ima (fd0)
  • map --mem /winxp.iso (hd32)
  • map --hook

chainloader (hd32)

При этом строка «map –mem /winxp.iso (hd32)» явно указывает, что образ системы Windows XP должен находиться в корне USB загрузочного диска и называться «winxp.iso«.

Теперь, загрузившись с внешнего USB диска и выбрав в меню Grub4dos пункт «Windows XP», должен загрузиться образ дискеты firadisk.ima, который в свою очередь автоматом установит драйвер firadisk, благодаря которому образ winxp.iso должен загрузиться в память для последующего запуска.

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

Установка ISO образа Windows 7 на внешний диск для дальнейшей инсталляции (используя imdisk).

Чтобы запустить образ Windows 7, достаточно скопировать его на USB диск и добавить в menu.lst следующее содержимое (заменив «win7.iso» на имя своего образа):

title Windows 7

map /win7.iso (hd32)

map --hook

chainloader (hd32)

Однако при попытке инсталляции Windows 7, установка ругается что не может найти CDROM и не дает возможности продолжить установку. Поэтому потребуется драйвер виртуального CDROM’а, который можно «подсунуть» установке в этот момент.

Для этого делаем следующее:

  • Качаем драйвер виртуального CDROM’а imdisk.
  • Распаковываем скачанный архив imdiskinst.exe в папку imdisk (имя папки должно быть именно imdisk).
  • Далее надо бы создать и сохранить в папку imdisk три исполняемых файла (SetupImDisk.cmd, SetupCDROM7.cmd, Setup.bat), они будут запускать установку драйвера виртуального CDROM’а во время инсталляции Windows 7. Ниже содержимое этих файлов:
    Файл SetupImDisk.cmd :
  • @ECHO ON

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

Файл SetupCDROM7.cmd :

@ECHO ON

Set fullname=%srcdrv%\win7.iso

imdisk -a -f %srcdrv%\win7.iso -m #:

Файл Setup.bat :

@ECHO OFF

for %%x 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 %%x:\imdisk\SetupImDisk.cmd set srcdrv=%%x:

echo Find the USB in %srcdrv%\

echo.

cd\

%srcdrv%

cd imdisk

echo Begin with SetupImDisk.cmd

echo.

call %srcdrv%\imdisk\SetupImDisk.cmd

@ECHO OFF

echo.

echo Now going to SetupCDROM.cmd

echo.

pause

echo.

call %srcdrv%\imdisk\SetupCDROM7.cmd

@ECHO OFF

echo.

echo Done. Have Fun.....

echo.

pause

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:\look.win set install=%%y:

cd\

%install%

cd sources

setup.exe

exit

  • Теперь копируем получившуюся папку imdisk в корень загрузочного USB диска (должен получиться такой путь «(ИМЯ ДИСКА):\imdisk\», например «E:\imdisk\«).
  • Осталось дать имя «win7.iso» образу Windows 7, размешенного в корне загрузочного диска (должен получиться такой путь «(ДИСК):\win7.iso», например «E:\win7.iso«), необходимо соблюсти именно такой путь для того, чтобы не было ошибок при исполнении CMD и BAT скриптов, написанных выше, т.е. они привязаны к именам файлов.
  • И напоследок лучше еще раз проверить наличие в menu.lst правильной записи запуска iso образа или при отсутствии добавить ее:
  • title Windows 7
  • map /win7.iso (hd32)
  • map --hook

chainloader (hd32)

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

  • Зайти в режим командной строки комбинацией Shift+F10
  • Перейти в дирикторию imdisk на загрузочном USB диске командой «pushd E:\imdisk» (подставив вместо буквы диска E ту, под который в данный момент находится USB диск).
  • Запустить установку драйвера командой setup.bat (произойдет установка драйвера «imdisk» и монтирование образа «win7.iso» в виртуальный CDROM)

Далее у меня установка ОС Windows 7 прошла успешно.

Установка ISO образа Ubuntu на внешний USB диск для последующего запуска.

Для запуска с внешнего USB диска образа Ubuntu 10.04 мне было достаточно добавить в menu.lst следующую запись:

title Ubuntu

map /ubuntu.iso (hd32)

map --hook

root (hd32)

kernel /casper/vmlinuz iso-scan/filename=/ubuntu.iso boot=casper quiet splash -- locale=ru_RU

initrd /casper/initrd.lz

После запуска установка Ubuntu прошла успешно.