Для загрузки с флешки нужно на нее смонтировать образ диска (HDD, FDD, ISO и тд.) чтобы он был как бы непосредственно с устройства а не виртуальным. При создании виртуальных дисков используются вызовы BIOS, но Windows после перехода в защищенный режим вызовы BIOS не использует. В процессе установки с виртуального диска винды получаем БСОД 0х7b, тобиш недоступное загрузочное устройство.Выход есть,можно использовать загрузчик GRUB, а конкретно его более продвинутую модификацию GRUB4DOS (скачиваем последнюю версию отсюда http://greenflash.su/Grub4Dos/files/links.htm ).Качаем с бутленда http://www.boot-land.net/forums....&t?04 FiraDisk (File/RAM Disk driver for Windows). Запускаем WinImage и делаем образ обычной незагрузочной дискеты, туда вставляем все файлы драйвера из скачаного архива FiraDisk (firadisk.inf, firadisk.sys, firadisk64.sys). В текстовом редакторе пишем такой файл:
[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
сохраняем его под именем txtsetup.oem и добавляем в образ дискеты.
Про загрузку XP из образа с помощью firadisk смотри здесь http://www.msfn.org/board/index.php?showtopic=7714
Чтоб в Grub не набирать длинную команду сделаем файл меню, например:
title Loading XP RAM install - /Inst/XP_RAM.ISO
ls /Inst/XP_RAM.ISO || find --set-root /Inst/XP_RAM.ISO
map --mem /Inst/XP_INST.gz (fd0)
map --mem /Inst/XP_RAM.ISO (0xFF)
checkrange 0x80 read 0x8280 && map (hd0) (hd1)
checkrange 0x80 read 0x8280 && map (hd1) (hd0)
map --hook
chainloader (0xFF)/I386/SETUPLDR.BIN
title WinXP.iso Setup (method 2)
map --mem /Inst/firadisk.gz (fd0)
map --mem /Inst/XP_RAM.ISO (hd32)
checkrange 0x80 read 0x8280 && map (hd0) (hd1)
checkrange 0x80 read 0x8280 && map (hd1) (hd0)
map --hook
errorcheck off
chainloader (hd32) || chainloader (hd32)/I386/SETUPLDR.BIN
errorcheck on
и назовем его menu.lst
И так мы подготовили ту информацию, что будет записана на флешку. Теперь приступим к форматированию флешки, для этого используем программу одного из разработчиков grub4dos fbinst.exe ( http://download.gna.org/grubutil/ ). Определяем каким номером устройства у нас флешка:
fbinst --list
Предположим, что она (hd1)
Внимание!!! Важно (если в дальнейшей операции выбрать не то устройство, то можно потерять информацию на вашем харде).
Форматируем флешку (например):
set flash=(hd1)
fbinst flash format -f -z --fat32 -a -u 8 -p 10M -e 50M -l 1024
fbinst flash sync --copy-bpb
fbinst flash add-menu fb.cfg fb.txt
fbinst flash add grldr grldr
fbinst flash info
Файл grldr и fb.txt находятся в том же каталоге что и fbinst. Файл fb.txt создаем в текстовом редакторе, чтото типа:
default 0
timeout 1
color red
text Please choose menu:
color green
text -n F1
color normal
text grldr
menu F1 grldr grldr
После форматирования флешку надо извлечь (отмонтировав) и вставить заново, тобиш передернуть для сброса кеша файловой системы. На флешке создаем папку Inst, в нее записываем образ дискеты firadisk.ima и инсталятор Xp_inst.ima (можно предварительно сжать образы, каждый отдельно, используя GZip.В этот же каталог копируем образ устанавливаемого дистра с XP переименовав его в XP_RAM.ISO. В корень флешки копируем файл menu.lst.Перезагружаемся и выбираем старт с флешки.
Для тех, кто не желает проделывать всю эту лабуду, я выкладываю архив xp_inst.rar.
http://rebiznes.ru/blog/blog_show.php?i … 54647.html