Прошу простить, но в очередной раз про grub:
~/isoroot/menu.lst:
title isolinux
rootnoverify (cd)
find --set-root --ignore-floppies /boot/isolinux/ldlinux.c32
kernel /boot/isolinux/ldlinux.c32
title Switch to GRUB2 core.img for booting
find --set-root /boot/grub2/i386-pc/core.img
configfile /boot/grub2/grub.cfg
kernel /boot/grub2/i386-pc/core.img
syslinux не берёт управление с предупреждением:
Filesystem type is iso9660, using whole disk
...
Error 14: invalid or unsupported executable format
В syslinux пытался скармливать помимо ldlinux ещё и isolinux и syslinux, с одинаковым результатом.
Grub2 тоже не запускается: Grub4Dos остаётся в своей консоли. Собственно, нужен работоспособный пример передавать управление следующему загрузчику :(
И, да: обязательно ли в grub4dos иметь menu.lst в корне диска ?
UPD: Да, и ещё вопрос: продираюсь сквозь английский документации к грубу, пытаюсь хоть что-то понять, нашёл любопытный пример:
title Haiku anyboot \n Boot to Haiku
set ISOC=/haiku-anyboot.iso
partnew (hd0,3) 0xEB %ISOC% || echo && echo -e ERROR: %ISOC% is not contiguous or is BAD!\nPlease fix using RMPrepUSB-CTRL+F2. && pause Press a key... && configfile (md)0xa000+0x50
dd if=(hd0)0+1 of=(md)0x300+1 > nul
# get length
read 0x601fa > nul
set /A LEN=%@retval%&0xffffffff > nul
#echo ***** LEN=%LEN%
map --read-only %ISOC% (hd15) > nul
map --hook
dd if=(hd15)0+1 of=(md)0x300+1 > nul
# check for valid MBR
read 0x601fe > nul
set /A MAGIC=%@retval%&0xffff > nul
if /i not "%MAGIC%"=="?" echo -e SORRY: %ISOC% is not a decompressed image file - please try WinRar or 7Zip to decompress it first! && pause && partnew (hd0,3) 0 0 0 && configfile (md)0xa000+0x50
set MAGIC=
# find EB partition
set STOFF=
set /A TYP=*0x601c2 & 0xff > nul
if /i "0xeb"=="%TYP%" && set STOFF=0x601c6 && echo Found EB partition in PTN 1 of %ISOC%
set /A TYP=*0x601d2 & 0xff > nul
if /i "0xeb"=="%TYP%" && set STOFF=0x601d6 && echo Found EB partition in PTN 2 of %ISOC%
set /A TYP=*0x601e2 & 0xff > nul
if /i "0xeb"=="%TYP%" && set STOFF=0x601e6 && echo Found EB partition in PTN 3 of %ISOC%
set /A TYP=*0x601f2 & 0xff > nul
if /i "0xeb"=="%TYP%" && set STOFF=0x601f6 && echo Found EB partition in PTN 4 of %ISOC%
if "%STOFF%"=="" pause SORRY: Cannot find a type EB partition in the image! && partnew (hd0,3) 0 0 0 && configfile (md)0xA000+0x50
set TYP=
# get start PBR inside image
read %STOFF% > nul
set /A OFFSTART=%@retval%&0xffffffff > nul
#echo ***** OFFSTART=%OFFSTART%
set /A L=%LEN%-%OFFSTART% > nul
#echo **** L=%L% OFFSTART=%OFFSTART%
echo
echo -e Creating new partition 4 on hd0 using command: partnew (hd0,3) 0xEB (hd0,3)%OFFSTART%+%L%\nYou will need to remove partition 4 when you next boot E2B (see Sample_MyE2B.cfg for details).
partnew (hd0,3) 0xEB (hd0,3)%OFFSTART%+%L%
echo
# patch 4 bytes at 1fa (706 dec) with ptn start
dd if=(hd0,3)+1 of=(md)0x300+1
dd if=(hd0)+1 of=(md)0x200+1
debug 1
#echo -e -n Partition offset was\x20 && read 0x601fa
#echo -e -n Partition start =\x20
read 0x401f6 > nul
set patch=%@retval%
write 0x601fa %patch% > nul
echo
echo Patching offset 706 in sector (hd0,3) with value %patch%...
dd of=(hd0,3)+1 if=(md)0x300+1
# unmap file
map --unhook
map --unmap=0x8f
# boot from new partition
chainloader (hd0,3)+1
rootnoverify (hd0,3)
set STOFF=
set L=
set OFFSTART=
set LEN=
set patch=
# ptn type must be kept as EB or won't boot
boot
Я понимаю, что эта штука должна создавать на флешке новые разделы, и на образе DVD.iso работать не должна, но можно ли всё это замапить в память, и изголятться уже на виртуальной таблицей разделов ? И ещё интересует назначения адресов и размеров: 0xffffffff, 0xffff, 0x601d6, 0xaa55, 0xa000, 0x300