#1 2010-11-22 03:43:32

Tsynique
Narys
Užsiregistravo: 2010-10-16
Pranešimai: 7

Aprašymas kaip užkrauti ISO nekepant CD/DVD

Sveiki,

Neseniai man buvo prisireikę užsikrauti instaliacinį ISO, nenaudojant CD/DVD įrenginio. Ilgos paieškos internete parodė, kad tai yra labai paslaptingas ir mažai kam žinomas dalykas, todėl galiausiai suradęs būdą (bent jau vieną iš jų) nutariau pasidalinti. Tiesa, mano atveju dar buvo toks apribojimas: kadangi kompiuterio motininė plokštė pagaminta 2001 metais ji neturi USB driverių, todėl paprastai įrašius ISO failo turinį i USB raktą užkrauti neįmanoma.
Beieškodamas būdų atlikti šį niekur nedokumentuojamą veiksmą, suvokiau jog užkrauti ISO, kuris būtų įrašytas į USB raktą man nepakanka, nes senelis kompiuteris teturi USB 1.1 jungtį, todėl instaliacija užtruktų labai ilgai. Visus šiuos savo išsikeltus reikalavimus susumavęs po daug kantrybės pareikalavusių paieškų tą būdą radau. Beje, šio būdo patikimumo dar gerai nežinau, nes instaliavau kažką iš ISO failo, esančio kietajame diske, užkrauto per USB raktą, tik vieną kartą. Nors ir sėkmingai, nenoriu skubėti teigti, jog tai patikimas būdas ir kad visada suveiks.

O veikia viskas taip. Parsisiunčiame Plop Bootmanager. Iš archyvo išsiimame plpbt.bin (būtinai .bin, ne kažkurį kitą). Dabar mūsų uždavinys yra sugebėti užkrauti šį failą su GRUB, LILO arba dar kažkuo pagal skonį. Manau galbūt galima būtų užkrauti ir tiesiogiai, bet kadangi turėjau GRUB savo diske, tai man buvo patogiausias būdas įdėti plpbt.bin i /boot direktoriją ir grub/menu.lst faile pridėti tokias eilutes:

title PLoP Boot Manager
root (hd0,5)
kernel /boot/plpbt.bin

(hd0,5) greičiausiai skirsis, todėl nustatykite teisingai pagal savo disko skirsnius, kuris skirsnis yra Linux'o /boot skirsnis. Nors galima rinktis ne tik /boot skirsnį, bet svarbu, kad jame būtų plpbt.bin ir kad tai būtų Linux/UNIX tipo failų sistema: ext2, ext3, xfs, reiserfs ar kažkas panašaus, ką supranta GRUB. kernel /boot/plpbt.bin pakeiskite irgi atitinkamai.

Atlikus visą tai, perkrauname kompiuterį ir GRUB meniu matome naują pasirinkimą "PLoP Boot Manager". Pasirinkus jį, užkraunamas PLoP ir tuomet galime rinktis, ką užkrauti toliau. Šiuo atveju mums reikia USB. Prieš pasirenkant, geriausia ištraukti visas USB laikmenas (pelės ir klaviatūros patariama neištraukti smile) ir palikti tik tą vieną, kurią norėsime užkrauti. Pasirinkus USB, bus užkrauti USB driveriai ir pradėtas krauti USB rakto turinys. Sekantis mūsų pasiruošimo žingsnis būtent ir bus to turinio sukurimas.

Dabar reikia parsisiųsti Grub4DOS. Šis archyvas paimtas iš Hirens Boot CD ir čia Grub4DOS yra kartu su grafine sąsaja, tiems kas nemoka rankomis instaliuoti Grub4DOS į USB raktą. Aš nemoku ir nusprendžiau nesigilinti, todėl pasirinkau šį variantą. Tiesa, sąsaja ir paleidžiamieji failai yra Windows formato, todėl reikės kažkur gauti veikiančią Windozę. Per WINE nebandžiau, bet galbūt pavyktų. Taip pat archyve yra instrukcijos kaip suformatuoti savo USB raktą (readme.txt ir trys paveiksliukai). Vienintelis ką turėtumėte praleisti, tai paskutinįjį žingsnį, kuriame prašoma nukopijuoti Hirens Boot CD failus - mums jo nereikės.
Atlikę visas ten parašytas instrukcijas turėsim USB raktą, kuriame užsikraus Grub4DOS ir siūlys mum užkrauti kietąjį diską, Hirens Boot CD arba Mini Windows XP. Kadangi užsiiminėsime nei vienu iš šių dalykų, mums reikia redaguoti menu.lst failą, kurį nukopijavote į USB raktą. Visiem pagal poreikius, bet minimaliai jame turėtų būti toks turinys:

