bob57_cz:
U toho Skypeu - osobně jsem stahoval poslední ofiko z Portable Apps a nejde. Nemám žádnou starší základní verzi. Z té co mám jsem to povýšení spustil a stejně to nešlo. Můžeš nám upnout tu poslední funkční - renovovanou pro tenhle projekt?
normin:
Omlouvám se bude to trochu obsáhlejší a předem děkuji za konzultaci. Ale je to důležité pro komplexní popis a následné zaměření syntézy
No on je s tím G4D zásadní problém, že nepodporuje EFI a já chci udělat multiboot i pro UEFI, protože některé strojky už ani Legacy mód nemají a mají jen 32bit EFI.
Tak na to chci jít z druhé strany - udělal jsem si Easeus Rescue disk, který má složky pro EFI a soubor bootia32.efi.
Začal jsem tedy v klasickém BIOS módu (až bude vše fachat, tak to zkusím přenést do EFI) a úpravou BCD jsem via pomocný soubor "grldr.mbr" řetězil na "grldr". Z Po hodinách pokusů, jak správně nastavit BCD mi menu naběhlo - jaká radost, ale bohužel z něho některé Linuxové minisystémy nešly spustit a to jak přímo tak namapováním ISO. Když byl mateřský zavaděč G4D, tak to šlo spustit úplně v pohodě. Ale takto na opačný gard se to začalo chovat podivně:
Položka se normálně spustila a předala štafetu kam měla.
V přímém případě se okamžitě rozjel BZIMAGE a INITRD, vyjela první položka průběhu, že DONE a hned druhá položka ohledně načítání báze systému (v tomto případě základního modulu "blabla.sfs") skončila zcela nepochopitelným sdělením, že tento soubor nebyl nalezen a záhadným "Dropping out ramdisk" nebo něco v tom smyslu - kdyžtak ještě upřesním.
V případě mapování ISO položka předala štafetu a najel zavaděč CD/DVD z obrazu, který pár vteřin nabízí možnosti spuštění a pak opět v pohodě naběhl BZIMAGE a INITRD a pak chyba zase tamtéž. Netřeba říkat, že ten modul samozřejmě celou dobu na dané pozici byl a je ...
Tak jsem zkoušel vlastní teorii o konzistenci filesystemu (u map ISO to problém často je), flešku celou znovu pomalu naformátnul, znovu pečlivě připravil a vše postupně s vypnutým antivirem překopíroval atd. a flašku najel. A pak to šlo. Tak jsem tam dal jiný malý Linux a zase to nešlo, tak jsem tu opičárnu s přípravou opakoval ještě asi třikrát, pak ještě dvakrát s původním Linuxíkem než mi došlo, že jsem se spletl a tohle ten rozdílový faktor NEBYL.
A pak mi to docvaklo - v tom jednom případě, kdy se to rozjelo, jsem omylem zvolil v menu položku, kde byla okopírovaná speciální sekvence z návodu stránek RMPREPUSB pro spuštění jakkoliv velkého ISO, která je složitější než ordinérní "map iso - map-hook - chainloader - nazdar", kde jsem zrovna měl v cestě přímo tento obraz Linuxíku. Tak jsem to zkusil znovu a světe div se - nejen, že ISO naběhl, ale po dalším rebootu naběhl i ten samý Linuxík ve složce s přímým předáním parametrů do jádra.
A teď ta úvaha pro konzultaci: Jeví se mi to tak, že tam některé příkazy něco udělaly buď se samotnou fleškou - nějakou modifikaci, nebo modifikovaly samotné jádro zavaděče G4D - "grldr", tak aby nedocházelo k tomu problému, který byl vždy ohlášen při zaseknutí bootu Linuxíku. Mohlo by to na téhle úrovni být nějaké řešení kolize ramdisků, neboť mateřský "bootmgr" si také jistě nějaký vytváří - ale to spíš jen hádám podle toho chybového hlášení.
Každopádně moji dva favorité a žhaví kandidáti jsou příkazy PARTNEW a PARTTYPE s parametrem (HD 0,3) - a proto si myslím, že by mohly nějak modifikovat samotnou flashku, protože ta je jako matřské medium pro G4D HD0.
A chci tedy vědět, co tyto příkazy přesně dělají, aby mi to třeba napovědělo, v čem je přesně problém a abych je případně mohl přenést do jiných položek a nebo třeba rovnou použít jako obecné parametry na začátku skriptu "menu.lst" Z ofiko vysvětlení jsem moudrý nejsem
partnew
grub> help partnew
partnew: partnew [--active] PART TYPE START [LEN]
Create a primary partition at the starting address START with the
length LEN, with the type TYPE. START and LEN are in sector units. If
--active is used, the new partition will be active. START can be a
contiguous file that will be used as the content/data of the new
partition, in which case the LEN parameter is ignored, and TYPE can be
either 0x00 for auto or 0x10 for hidden-auto.
===================================================
parttype
grub> help parttype
parttype: parttype [PART] [TYPE]
Change the type of the partition PART to TYPE. If TYPE is omitted,
return the partition type of the specified device(instead of changing
it). PART default to the current root device.
title Any ISO\n Only for USB - Linux install CD/DVD for example
find --set-root --ignore-floppies --ignore-cd /ISO/tahr-6.0.5_noPAE.iso
parttype (hd0,3) | set check=
set check=%check:~-5,4%
if %check%==0x00 partnew (hd0,3) 0x00 /ISO/tahr-6.0.5_noPAE.iso
if NOT %check%==0x00 echo ERROR: Partion Table entry 4 already exists! && pause --wait=3 && configfile /menu.lst
map /ISO/tahr-6.0.5_noPAE.iso (0XFF)
map --hook
root (0xff)
chainloader (0xff)