Linux buuttaus; tekniset yksityiskohdat ?

Mistäköhän selviäisi linux -buuttauksen tekniset yksityiskohdat ?

Osaan editoida windowsin buuttausta, ja kirjoittaa assembly -kielellä buuttilataajan, joka asennetaan joko MBR:ään tai VBR:ään, ja joka osaa ladata ensimmäisen klusterin FAT -formatoidulta kiintolevyosiolta.

Mutta siinä, missä Microsoftin formaateista sekä FAT että NTFS sisältävät MS:n määrittelemän "Bios parameter block = BPB", linuxin ext3:ssa ei ole tuota BPB:tä.

BPB:n olennaisin kenttä buuttausta ajatellen on "hidden sectors".

Se ratkaisee tämän ongelman:

Kun MBR:ssä oleva buuttilataaja selvittää aktiivisen osion, relokatoi itsensä, lataa VBR:n aktiivisen osion ensimmäisestä sektorista RAM -osoitteeseen, jossa itse oli ennen relokatointia, ja hyppää ko. VBR:n alkuun, entä tästä eteenpäin?

VBR on nyt muistissa ja siinä olevaa koodi ajetaan.

Mutta ilman tietoa siitä, mistä levysektorista ko. VBR ladattiin, ko. VBR:n koodi ei kykenisi lataamaan lisää koodia levyltä, ja pelkkä 512 tavua olisi yksinään hyödytön.

em. BPB.HiddenSectors -kenttä (= 32 bittiä) on vastaus tähän ongelmaan.

Ko. kenttä kertoo, montako sektoria ko. kiintolevyllä on ennen kyseistä VBR:ää.

Eli jos olisi kiintolevy, jossa ei käytetä lainkaan osiointia, vaan VBR=MBR, tässä erikoistapauksessa tuo BPB.HiddenSectors = 0.

Jos on levy (ennen Advanced Format -aikakautta tehty), jossa on osiointi, mutta koko levy on yhtä osiota, silloin BPB.HiddenSectors = tyypillisesti 63.

Jos on Advanced Format -levy, joka on osioitu ja formatoitu Windows 7:lla, silloin
BPB.HiddenSectors = tyypillisesti 2048.

huom: 2048*512 = 2**20 = 1048576.

Miten on linuxin eri buuttaustapojen kanssa?

a) ext3 -osio, jolla on joko /boot -osio ja hakemisto, tai juuritiedostojärjestelmä "/" jos erillistä /boot -osiota ei käytetä.

b) ISO9660 CD -image ?

Ilmeisesti ISO imagen voi buutata paitsi CD -levyltä, myös osioimattomalta kiintolevyltä tai USB -muistitikulta, jos ko. ISO imagen kirjoittaa levylle esim. näin:

dd if=CDIMAGE.iso of=/dev/sdX bs=2048

jossa sdX edustaa kohdelevyn laitenimeä.

Huom aloittelijoille: varmista, että kohdelevyn laitenimi on oikea!
Väärä laitenimi (esim. vahingossa kiintolevyn nimi, kun olisi tarkoitus kopioida USB -muistitikulle aiheuttaa sen, että kiintolevyn koko sisältö ylikirjoitetaan ko. ISO -tiedostolla !)

Tämän kysymyksen tarkoitus on yrittää selvittää ne tiedot, joita tarvittaisiin sellaisen ohjelman tekemiseen, joka osaisi esim. kirjoittaa jonkin linuxjakelun .ISO -tiedoston (eli CD tai DVD -levyn image) muistitikulle siten, että ko. tikku on buuttaava ja toimii oikein.

Moni tälläpalstalla kehuu unetbootin -ohjelmaa, ikävä kyllä.

Omat kokemukset unetbootin -ohjelmasta:

Yritin käyttää ko. ohjelmaa ubuntun kopiointiin muistitikulle siten, että ko. muistitikku toimisi samoin kuin ubuntun asennus -CD (tai DVD).