timeout 60
default 0

Title Boot ISO
rootnoverify (hd1,8)
map /foobar.iso (hd32)
map --hook
root (hd32)
chainloader (hd32)

(hd1,8) reikia pakeisti į įrenginį ir skirnį, kuriame bus norimas užkrauti ISO failas.
/foobar.iso reikia pakeisti į tikslų adresą į ISO failą prieš tai nurodytame įrenginyje. Viršuje esančiame pavyzdyje, kraunamas ISO failas foobar.iso, kuris randasi antrame diske (nes pimas yra (hd0)) devintame skirsnyje (skaičiuojama nuo nulio, ne nuo vieneto). Reikėtų pažymėti, jog Grub4DOS nebūtina krauti failo iš Linux/UNIX tipo failų sistemos. Mano atveju buvo kraunama iš FAT32 (galima daigtas, kad NTFS taip pat palaikoma).

Kai jau turim paruoštą USB, gerai sukonfiguruotą Grub4DOS menu.lst (nors jį galima keisti pačiame grub paspaudus 'e' arba naudoti konsolę ir suvedinėti komandas rankiniu būdų, paspausdus 'c') ir galime užsikrauti PLoP, perkrauname kompiuterį, pasirenkame PLoP, jame pasirenkame USB ir užsikrovus Grub4DOS pasirenkame, kokį ISO failą užkrausime (nes galima įsidėti kelis skirtingus).
Būtent šitokiu būdu man visiškai sėkmingai pavyko instaliuoti Windows XP užkraunant ISO failą per USB raktą, kompiuteryje, kurio motininė plokštė neturi USB driverių. Tikiuosi kam nors ši informacija bus naudinga, o jeigu bus klausimų ar ką nors gal neaiškiai parašiau, prašom atsakyti į temą smile

Atsijungęs

#2 2010-11-22 11:44:38

Dummas
Linux Rat
Iš: Vilnius
Užsiregistravo: 2010-10-10
Pranešimai: 177
Tinklapis

At: Aprašymas kaip užkrauti ISO nekepant CD/DVD

Super!


Arch Linux Lietuva

Atsijungęs

#3 2011-05-31 18:28:07

s2
Narys
Užsiregistravo: 2011-05-31
Pranešimai: 9

At: Aprašymas kaip užkrauti ISO nekepant CD/DVD

Nieko čia super nėra.  Būdas veikia tik tol, kol OS naudoja Real Mode / BIOS INTs.

Išeitis yra naudotis arba Firmware-level emuliavimu (pvz. įsirašius ISO turinį į USB ir turint pakankamai gudrų USB firmware), arba x86(_64) hardware virtualizavimu (pvz. kaip tai daroma BitVisor projekte).

Apie tai teko padiskutuoti su hakeriu Marium Gedminu jo bloge:
http://mg.pov.lt/blog/booting-iso-from-usb.html

Paskutinį kartą redaguotas s2 (2011-05-31 18:37:13)

Atsijungęs

#4 2011-06-01 01:49:45

Tsynique
Narys
Užsiregistravo: 2010-10-16
Pranešimai: 7

At: Aprašymas kaip užkrauti ISO nekepant CD/DVD

Gedminas rašė apie kernelio užkrovimą iš ISO failo, o ne ISO failo bootloader'io užkrovimą. Du skirtingi dalykai, todėl mano metodui nekišk INT13, nes jis nėra aktualus šiuo atveju smile

Atsijungęs

#5 2011-06-01 08:53:59

s2
Narys
Užsiregistravo: 2011-05-31
Pranešimai: 9

At: Aprašymas kaip užkrauti ISO nekepant CD/DVD

Tebūnie reikalingas tik ISO failo bootloaderis : )

Bet kaip tik todėl jis ir naudos INT 13h.  Nes neturės kitų priemonių.  Nes neturės po ranka kernelio.

O ko vertas bootloaderis, jeigu iš jo paleistas kernelis nieko neras.  Arba ras tik tada, jei nenaudos Protected Mode?
Man atrodo, kad jokios naudos.
Tiktai DOSo paleidimui (bootable winXP installeris yra DOS/Win9x-based, kiek suprantu).

Insidėk MacOSX arba Solario ISO, ir bus ate, manau.
Šiaip ir išmėginsiu, bet nematau pagrindo abejoti Mariaus argumentu.

