Войти

Показать полную графическую версию : Запустить Setupldr из Isolinux напрямую?


conteacky
10-06-2009, 15:29
Во всех известных мне примерах для запуска установки Windows из Isolinux используются промежуточные загрузчики типа VOLS и т.п. Это крайне неудобно, особенно "Press any key" после выполнения команды Isolinux. При попытке выполнить запуск установки командой "KERNEL /I386/SETUPLDR.BIN" виртуальная машина вылетает (на живой не рискую). Можно ли все-таки запустить Setupldr из Isolinux напрямую?

vsu
12-06-2009, 00:06
Реально работает способ с использованием GRUB4DOS (https://gna.org/projects/grub4dos/): KERNEL grub.exe
APPEND --config-file="chainloader (cd)/I386/SETUPLDR.BIN"(в зависимости от версии GRUB4DOS и способа сборки образа может иметь значение регистр символов в именах файлов, передаваемых GRUB).

Вариант с использованием только компонентов Syslinux, который мог бы работать, если бы не лишняя проверка в com32/modules/chain.c: KERNEL chain.c32
APPEND boot ntldr=/i386/setupldr.bin
При большом желании эту проверку можно и вырезать, пересобрав Syslinux с соответствующим патчем: diff --git a/com32/modules/chain.c b/com32/modules/chain.c
index 7c7c9eb..0b6dbc2 100644
--- a/com32/modules/chain.c
+++ b/com32/modules/chain.c
@@ -666,8 +666,7 @@ int main(int argc, char *argv[])
} else if (!strcmp(drivename, "boot")) {
const union syslinux_derivative_info *sdi;
sdi = syslinux_derivative_info();
- if (sdi->c.filesystem == SYSLINUX_FS_PXELINUX ||
- sdi->c.filesystem == SYSLINUX_FS_ISOLINUX)
+ if (sdi->c.filesystem == SYSLINUX_FS_PXELINUX)
drive = 0x80; /* Boot drive not available */
else
drive = sdi->disk.drive_number;

Впрочем, вариант с GRUB4DOS более функционален - например, можно ещё добавить команды map для подсовывания установщику виртуального флопика с файлом winnt.sif; memdisk из Syslinux для этой цели неудобен, поскольку умеет продолжать загрузку только с эмулируемого диска, и для возврата к загрузке компонентов установщика с CD придётся засовывать в образ дискеты ещё что-то - например, тот же GRUB4DOS, только в другом варианте.

conteacky
12-06-2009, 12:36
vsu, спасибо, grub рулит.
Тогда еще вопросы по isokinux:
1. запускаю Acronis Disk Director
KERNEL /boot/isolinux/modules/add_krn.dat ramdisk_size=32768 vga=791 acpi=on quiet initrd=/boot/isolinux/modules/add_ram.dat /s Курсор ведет себя как псих. Я уже встречал подобное на форуме - веэде одно: "Отключи курсор". Может есть средство от головной боли без отрубания головы? Ведь Acronis TrueImage в этой=же ситуации ведет себя нормально
2. Не запускается Memtest 86 KERNEL /boot/isolinux/modules/mt86p
3. То же тест HDD KERNEL /boot/memdisk
APPEND initrd=/boot/isolinux/modules/Victoria.IMA Заранее спасибо

vsu
12-06-2009, 13:25
Не запускается Memtest 86
KERNEL /boot/isolinux/modules/mt86p »
Точнее, судя по имени файла, Memtest86+ (http://www.memtest.org/). Странно - именно с запуском проблем вроде бы никогда не наблюдалось (хотя у оригинального Memtest86 (http://www.memtest86.com/) попадались откровенно нерабочие версии). Могу предложить только проверить правильность бинарника mt86p и попробовать другие версии.

KERNEL /boot/memdisk
APPEND initrd=/boot/isolinux/modules/Victoria.IMA »
Тут можно ещё попробовать добавить в APPEND опцию safeint (хотя, начиная с Syslinux 3.73, она и так используется по умолчанию). Если не поможет - пробовать другие варианты (raw, bigraw).

conteacky
12-06-2009, 13:33
vsu, по поводу запуска приложений - вопрос снимаю, был кривой memdisk, я его заменил.
А вот насчет курсора в Директоре...
Кстати, когда его запускаешь из BCDW через Isolinux - все нормально !

conteacky
13-06-2009, 11:35
Ладно, оставим ADDS в покое.
А можно ли запустить из-под isolinux ISO-образ? Acronis, Hiren's, LiveCD?

vsu
13-06-2009, 17:17
А можно ли запустить из-под isolinux ISO-образ? Acronis, Hiren's, LiveCD? »
Непосредственно из-под isolinux - нельзя. Можно опять-таки через GRUB4DOS:
Grub4dos Guide - Booting from .ISO Images (http://diddy.boot-land.net/grub4dos/files/map.htm#hd32)
grub4dos, .iso images and (hd32) or (0xFF) mapping (http://www.boot-land.net/forums/?showtopic=5041)
Можно продолжать использовать меню из Syslinux, откуда запускать grub.exe, передавая нужную последовательность команд через параметр --config-file="..." (команды разделяются точкой с запятой).

Загрузка с ISO-образов работает далеко не всегда - нужно, чтобы запускаемые оттуда программы либо работали со своими файлами только через BIOS, либо (при использовании внутри Linux или WinNT-подобных ОС) предварительно загружали все свои компоненты в RAM и в дальнейшем не обращались к своему диску. Т.е., можно так загружать образы LiveCD типа RIPLinux (http://www.tux.org/pub/people/kent-robotti/looplinux/rip/) (в основном режиме загрузки всё размещается в initrd; имеющийся рядом "non-initramfs method" работать уже не будет), некоторые сборки WinPE, загружающиеся полностью в ramdisk.

conteacky
13-06-2009, 18:58
vsu, вот нвшел код для grub:find --set-root /acronis10.iso
map /acronis10.iso (hd32)
map --hook
root (hd32)
chainloader (hd32) А для multilinux как это должно быть?KERNEL /boot/grub.exe
APPEND --config-file= ????? ???

vsu
14-06-2009, 00:09
вот нвшел код для grub »
В простейшем случае нужно просто записать его в одну строку: KERNEL /boot/grub.exe
APPEND --config-file="find --set-root /acronis10.iso; map /acronis10.iso (hd32); map --hook; root (hd32); chainloader (hd32)"
Либо можно обойтись без find, явным образом указав (cd): KERNEL /boot/grub.exe
APPEND --config-file="map (cd)/acronis10.iso (hd32); map --hook; root (hd32); chainloader (hd32)"

CXREF
14-06-2009, 00:56
Во всех известных мне примерах для запуска установки Windows из Isolinux используются промежуточные загрузчики типа VOLS и т.п. Это крайне неудобно, особенно "Press any key" »
Можно ли все-таки запустить Setupldr из Isolinux напрямую? »
Реально работает способ с использованием GRUB4DOS: » Поскольку обсуждается все-равно промежуточный загрузчик, то, производить зупуск установки, путем запуска из IsoLinux, boot сектора от тог-же установочного диска, котрый в свою очередь, естественным образом стартует setupldr.bin ...
Хотя, не проверял.

Комсомолец
14-06-2009, 06:02
conteacky, Это крайне неудобно, особенно "Press any key" после выполнения команды Isolinux »
"Press any key" появляется только в том случае, если в директории есть файл bootfix.bin - удалите его и не появится больше.
загрузчики типа VOLS »
Это не загрузчики. Это мультибут. Для загрузки setupldr используется bootsect. (isolinux.bin -> bootsect.bin -> setupldr.bin). Связано это с тем, что сам isolinux не умеет напрямую стартовать виндовый загрузчик.
Курсор ведет себя как псих. Я уже встречал подобное на форуме - веэде одно: "Отключи курсор". Может есть средство от головной боли без отрубания головы? Ведь Acronis TrueImage в этой=же ситуации ведет себя нормально »
Mouse.com не пробовали положить рядом с kernel.dat и ramdisk.dat? У меня все акронисы ведут себя прилично.
Не запускается Memtest 86 »

LABEL memtest
MENU LABEL Memtest 86+ 2.11
KERNEL /boot/memtest
TEXT HELP
Крохотная утилита для тестирования о
перативной памяти (RAM).
ENDTEXT


С Viktoria у вас тоже судя по всему проблемы...

conteacky
14-06-2009, 09:29
CXREF, Setupld из Isolinux зарускается с помощью Grub. Проверено. Сейчас пытаюсь запустить Acronis.iso

vsu, а можно в качнстве разделителя строк использовать "|"? Вот так:APPEND --config-file="
|find --set-root /acronis10.iso;
|map /acronis10.iso (hd32);
|map --hook; root (hd32);
|chainloader (hd32)"
Я попробовал и как у тебя и так. Grub выдает ошибку при запуске акрониса типа "Is64bit" но это похоже просто нестыковка версии grub и Acronis.
Да,точно,я проверил - для работы с ISO нужен Grub4dos - работает."|" не катит.

Acidag
16-07-2009, 16:12
conteacky

Родной виндовый загрузчик тоже нормально подхватывается Isolinux'ом. И дальше перенаправит загрузку на setupldr.bin.
И как было сказано, не будет выдавать запрос на нажатие клавиши, если рядом нет bootfix.bin.

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

Кстити, setupldr.bin можно и c помощью BCDW загрузить ;)

blacksirius
20-09-2009, 14:11
делаю свой инсталятор системы, запуск меню идет через syslinux и isolinux. нужно что бы могло работать с диска и с флешки.
загрузка образов, и на сд, и на флешке работает

LABEL acronis
MENU LABEL Acronis
kernel /boot/grub/grub.exe
APPEND --config-file="find --set-root /Acronis_All.iso; map /Acronis_All.iso (hd32); map --hook; root (hd32); chainloader (hd32)"

но вот установка виндовса работает только на сд, на флешке граб находит бинарный файл, черный экран, и ребутится

LABEL winsp3
MENU LABEL Установка Windows XP SP3
KERNEL /boot/grub/grub.exe
APPEND --config-file="find --set-root /I386/Setupldr.bin; chainloader /I386/Setupldr.bin"




© OSzone.net 2001-2012