Mutta yritettäessä tämän jälkeen buutata ko. muistitikulta, aluksi tuli kyllä ubuntun buuttivalikko, mutta annettaessa tähän halutut buuttioptiot ja yrittämällä jatkaa buuttausta, tuli virheilmoitus " /tmp is read only " ja ubuntun buuttausyritys loppui siihen.

Onko siis olemassa yleispätevää tapaa siihen, missä kohdassa linux -asennusCD:n .ISO imagea on mitäkin, eli ne tekniset yksityiskohdat joiden avulla voisi luoda luotettavasti toimivan ohjelman joka kopioi .ISO imagen USB -muistitikulle siten, että ko. tikku osaisi ongelmitta ajaa vastaava ohjelmistoa kuin alkuperäisellä buuttiCD:lläki on.

Mistä tällaista dokumentointia löytyy?

Laadukkaammat työkaluohjelmat olisivat todellakin tarpeen, itselleni ei ollut kiva yllätys huomata, että kovasta "mainostuksesta" täällä huolimatta, unetbootin -ohjelmasta ei ollut mitään käytännön hyötyä.
9149
Äänestä

Muut lukivat myös

Vastaukset 9

Vanhimmat

"Mistäköhän selviäisi linux -buuttauksen"?????????????
Aikanaan jättivät tilaa kerneliin jotta bios bootasi siihen suoraan ?
nykyisin bios boottaa grub,grub2,extlinus,syslinux jne jne (ohjelmiin?)
jotka sitten hakee "selvällä suomenkielellä" jatko ohjelmii ?
Joten Linux boottii !! ei ole ???

Äänestä

Niin, ongelmana on juuri tuo sekavuus!

Osaisin siis mainiosti itse kirjoittaa buuttilataajan, joka lataa esim ms-dos tai windows -käyttöjärjestelmän, tai sitten sellaista omaa koodia, joka on kirjoitettu toimimaan suoraan laitteistoa komennellen , ilman käyttöjärjestelmää.

Mutta jos esim. imuroin vaikkpa Knoppix CD:n iso -tiedostona, entä sitten?

CD:lle polettuna, koneessa jossa on toimiva CD -asema, tuo toki buuttaa onnistuneesti CD:ltä.

Mutta entä jos haluaisin buutata knoppixin:

a) USB -muistitikulta

b) SD -muistikortilta

c) kiintolevyosiolta ?

Tuo sekavuus, että linuxilla on monia eri buuttitapoja, jotka eivät ole automaattisesti konvertoitavissa yhdestä toiseksi, on todella ikävä piirre linuxissa.

Hommahan pitäisi hoitaa näin:

vaihe A: buuttauksen aloitus laitekohtaisella tavalla. Tämä vaihe siis esim. ottaa huomioon CD:n ja kiintolevyn tekniset erot.

vaihe B: laiteriippumaton osuus. Tämä vaihe pysyisi aina samana buuttimediasta riippumatta.

Ja tietenkin kunnollinen ja oikea dokumentointi noiden vaiheiden A ja B rajapinnasta.

Tämä mahdollistaisi sen, että voin kirjoittaa joko vaiheen A tai B uusiksi ilman, että toinen vaiheista joudutaan myös uudelleenkirjoittamaan.

Jos ei kunnon dokumentointia löydy, 1 vaihtoehto voisi olla tämä:

1. Imuroidaan netistä knoppix CD image.

2. editoidaan em. ISO imagea siten, että ko. imaen sisältämä kernel ylikirjoitetaan omatekoisella koodilla, joka palauttaa koneen takaisin reaalimoodiin suojatusta moodista, kirjoittaa (bios -tuen avulla) kernelin saamat parametrit esim. näytölle, sarjaportista ulos tai vaikka tiedostoon tai levyosiolle.

3. kirjoitetaan muokattu .iso CD :lle ja buutataan ko. CD:ltä

näin paljastuu, mitä parametrejä kernel ko. jakelussa oletuksena saa.

Entä, mitä vaikuttaa knoppixin buuttiriville kirjoitetut asiat?

esim näin:

knoppix lang=fi no3d

tai


knoppix lang=fi no3d fromhd=auto

tai

knoppix lang=fi no3d fromhd=/dev/sda9

tai