Tai gal nematydamas atsakymų į šį klausimą vakar ir parašiau kiek nemandagiu tonu : )
Tad truputį atsiprašau.
Bet argumentų neatsiimu.

O jei norisi tik patyrinėt ISO bootloaderį, tam pakanka virtualios mašinos.  Nei kompo reikia perkrauti, nei baisu, kad koks piratinis CD bus virusuotas..


PS: dalis apie PLoP labai gera.  Apskritai, įspūdingas projektas:)
Kadaise būdavo kompai (BIOSai), kurie kraudavo OS iš flopikų, bet nekraudavo iš CD.  Vienas vaikinukas pasiūlė tuometiniame programming@pub.osf.lt mailing liste(~1998-aisiais) tokią pat idėją: užsikrauna mažas bootloaderis iš flopiko ir užkrauna CD bootloaderį pats, lowlevel būdu.  Praėjo dešimt metų, ir tik tada suradau projektą, kuris pagaliau tai padarė! :D

Paskutinį kartą redaguotas s2 (2011-06-01 09:01:18)

Atsijungęs

#6 2011-06-01 11:43:09

Tsynique
Narys
Užsiregistravo: 2010-10-16
Pranešimai: 7

At: Aprašymas kaip užkrauti ISO nekepant CD/DVD

Šiuo metodu esu užkrovęs kokius 5 skirtingus Linux'o live CD ir šiuos instaliacinius CD/DVD: Arch Linux, Windows XP, Windows 7, Haiku, ReactOS. Viskas puikiai veikė ir netgi sugebejau instaliuoti operacinę be jokių komplikacijų (išskyrus Haiku ir ReactOS, nes tuos tik su virtualia mašina bandžiau instaliuot). Skirtumas buvo tik tas, kad iš "CD" failus kopijavo neįprastai greitai smile
Aš neabejoju Mariaus argumentu, tiesiog jis daro visai ką kitą, jo būdas turi užkrauti kernelį ir dar leisti užkrautai OS suprasti iš kur užsikrovė. Džiugu, kad GRUB2 tai sugebėjo. Mano metodas daug primityvesnis ir nematau priežasties, kodėl neveiktų jeigu yra ISO su bootloader'iu. Galbūt kažko neapgalvojau dar ir kada nors rasiu ISO, kurio šitaip užkraut nepavyks, bet šiai dienai tokių dar neteko rasti smile

Atsijungęs

#7 2011-06-01 11:50:13

s2
Narys
Užsiregistravo: 2011-05-31
Pranešimai: 9

At: Aprašymas kaip užkrauti ISO nekepant CD/DVD

Keista dėl Linux ir Win7.
Jų installeriai visus boot-įrenginius lyg ir iš Protected Mode tik pradeda matyti (apklausia per kontrolerius), todėl neturi naudot Int 13h. 

Reikės kada nors per kokį BOCHS patyrinėt gal..  Labai keista ir ačiū už info:)

Tsynique rašė:

Aš neabejoju Mariaus argumentu, tiesiog jis daro visai ką kitą, jo būdas turi užkrauti kernelį ir dar leisti užkrautai OS suprasti iš kur užsikrovė.

Šiaip manau visi modernūs OS installeriai ieško iš kur užsikrovė, nes kitaip nerastų savo instaliacinių failų.

Džiugu, kad GRUB2 tai sugebėjo.

Na, GRUB2 pasiūliau tik teoriškai, pats nemėginęs.  Manau jis daro tą patį, ką ir Grub4DOS.

Paskutinį kartą redaguotas s2 (2011-06-01 11:53:29)

Atsijungęs

#8 2011-09-03 20:16:50

s2
Narys
Užsiregistravo: 2011-05-31
Pranešimai: 9

At: Aprašymas kaip užkrauti ISO nekepant CD/DVD

Tsynique, o kokiose FS gulėjo tavo ISO failiukai?  Mėginau iš NTFS.  GRUB4DOS juos lyg ir mato (autocomplete-ina failų pavadinimus), bet nepaleidžia išvis.  Rašo kažkokius keistus klaidų pranešimus.

O mėginau iš paties USB (FAT32 suformatuoto) paleist Linux Mint 11 LXDE, tai pradeda kraut, bet paskui neberanda boot device.  Bet tas ISO tai ir oficialiai transformuotas į maniškį USB flashiuką nelabai pakyla.  Nors vat po HP Format Utility panaudojimo pakilo.  Bet tai gal atskira tema, nežinau.

Atsijungęs

Lentos poraštė