knoppix lang=fi no3d toram



Onko ainoa keino muokata iso siten, että vakiokerneli korvataan omalla ohjelmalla, joka paljastaa, mitä parametrejä kernel sai buuttauksen yhteydessä?

Sen jälkeenhän voi korvata jakelun oletusbuuttilataajan (usein CD:llä isolinux) haluamallaan joko valmiina saatavalla tai itsekirjoitetulla buuttilataajalla.

Kunnon dokumentointia on todella vaikea löytää.

Joskus onnistuin goglettmaan esille yhden sivun aiheesta, ja kernelin parametrinvälitystapa vaikutti todella sekavalta.

Äänestä
  • >>Osaisin siis mainiosti itse kirjoittaa buuttilataajan, joka lataa esim ms-dos tai windows -käyttöjärjestelmän, tai sitten sellaista omaa koodia, ...

    Äänestä

Miten A , B , C jne ... liittyy linuxiin ?
grubit /syslinuxit jne jne ......
"Starttaa" yhtä hyvin linuxsin kuin windowsinkin ???

joten Jos bootin "parannus" kiinnostaa kannattanee tutustua niiden ohjelmien sorsiin ???

googlaa ! : "ohjelman nimi" source

Äänestä

"A: buuttauksen aloitus laitekohtaisella tavalla. Tämä vaihe siis esim. ottaa huomioon CD:n ja kiintolevyn tekniset erot."

linux KERNEL tuntee jo kovalevyn JOKO /dev/hda:na /dev/sda:na

ja jos bootti "ohjelma" antaa väärää "inffoo" bootti LOPppuuu...?

Windows lataa VAIN (ennalta sovittua) WINDOWSSII ??

"linuxsin" bootit SITÄ MITÄ ETEEN TULEE .

Äänestä

Kerro nyt ensin, mitä ihmettä yrität tehdä. Tuosta ei selviä mitään hyödyllistä.

Ubuntu osaa itse kirjoittaa asennus-imagen tiedot muistitikulle.
Asenna Ubuntu vaikka Virtualboxiin jos sulla ei ole Ubuntu-konetta muuten käytettävissä, sillä voit tehdä asennustikun.

Äänestä

En tiedä miten olet tuota Unetbootin ohjelmaa käyttänyt, itselläni se on kirjoittanut ongelmitta myös Ubuntun asennusimagen tikulle ja muistikortille (monien muiden vastaavien imagetiedostojen lisäksi). Ainoa "vika" jonka olen siinä havainnut on välillä ilmenevä edistymispalkin jumittaminen alkuun ja sitten hetkessä loppuun.

Jos haluat oppia niin tämä suoli24 ei todellakaan ole sopiva paikka kysellä. Ja se että kyselet täällä antaa aiheen epäillä kykyjäsi moiseen koodausprojektiin (tai ylipäätään mihinkään koodaamiseen). Keksiähän voi vaikka mitä väitteitä omasta osaamisestaan.

Äänestä

>>kovasta "mainostuksesta" täällä huolimatta, unetbootin -ohjelmasta ei ollut mitään käytännön hyötyä

Äänestä

Kommentoi aloitusta


buuttifaktat/linux? kirjoitti:

Mistäköhän selviäisi linux -buuttauksen tekniset yksityiskohdat ?

Osaan editoida windowsin buuttausta, ja kirjoittaa assembly -kielellä buuttilataajan, joka asennetaan joko MBR:ään tai VBR:ään, ja joka osaa ladata ensimmäisen klusterin FAT -formatoidulta kiintolevyosiolta.

Mutta siinä, missä Microsoftin formaateista sekä FAT että NTFS sisältävät MS:n määrittelemän "Bios parameter block = BPB", linuxin ext3:ssa ei ole tuota BPB:tä.

BPB:n olennaisin kenttä buuttausta ajatellen on "hidden sectors".

Se ratkaisee tämän ongelman:

Kun MBR:ssä oleva buuttilataaja selvittää aktiivisen osion, relokatoi itsensä, lataa VBR:n aktiivisen osion ensimmäisestä sektorista RAM -osoitteeseen, jossa itse oli ennen relokatointia, ja hyppää ko. VBR:n alkuun, entä tästä eteenpäin?

VBR on nyt muistissa ja siinä olevaa koodi ajetaan.

Mutta ilman tietoa siitä, mistä levysektorista ko. VBR ladattiin, ko. VBR:n koodi ei kykenisi lataamaan lisää koodia levyltä, ja pelkkä 512 tavua olisi yksinään hyödytön.

em. BPB.HiddenSectors -kenttä (= 32 bittiä) on vastaus tähän ongelmaan.

Ko. kenttä kertoo, montako sektoria ko. kiintolevyllä on ennen kyseistä VBR:ää.

Eli jos olisi kiintolevy, jossa ei käytetä lainkaan osiointia, vaan VBR=MBR, tässä erikoistapauksessa tuo BPB.HiddenSectors = 0.

Jos on levy (ennen Advanced Format -aikakautta tehty), jossa on osiointi, mutta koko levy on yhtä osiota, silloin BPB.HiddenSectors = tyypillisesti 63.

Jos on Advanced Format -levy, joka on osioitu ja formatoitu Windows 7:lla, silloin
BPB.HiddenSectors = tyypillisesti 2048.

huom: 2048*512 = 2**20 = 1048576.

Miten on linuxin eri buuttaustapojen kanssa?

a) ext3 -osio, jolla on joko /boot -osio ja hakemisto, tai juuritiedostojärjestelmä "/" jos erillistä /boot -osiota ei käytetä.

b) ISO9660 CD -image ?

Ilmeisesti ISO imagen voi buutata paitsi CD -levyltä, myös osioimattomalta kiintolevyltä tai USB -muistitikulta, jos ko. ISO imagen kirjoittaa levylle esim. näin:

dd if=CDIMAGE.iso of=/dev/sdX bs=2048

jossa sdX edustaa kohdelevyn laitenimeä.

Huom aloittelijoille: varmista, että kohdelevyn laitenimi on oikea!
Väärä laitenimi (esim. vahingossa kiintolevyn nimi, kun olisi tarkoitus kopioida USB -muistitikulle aiheuttaa sen, että kiintolevyn koko sisältö ylikirjoitetaan ko. ISO -tiedostolla !)

Tämän kysymyksen tarkoitus on yrittää selvittää ne tiedot, joita tarvittaisiin sellaisen ohjelman tekemiseen, joka osaisi esim. kirjoittaa jonkin linuxjakelun .ISO -tiedoston (eli CD tai DVD -levyn image) muistitikulle siten, että ko. tikku on buuttaava ja toimii oikein.

Moni tälläpalstalla kehuu unetbootin -ohjelmaa, ikävä kyllä.

Omat kokemukset unetbootin -ohjelmasta:

Yritin käyttää ko. ohjelmaa ubuntun kopiointiin muistitikulle siten, että ko. muistitikku toimisi samoin kuin ubuntun asennus -CD (tai DVD).

Mutta yritettäessä tämän jälkeen buutata ko. muistitikulta, aluksi tuli kyllä ubuntun buuttivalikko, mutta annettaessa tähän halutut buuttioptiot ja yrittämällä jatkaa buuttausta, tuli virheilmoitus " /tmp is read only " ja ubuntun buuttausyritys loppui siihen.

Onko siis olemassa yleispätevää tapaa siihen, missä kohdassa linux -asennusCD:n .ISO imagea on mitäkin, eli ne tekniset yksityiskohdat joiden avulla voisi luoda luotettavasti toimivan ohjelman joka kopioi .ISO imagen USB -muistitikulle siten, että ko. tikku osaisi ongelmitta ajaa vastaava ohjelmistoa kuin alkuperäisellä buuttiCD:lläki on.

Mistä tällaista dokumentointia löytyy?

Laadukkaammat työkaluohjelmat olisivat todellakin tarpeen, itselleni ei ollut kiva yllätys huomata, että kovasta "mainostuksesta" täällä huolimatta, unetbootin -ohjelmasta ei ollut mitään käytännön hyötyä.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu